diff --git a/.gitignore b/.gitignore index bcc1b3137d..7f12203655 100644 --- a/.gitignore +++ b/.gitignore @@ -28,6 +28,8 @@ docerrors.log Assets/**/*.api Assets/**/*.api.meta +Assets/__TestInputAsset.inputactions +Assets/__TestInputAsset.inputactions.meta Packages/packages-lock.json Packages/com.unity.inputsystem/artifacts/** diff --git a/.yamato/config.metadata b/.yamato/config.metadata index f9c18435eb..b20793ea83 100644 --- a/.yamato/config.metadata +++ b/.yamato/config.metadata @@ -1,7 +1,6 @@ editors: - version: 2021.3 - version: 2022.3 - - version: 2023.1 - version: 2023.2 - version: trunk disable_tvos_run: true @@ -29,7 +28,7 @@ platforms_win: flavor: b1.large runtime: StandaloneWindows64 scripting-backend: Il2Cpp - installscript: unity-downloader-cli -c editor -c StandaloneSupport-IL2CPP -w -u + installscript: unity-downloader-cli -c editor -c StandaloneSupport-IL2CPP --wait --fast -u platforms_nix: - name: mac type: Unity::VM::osx @@ -46,7 +45,7 @@ platforms_nix: flavor: m1.mac runtime: StandaloneOSX scripting-backend: Il2Cpp - installscript: unity-downloader-cli -c editor -c StandaloneSupport-IL2CPP -w -u + installscript: unity-downloader-cli -c editor -c StandaloneSupport-IL2CPP --wait --fast -u scripting_backends: - name: mono - name: il2cpp \ No newline at end of file diff --git a/.yamato/upm-ci.yml b/.yamato/upm-ci.yml index 710551f28d..a475cdb99d 100644 --- a/.yamato/upm-ci.yml +++ b/.yamato/upm-ci.yml @@ -32,7 +32,7 @@ - move /Y .\Packages\com.unity.inputsystem\Samples .\Assets - move /Y .\Packages\com.unity.inputsystem\Samples.meta .\Assets # Now run our full test suite that sits in Assets/Tests by running UTR on our project. - - ./utr --testproject . --timeout=1200 --editor-location=.Editor --artifacts_path=upm-ci~/test-results/isolation-com.unity.inputsystem.tests --suite=playmode --api-profile=NET_4_6 --stdout-filter=minimal {% if platform.runtime %} --platform {{ platform.runtime }} {% endif %} {% if platform.scripting-backend %} --scripting-backend {{ platform.scripting-backend }} {% endif %} --report-performance-data --performance-project-id=InputSystem + - ./utr --testproject . --timeout=1200 --editor-location=.Editor --artifacts_path=upm-ci~/test-results/isolation-com.unity.inputsystem.tests --suite=playmode {% if platform.name == "win" %} --suite=editor {% endif %} --api-profile=NET_4_6 --stdout-filter=minimal {% if platform.runtime %} --platform {{ platform.runtime }} {% endif %} {% if platform.scripting-backend %} --scripting-backend {{ platform.scripting-backend }} {% endif %} --report-performance-data --performance-project-id=InputSystem artifacts: UTR_Output.zip: paths: @@ -67,7 +67,7 @@ - mv ./Packages/com.unity.inputsystem/Samples ./Assets - mv ./Packages/com.unity.inputsystem/Samples.meta ./Assets # Now run our full test suite that sits in Assets/Tests by running UTR on our project. - - ./utr --testproject . --timeout=1200 --editor-location=.Editor --artifacts_path=upm-ci~/test-results/isolation-com.unity.inputsystem.tests --suite=playmode --api-profile=NET_4_6 --stdout-filter=minimal {% if platform.runtime %} --platform {{ platform.runtime }} {% endif %} {% if platform.scripting-backend %} --scripting-backend {{ platform.scripting-backend }} {% endif %} --report-performance-data --performance-project-id=InputSystem + - ./utr --testproject . --timeout=1200 --editor-location=.Editor --artifacts_path=upm-ci~/test-results/isolation-com.unity.inputsystem.tests --suite=playmode {% if platform.name == "mac" %} --suite=editor {% endif %} --api-profile=NET_4_6 --stdout-filter=minimal {% if platform.runtime %} --platform {{ platform.runtime }} {% endif %} {% if platform.scripting-backend %} --scripting-backend {{ platform.scripting-backend }} {% endif %} --report-performance-data --performance-project-id=InputSystem artifacts: UTR_Output.zip: paths: @@ -85,7 +85,7 @@ build_ios_{{ editor.version }}: commands: - {{ utr_install_nix }} - {{ unity_downloader_install }} - - unity-downloader-cli -c Editor -c iOS -u {{ editor.version }} --fast -w + - unity-downloader-cli -c Editor -c iOS -u {{ editor.version }} --fast --wait - ./utr --suite=playmode --platform=iOS --editor-location=.Editor --testproject=. --player-save-path=build/players --artifacts_path=build/logs --build-only --report-performance-data --performance-project-id=InputSystem artifacts: players: @@ -122,7 +122,7 @@ build_tvos_{{ editor.version }}: commands: - {{ utr_install_nix }} - {{ unity_downloader_install }} - - unity-downloader-cli -c Editor -c AppleTV -u {{ editor.version }} --fast -w + - unity-downloader-cli -c Editor -c AppleTV -u {{ editor.version }} --fast --wait - ./utr --suite=playmode --platform=tvOS --editor-location=.Editor --testproject=. --player-save-path=build/players --artifacts_path=build/logs --build-only --report-performance-data --performance-project-id=InputSystem artifacts: players: @@ -159,7 +159,7 @@ build_android_{{ editor.version }}_{{ backend.name }}: commands: - {{ utr_install_win }} - {{ unity_downloader_install }} - - unity-downloader-cli -c Editor -c Android -u {{ editor.version }} --fast -w + - unity-downloader-cli -c Editor -c Android -u {{ editor.version }} --fast --wait - ./utr --suite=playmode --platform=Android --editor-location=.Editor --testproject=. --player-save-path=build/players --artifacts_path=build/logs --scripting-backend={{ backend.name }} --build-only --repository --performance-project-id=InputSystem artifacts: players: diff --git a/Assets/Editor.meta b/Assets/Editor.meta new file mode 100644 index 0000000000..b768c42ad1 --- /dev/null +++ b/Assets/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 33ab2bdaff98e9b43a78713c71b92d8f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor/AddScenesToBuild.cs b/Assets/Editor/AddScenesToBuild.cs new file mode 100644 index 0000000000..b4f6b85d40 --- /dev/null +++ b/Assets/Editor/AddScenesToBuild.cs @@ -0,0 +1,103 @@ +using System.Collections.Generic; +using UnityEditor; +using UnityEditor.SceneManagement; +using UnityEngine; + +[InitializeOnLoad] +public class AddScenesToBuild : EditorWindow +{ + private const string corePlatformsMenu = "Assets/QA/Tests/Core Platform Menu/Core Platforms Menu.unity"; + + [MenuItem("QA Tools/Open Core Scene Menu")] + static void OpenScene() + { + EditorSceneManager.OpenScene(corePlatformsMenu); + } + + [MenuItem("QA Tools/Add All Core Samples to Build")] + private static void AddAllScenesToBuildExcludingXboxAndXR() + { + // Get all available scenes in the project + string[] sceneGuids = AssetDatabase.FindAssets("t:Scene"); + string[] scenePaths = new string[sceneGuids.Length]; + + for (int i = 0; i < sceneGuids.Length; i++) + { + scenePaths[i] = AssetDatabase.GUIDToAssetPath(sceneGuids[i]); + } + // Filter out scenes in folders containing "xbox" or "xr" + List filteredScenePaths = new List(); + string coreScene = null; + + // Find the corePlatformsMenu scene and remove it from the general scene list + for (int i = 0; i < scenePaths.Length; i++) + { + if (scenePaths[i] == corePlatformsMenu) + { + coreScene = scenePaths[i]; + } + else if (!IsPathInExcludedFolder(scenePaths[i])) + { + filteredScenePaths.Add(scenePaths[i]); + } + } + + // Add and ensure "Core Platforms Menu" is at the beginning of the list + if (!string.IsNullOrEmpty(coreScene)) + { + filteredScenePaths.Insert(0, coreScene); + } + + // Update the build settings + EditorBuildSettingsScene[] buildScenes = new EditorBuildSettingsScene[filteredScenePaths.Count]; + for (int i = 0; i < filteredScenePaths.Count; i++) + { + buildScenes[i] = new EditorBuildSettingsScene(filteredScenePaths[i], true); + } + EditorBuildSettings.scenes = buildScenes; + Debug.Log("All scenes (excluding Xbox and XR) added to build settings."); + } + + private static bool IsPathInExcludedFolder(string path) + { + // Specify folder names to exclude + string[] excludedFolders = { "xbox", "xr" }; + + // Check if the path or any part of it contains any of the excluded folder names + foreach (string folder in excludedFolders) + { + if (path.ToLower().Contains(folder.ToLower())) + { + return true; + } + } + return false; + } + + private static void SaveBuildSettings() + { + // Save the current build settings to EditorPrefs + int sceneCount = EditorBuildSettings.scenes.Length; + EditorPrefs.SetInt("BuildSettingsSceneCount", sceneCount); + for (int i = 0; i < sceneCount; i++) + { + EditorPrefs.SetString($"BuildSettingsScenePath_{i}", EditorBuildSettings.scenes[i].path); + EditorPrefs.SetBool($"BuildSettingsSceneEnabled_{i}", EditorBuildSettings.scenes[i].enabled); + } + } + + private static void RestoreBuildSettings() + { + // Restore the build settings from EditorPrefs + int sceneCount = EditorPrefs.GetInt("BuildSettingsSceneCount", 0); + EditorBuildSettingsScene[] buildScenes = new EditorBuildSettingsScene[sceneCount]; + for (int i = 0; i < sceneCount; i++) + { + string scenePath = EditorPrefs.GetString($"BuildSettingsScenePath_{i}", ""); + bool sceneEnabled = EditorPrefs.GetBool($"BuildSettingsSceneEnabled_{i}", false); + + buildScenes[i] = new EditorBuildSettingsScene(scenePath, sceneEnabled); + } + EditorBuildSettings.scenes = buildScenes; + } +} diff --git a/Assets/Editor/AddScenesToBuild.cs.meta b/Assets/Editor/AddScenesToBuild.cs.meta new file mode 100644 index 0000000000..8983bf469a --- /dev/null +++ b/Assets/Editor/AddScenesToBuild.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 2c0bef21e3f6200449aabdf430adb8e1 \ No newline at end of file diff --git a/Assets/QA/Input_Test/IMETest.unity b/Assets/QA/Input_Test/IMETest.unity index acb37d75ad..86705ed5fe 100644 --- a/Assets/QA/Input_Test/IMETest.unity +++ b/Assets/QA/Input_Test/IMETest.unity @@ -38,7 +38,7 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.44657898, g: 0.49641275, b: 0.57481736, a: 1} + m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: @@ -54,7 +54,7 @@ LightmapSettings: m_EnableBakedLightmaps: 1 m_EnableRealtimeLightmaps: 1 m_LightmapEditorSettings: - serializedVersion: 10 + serializedVersion: 12 m_Resolution: 2 m_BakeResolution: 40 m_AtlasSize: 1024 @@ -62,6 +62,7 @@ LightmapSettings: m_AOMaxDistance: 1 m_CompAOExponent: 1 m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 m_Padding: 2 m_LightmapParameters: {fileID: 0} m_LightmapsBakeMode: 1 @@ -76,10 +77,16 @@ LightmapSettings: m_PVRDirectSampleCount: 32 m_PVRSampleCount: 500 m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 m_PVRFilterTypeDirect: 0 m_PVRFilterTypeIndirect: 0 m_PVRFilterTypeAO: 0 - m_PVRFilteringMode: 1 + m_PVREnvironmentMIS: 0 m_PVRCulling: 1 m_PVRFilteringGaussRadiusDirect: 1 m_PVRFilteringGaussRadiusIndirect: 5 @@ -87,7 +94,9 @@ LightmapSettings: m_PVRFilteringAtrousPositionSigmaDirect: 0.5 m_PVRFilteringAtrousPositionSigmaIndirect: 2 m_PVRFilteringAtrousPositionSigmaAO: 1 - m_ShowResolutionOverlay: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 m_LightingDataAsset: {fileID: 0} m_UseShadowmask: 1 --- !u!196 &4 @@ -158,17 +167,16 @@ MonoBehaviour: m_GameObject: {fileID: 126366674} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -237,17 +245,16 @@ MonoBehaviour: m_GameObject: {fileID: 181909404} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -316,17 +323,16 @@ MonoBehaviour: m_GameObject: {fileID: 219074027} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -387,9 +393,10 @@ Camera: m_ClearFlags: 2 m_BackGroundColor: {r: 0.7830189, g: 0.7830189, b: 0.7830189, a: 0} m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 m_SensorSize: {x: 36, y: 24} m_LensShift: {x: 0, y: 0} - m_GateFitMode: 2 m_FocalLength: 50 m_NormalizedViewPortRect: serializedVersion: 2 @@ -477,17 +484,16 @@ MonoBehaviour: m_GameObject: {fileID: 362471918} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -556,17 +562,16 @@ MonoBehaviour: m_GameObject: {fileID: 436484374} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} m_Type: 0 m_PreserveAspect: 0 @@ -576,6 +581,7 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &436484377 CanvasRenderer: m_ObjectHideFlags: 0 @@ -612,7 +618,7 @@ MonoBehaviour: m_GameObject: {fileID: 493824420} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} m_Name: m_EditorClassIdentifier: m_IgnoreReversedGraphics: 1 @@ -629,7 +635,7 @@ MonoBehaviour: m_GameObject: {fileID: 493824420} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} m_Name: m_EditorClassIdentifier: m_UiScaleMode: 0 @@ -742,7 +748,7 @@ MonoBehaviour: m_GameObject: {fileID: 526441557} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 575553740, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} m_Name: m_EditorClassIdentifier: m_Navigation: @@ -756,17 +762,20 @@ MonoBehaviour: m_NormalColor: {r: 1, g: 1, b: 1, a: 1} m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} m_ColorMultiplier: 1 m_FadeDuration: 0.1 m_SpriteState: m_HighlightedSprite: {fileID: 0} m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} m_DisabledSprite: {fileID: 0} m_AnimationTriggers: m_NormalTrigger: Normal m_HighlightedTrigger: Highlighted m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted m_DisabledTrigger: Disabled m_Interactable: 1 m_TargetGraphic: {fileID: 526441560} @@ -783,8 +792,6 @@ MonoBehaviour: m_OnEndEdit: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.InputField+SubmitEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null m_OnValueChanged: m_PersistentCalls: m_Calls: @@ -799,8 +806,6 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 - m_TypeName: UnityEngine.UI.InputField+OnChangeEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_CustomCaretColor: 0 m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} @@ -808,6 +813,7 @@ MonoBehaviour: m_CaretBlinkRate: 0.85 m_CaretWidth: 1 m_ReadOnly: 0 + m_ShouldActivateOnSelect: 1 --- !u!114 &526441560 MonoBehaviour: m_ObjectHideFlags: 0 @@ -817,17 +823,16 @@ MonoBehaviour: m_GameObject: {fileID: 526441557} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -837,6 +842,7 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &526441561 CanvasRenderer: m_ObjectHideFlags: 0 @@ -891,17 +897,16 @@ MonoBehaviour: m_GameObject: {fileID: 576247720} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -951,7 +956,7 @@ MonoBehaviour: m_GameObject: {fileID: 583580847} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} m_Name: m_EditorClassIdentifier: m_HorizontalAxis: Horizontal @@ -970,7 +975,7 @@ MonoBehaviour: m_GameObject: {fileID: 583580847} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} m_Name: m_EditorClassIdentifier: m_FirstSelected: {fileID: 0} @@ -1036,17 +1041,16 @@ MonoBehaviour: m_GameObject: {fileID: 597156102} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} m_Type: 0 m_PreserveAspect: 0 @@ -1056,6 +1060,7 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &597156105 CanvasRenderer: m_ObjectHideFlags: 0 @@ -1111,7 +1116,7 @@ MonoBehaviour: m_GameObject: {fileID: 774544991} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 2109663825, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} m_Name: m_EditorClassIdentifier: m_Navigation: @@ -1125,17 +1130,20 @@ MonoBehaviour: m_NormalColor: {r: 1, g: 1, b: 1, a: 1} m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} m_ColorMultiplier: 1 m_FadeDuration: 0.1 m_SpriteState: m_HighlightedSprite: {fileID: 0} m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} m_DisabledSprite: {fileID: 0} m_AnimationTriggers: m_NormalTrigger: Normal m_HighlightedTrigger: Highlighted m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted m_DisabledTrigger: Disabled m_Interactable: 0 m_TargetGraphic: {fileID: 1613958525} @@ -1156,8 +1164,6 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 - m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null m_IsOn: 1 --- !u!1 &806990538 GameObject: @@ -1206,7 +1212,7 @@ MonoBehaviour: m_GameObject: {fileID: 806990538} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 2109663825, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} m_Name: m_EditorClassIdentifier: m_Navigation: @@ -1220,17 +1226,20 @@ MonoBehaviour: m_NormalColor: {r: 1, g: 1, b: 1, a: 1} m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} m_ColorMultiplier: 1 m_FadeDuration: 0.1 m_SpriteState: m_HighlightedSprite: {fileID: 0} m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} m_DisabledSprite: {fileID: 0} m_AnimationTriggers: m_NormalTrigger: Normal m_HighlightedTrigger: Highlighted m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted m_DisabledTrigger: Disabled m_Interactable: 1 m_TargetGraphic: {fileID: 1602022390} @@ -1251,8 +1260,6 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 - m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null m_IsOn: 1 --- !u!1 &922740278 GameObject: @@ -1300,17 +1307,16 @@ MonoBehaviour: m_GameObject: {fileID: 922740278} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -1382,7 +1388,7 @@ MonoBehaviour: m_GameObject: {fileID: 933420609} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 575553740, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} m_Name: m_EditorClassIdentifier: m_Navigation: @@ -1396,17 +1402,20 @@ MonoBehaviour: m_NormalColor: {r: 1, g: 1, b: 1, a: 1} m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} m_ColorMultiplier: 1 m_FadeDuration: 0.1 m_SpriteState: m_HighlightedSprite: {fileID: 0} m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} m_DisabledSprite: {fileID: 0} m_AnimationTriggers: m_NormalTrigger: Normal m_HighlightedTrigger: Highlighted m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted m_DisabledTrigger: Disabled m_Interactable: 0 m_TargetGraphic: {fileID: 933420612} @@ -1423,13 +1432,9 @@ MonoBehaviour: m_OnEndEdit: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.InputField+SubmitEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null m_OnValueChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.InputField+OnChangeEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_CustomCaretColor: 0 m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} @@ -1437,6 +1442,7 @@ MonoBehaviour: m_CaretBlinkRate: 0.85 m_CaretWidth: 1 m_ReadOnly: 0 + m_ShouldActivateOnSelect: 1 --- !u!114 &933420612 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1446,17 +1452,16 @@ MonoBehaviour: m_GameObject: {fileID: 933420609} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -1466,6 +1471,7 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &933420613 CanvasRenderer: m_ObjectHideFlags: 0 @@ -1520,17 +1526,16 @@ MonoBehaviour: m_GameObject: {fileID: 978891941} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -1578,12 +1583,14 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1011296107} m_Enabled: 1 - serializedVersion: 8 + 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 @@ -1593,6 +1600,24 @@ Light: 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} @@ -1600,12 +1625,15 @@ Light: m_CullingMask: serializedVersion: 2 m_Bits: 4294967295 + m_RenderingLayerMask: 1 m_Lightmapping: 4 m_LightShadowCasterMode: 0 m_AreaSize: {x: 1, y: 1} m_BounceIntensity: 1 m_ColorTemperature: 6570 m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 --- !u!4 &1011296109 @@ -1743,7 +1771,7 @@ MonoBehaviour: m_GameObject: {fileID: 1418315490} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} m_Name: m_EditorClassIdentifier: m_Navigation: @@ -1757,17 +1785,20 @@ MonoBehaviour: m_NormalColor: {r: 1, g: 1, b: 1, a: 1} m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} m_ColorMultiplier: 1 m_FadeDuration: 0.1 m_SpriteState: m_HighlightedSprite: {fileID: 0} m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} m_DisabledSprite: {fileID: 0} m_AnimationTriggers: m_NormalTrigger: Normal m_HighlightedTrigger: Highlighted m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted m_DisabledTrigger: Disabled m_Interactable: 1 m_TargetGraphic: {fileID: 1418315493} @@ -1785,8 +1816,6 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 - m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null --- !u!114 &1418315493 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1796,17 +1825,16 @@ MonoBehaviour: m_GameObject: {fileID: 1418315490} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -1816,6 +1844,7 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1418315494 CanvasRenderer: m_ObjectHideFlags: 0 @@ -1873,7 +1902,7 @@ MonoBehaviour: m_GameObject: {fileID: 1443251431} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 575553740, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} m_Name: m_EditorClassIdentifier: m_Navigation: @@ -1887,17 +1916,20 @@ MonoBehaviour: m_NormalColor: {r: 1, g: 1, b: 1, a: 1} m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} m_ColorMultiplier: 1 m_FadeDuration: 0.1 m_SpriteState: m_HighlightedSprite: {fileID: 0} m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} m_DisabledSprite: {fileID: 0} m_AnimationTriggers: m_NormalTrigger: Normal m_HighlightedTrigger: Highlighted m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted m_DisabledTrigger: Disabled m_Interactable: 0 m_TargetGraphic: {fileID: 1443251434} @@ -1914,13 +1946,9 @@ MonoBehaviour: m_OnEndEdit: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.InputField+SubmitEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null m_OnValueChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.InputField+OnChangeEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_CustomCaretColor: 0 m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} @@ -1928,6 +1956,7 @@ MonoBehaviour: m_CaretBlinkRate: 0.85 m_CaretWidth: 1 m_ReadOnly: 0 + m_ShouldActivateOnSelect: 1 --- !u!114 &1443251434 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1937,17 +1966,16 @@ MonoBehaviour: m_GameObject: {fileID: 1443251431} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -1957,6 +1985,7 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1443251435 CanvasRenderer: m_ObjectHideFlags: 0 @@ -2013,7 +2042,7 @@ MonoBehaviour: m_GameObject: {fileID: 1486136847} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} m_Name: m_EditorClassIdentifier: m_Navigation: @@ -2027,17 +2056,20 @@ MonoBehaviour: m_NormalColor: {r: 1, g: 1, b: 1, a: 1} m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} m_ColorMultiplier: 1 m_FadeDuration: 0.1 m_SpriteState: m_HighlightedSprite: {fileID: 0} m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} m_DisabledSprite: {fileID: 0} m_AnimationTriggers: m_NormalTrigger: Normal m_HighlightedTrigger: Highlighted m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted m_DisabledTrigger: Disabled m_Interactable: 1 m_TargetGraphic: {fileID: 1486136850} @@ -2055,8 +2087,6 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 - m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null --- !u!114 &1486136850 MonoBehaviour: m_ObjectHideFlags: 0 @@ -2066,17 +2096,16 @@ MonoBehaviour: m_GameObject: {fileID: 1486136847} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -2086,6 +2115,7 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1486136851 CanvasRenderer: m_ObjectHideFlags: 0 @@ -2140,17 +2170,16 @@ MonoBehaviour: m_GameObject: {fileID: 1600470532} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -2220,17 +2249,16 @@ MonoBehaviour: m_GameObject: {fileID: 1602022388} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -2240,6 +2268,7 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1602022391 CanvasRenderer: m_ObjectHideFlags: 0 @@ -2295,17 +2324,16 @@ MonoBehaviour: m_GameObject: {fileID: 1613958523} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -2315,6 +2343,7 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1613958526 CanvasRenderer: m_ObjectHideFlags: 0 @@ -2369,17 +2398,16 @@ MonoBehaviour: m_GameObject: {fileID: 1623999968} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -2448,17 +2476,16 @@ MonoBehaviour: m_GameObject: {fileID: 1653547901} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -2530,7 +2557,7 @@ MonoBehaviour: m_GameObject: {fileID: 1752099848} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 575553740, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} m_Name: m_EditorClassIdentifier: m_Navigation: @@ -2544,17 +2571,20 @@ MonoBehaviour: m_NormalColor: {r: 1, g: 1, b: 1, a: 1} m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} m_ColorMultiplier: 1 m_FadeDuration: 0.1 m_SpriteState: m_HighlightedSprite: {fileID: 0} m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} m_DisabledSprite: {fileID: 0} m_AnimationTriggers: m_NormalTrigger: Normal m_HighlightedTrigger: Highlighted m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted m_DisabledTrigger: Disabled m_Interactable: 1 m_TargetGraphic: {fileID: 1752099851} @@ -2571,8 +2601,6 @@ MonoBehaviour: m_OnEndEdit: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.InputField+SubmitEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null m_OnValueChanged: m_PersistentCalls: m_Calls: @@ -2587,8 +2615,6 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 - m_TypeName: UnityEngine.UI.InputField+OnChangeEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_CustomCaretColor: 0 m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} @@ -2596,6 +2622,7 @@ MonoBehaviour: m_CaretBlinkRate: 0.85 m_CaretWidth: 1 m_ReadOnly: 0 + m_ShouldActivateOnSelect: 1 --- !u!114 &1752099851 MonoBehaviour: m_ObjectHideFlags: 0 @@ -2605,17 +2632,16 @@ MonoBehaviour: m_GameObject: {fileID: 1752099848} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -2625,6 +2651,7 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1752099852 CanvasRenderer: m_ObjectHideFlags: 0 @@ -2679,17 +2706,16 @@ MonoBehaviour: m_GameObject: {fileID: 1830962598} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -2758,17 +2784,16 @@ MonoBehaviour: m_GameObject: {fileID: 1868694830} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -2839,17 +2864,16 @@ MonoBehaviour: m_GameObject: {fileID: 1988595578} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -2918,17 +2942,16 @@ MonoBehaviour: m_GameObject: {fileID: 2077943884} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -2997,17 +3020,16 @@ MonoBehaviour: m_GameObject: {fileID: 2080662986} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 diff --git a/Assets/QA/Tests/Core Platform Menu.meta b/Assets/QA/Tests/Core Platform Menu.meta new file mode 100644 index 0000000000..6169fd9773 --- /dev/null +++ b/Assets/QA/Tests/Core Platform Menu.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 15464ca9e4361194388f95246805c513 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/QA/Tests/Core Platform Menu/Core Platforms Menu.unity b/Assets/QA/Tests/Core Platform Menu/Core Platforms Menu.unity new file mode 100644 index 0000000000..a79fc7421a --- /dev/null +++ b/Assets/QA/Tests/Core Platform Menu/Core Platforms Menu.unity @@ -0,0 +1,7045 @@ +%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: 10 + 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.46169513, g: 0.5124164, b: 0.58993304, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + 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_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: 1 + m_PVRFilteringGaussRadiusAO: 1 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 3 + 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 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &25483049 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 25483050} + - component: {fileID: 25483053} + - component: {fileID: 25483052} + - component: {fileID: 25483051} + m_Layer: 5 + m_Name: Cursor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &25483050 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 25483049} + m_LocalRotation: {x: -0, y: -0, z: -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: 642145936} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 100, y: 100} + m_SizeDelta: {x: 25, y: 25} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &25483051 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 25483049} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 424b6720ff5999446843ba414e58a907, type: 3} + m_Name: + m_EditorClassIdentifier: + m_CursorMode: 0 + m_CursorGraphic: {fileID: 25483052} + m_CursorTransform: {fileID: 25483050} + m_CursorSpeed: 400 + m_ScrollSpeed: 45 + m_StickAction: + m_UseReference: 0 + m_Action: + m_Name: Stick + m_Type: 0 + m_ExpectedControlType: + m_Id: b857e658-74b6-462e-b041-c8dd229fdaef + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 57c68b13-e2ae-4cf0-a132-517bbe6ee3b1 + m_Path: /leftStick + m_Interactions: + m_Processors: + m_Groups: + m_Action: Stick + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_LeftButtonAction: + m_UseReference: 0 + m_Action: + m_Name: Left Button + m_Type: 0 + m_ExpectedControlType: + m_Id: 02992d56-d555-42cc-bc08-8cceb4b05300 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: d29f8902-386d-450b-939c-9102ff048c90 + m_Path: /buttonSouth + m_Interactions: + m_Processors: + m_Groups: + m_Action: Left Button + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_MiddleButtonAction: + m_UseReference: 0 + m_Action: + m_Name: Middle Button + m_Type: 0 + m_ExpectedControlType: + m_Id: e09e44f4-44f1-4b20-8c9d-abed8bba510a + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_RightButtonAction: + m_UseReference: 0 + m_Action: + m_Name: Right Button + m_Type: 0 + m_ExpectedControlType: + m_Id: 22aadbd0-5df0-43cf-bb73-027b81b52027 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_ForwardButtonAction: + m_UseReference: 0 + m_Action: + m_Name: Forward Button + m_Type: 0 + m_ExpectedControlType: + m_Id: df88b6f6-0f16-45ca-9c4b-af34cca3c96c + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_BackButtonAction: + m_UseReference: 0 + m_Action: + m_Name: Back Button + m_Type: 0 + m_ExpectedControlType: + m_Id: 323ee121-7ffa-4526-9ddf-c088316ea394 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_ScrollWheelAction: + m_UseReference: 0 + m_Action: + m_Name: Scroll Wheel + m_Type: 0 + m_ExpectedControlType: + m_Id: 4d44e9d5-1363-4801-9de7-8485c41043c0 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: 2D Vector + m_Id: a83458c2-8559-4d6f-8a77-7809c7290bae + m_Path: 2DVector + m_Interactions: + m_Processors: + m_Groups: + m_Action: Scroll Wheel + m_Flags: 4 + - m_Name: up + m_Id: 491f64b1-226e-44a0-80a1-9d4b20456c4e + m_Path: /leftShoulder + m_Interactions: + m_Processors: + m_Groups: + m_Action: Scroll Wheel + m_Flags: 8 + - m_Name: up + m_Id: 9912df6a-191b-47e6-beab-1f2262610a15 + m_Path: /leftTrigger + m_Interactions: + m_Processors: + m_Groups: + m_Action: Scroll Wheel + m_Flags: 8 + - m_Name: down + m_Id: 234888d8-a7d6-4f1c-94a4-2ab86817b4f0 + m_Path: /rightShoulder + m_Interactions: + m_Processors: + m_Groups: + m_Action: Scroll Wheel + m_Flags: 8 + - m_Name: down + m_Id: dfb6330f-7642-453f-89b3-d5702106ef2a + m_Path: /rightTrigger + m_Interactions: + m_Processors: + m_Groups: + m_Action: Scroll Wheel + m_Flags: 8 + - m_Name: left + m_Id: 866cbbee-34ae-4417-ba9f-7968a8a9857f + m_Path: + m_Interactions: + m_Processors: + m_Groups: + m_Action: Scroll Wheel + m_Flags: 8 + - m_Name: right + m_Id: f81f6191-cbf1-4408-a009-bb44b34fdaa2 + m_Path: + m_Interactions: + m_Processors: + m_Groups: + m_Action: Scroll Wheel + m_Flags: 8 + m_Flags: 0 + m_Reference: {fileID: 0} +--- !u!114 &25483052 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 25483049} + 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: 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: c08500e75c1581d4daacd1a363ff46f6, 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!222 &25483053 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 25483049} + m_CullTransparentMesh: 0 +--- !u!1 &54003156 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 54003157} + - component: {fileID: 54003159} + - component: {fileID: 54003158} + m_Layer: 5 + m_Name: Example with PlayerInput component + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &54003157 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 54003156} + m_LocalRotation: {x: 0, y: 0, z: 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: 1320980110} + 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 &54003158 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 54003156} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: Example with PlayerInput component + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 2 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &54003159 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 54003156} + m_CullTransparentMesh: 1 +--- !u!1 &132635659 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 132635660} + - component: {fileID: 132635664} + - component: {fileID: 132635663} + - component: {fileID: 132635662} + - component: {fileID: 132635661} + m_Layer: 5 + m_Name: EditModeTest Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &132635660 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 132635659} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2.0041, y: 2.0041, z: 2.0041} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 772000972} + m_Father: {fileID: 841103154} + 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: -500, y: 150} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &132635661 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 132635659} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: acb092f864ae492428dba7040956663e, type: 3} + m_Name: + m_EditorClassIdentifier: + buttonText: {fileID: 772000973} +--- !u!114 &132635662 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 132635659} + 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: 132635663} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 132635661} + m_TargetAssemblyTypeName: SceneLoader, Assembly-CSharp + m_MethodName: LoadSceneOnButtonPress + 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: 1 +--- !u!114 &132635663 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 132635659} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &132635664 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 132635659} + m_CullTransparentMesh: 1 +--- !u!1 &302520024 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 302520027} + - component: {fileID: 302520026} + - component: {fileID: 302520028} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &302520026 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 302520024} + 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 &302520027 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 302520024} + 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: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &302520028 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 302520024} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} + m_Name: + m_EditorClassIdentifier: + m_SendPointerHoverToParent: 1 + m_MoveRepeatDelay: 0.5 + m_MoveRepeatRate: 0.1 + m_XRTrackingOrigin: {fileID: 0} + m_ActionsAsset: {fileID: -944628639613478452, guid: 8817669807307db47b20ef1d43184588, + type: 3} + m_PointAction: {fileID: 0} + m_MoveAction: {fileID: 0} + m_SubmitAction: {fileID: 0} + m_CancelAction: {fileID: 0} + m_LeftClickAction: {fileID: 0} + m_MiddleClickAction: {fileID: 0} + m_RightClickAction: {fileID: 0} + m_ScrollWheelAction: {fileID: 0} + m_TrackedDevicePositionAction: {fileID: 0} + m_TrackedDeviceOrientationAction: {fileID: 0} + m_DeselectOnBackgroundClick: 1 + m_PointerBehavior: 0 + m_CursorLockBehavior: 0 +--- !u!1 &379333531 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 379333532} + - component: {fileID: 379333536} + - component: {fileID: 379333535} + - component: {fileID: 379333534} + - component: {fileID: 379333533} + m_Layer: 5 + m_Name: GamepadMouseCursorSample Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &379333532 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 379333531} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2.7267785, y: 2.7267785, z: 2.7267785} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1733623311} + m_Father: {fileID: 841103154} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -28, y: -100} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &379333533 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 379333531} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: acb092f864ae492428dba7040956663e, type: 3} + m_Name: + m_EditorClassIdentifier: + buttonText: {fileID: 1733623312} +--- !u!114 &379333534 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 379333531} + 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: 379333535} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 379333533} + m_TargetAssemblyTypeName: SceneLoader, Assembly-CSharp + m_MethodName: LoadSceneOnButtonPress + 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: 1 +--- !u!114 &379333535 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 379333531} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &379333536 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 379333531} + m_CullTransparentMesh: 1 +--- !u!1 &384471455 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 384471456} + - component: {fileID: 384471458} + - component: {fileID: 384471457} + m_Layer: 5 + m_Name: SimpleDemo_UsingActions + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &384471456 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 384471455} + m_LocalRotation: {x: 0, y: 0, z: 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: 1859855768} + 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 &384471457 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 384471455} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: SimpleDemo_UsingActions + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 10 + m_fontSizeBase: 10 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 2 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &384471458 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 384471455} + m_CullTransparentMesh: 1 +--- !u!1 &402645426 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 402645427} + - component: {fileID: 402645429} + - component: {fileID: 402645428} + m_Layer: 5 + m_Name: RebindingUISampleScene + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &402645427 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 402645426} + m_LocalRotation: {x: 0, y: 0, z: 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: 1782874627} + 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 &402645428 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 402645426} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: RebindingUISampleScene + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 2 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &402645429 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 402645426} + m_CullTransparentMesh: 1 +--- !u!1 &415075727 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 415075728} + - component: {fileID: 415075732} + - component: {fileID: 415075731} + - component: {fileID: 415075730} + - component: {fileID: 415075729} + m_Layer: 5 + m_Name: Actions Asset Reference Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &415075728 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 415075727} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2.7267785, y: 2.7267785, z: 2.7267785} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 914581054} + m_Father: {fileID: 841103154} + 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: 500, y: 200} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &415075729 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 415075727} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: acb092f864ae492428dba7040956663e, type: 3} + m_Name: + m_EditorClassIdentifier: + buttonText: {fileID: 914581055} +--- !u!114 &415075730 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 415075727} + 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: 415075731} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 415075729} + m_TargetAssemblyTypeName: SceneLoader, Assembly-CSharp + m_MethodName: LoadSceneOnButtonPress + 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: 1 +--- !u!114 &415075731 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 415075727} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &415075732 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 415075727} + m_CullTransparentMesh: 1 +--- !u!1 &471019131 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 471019132} + - component: {fileID: 471019136} + - component: {fileID: 471019135} + - component: {fileID: 471019134} + - component: {fileID: 471019133} + m_Layer: 5 + m_Name: ProjectWideActionsSampleScene Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &471019132 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 471019131} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2.7267785, y: 2.7267785, z: 2.7267785} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 751752354} + m_Father: {fileID: 841103154} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -28, y: -350} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &471019133 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 471019131} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: acb092f864ae492428dba7040956663e, type: 3} + m_Name: + m_EditorClassIdentifier: + buttonText: {fileID: 751752355} +--- !u!114 &471019134 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 471019131} + 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: 471019135} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 471019133} + m_TargetAssemblyTypeName: SceneLoader, Assembly-CSharp + m_MethodName: LoadSceneOnButtonPress + 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: 1 +--- !u!114 &471019135 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 471019131} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &471019136 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 471019131} + m_CullTransparentMesh: 1 +--- !u!1 &481706342 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 481706343} + - component: {fileID: 481706347} + - component: {fileID: 481706346} + - component: {fileID: 481706345} + - component: {fileID: 481706344} + m_Layer: 5 + m_Name: SimpleControlsVisualizer Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &481706343 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 481706342} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2.7267785, y: 2.7267785, z: 2.7267785} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1713331267} + m_Father: {fileID: 841103154} + 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: -30, y: 300} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &481706344 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 481706342} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: acb092f864ae492428dba7040956663e, type: 3} + m_Name: + m_EditorClassIdentifier: + buttonText: {fileID: 1713331268} +--- !u!114 &481706345 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 481706342} + 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: 481706346} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 481706344} + m_TargetAssemblyTypeName: SceneLoader, Assembly-CSharp + m_MethodName: LoadSceneOnButtonPress + 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: 1 +--- !u!114 &481706346 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 481706342} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &481706347 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 481706342} + m_CullTransparentMesh: 1 +--- !u!1 &527830643 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 527830644} + - component: {fileID: 527830648} + - component: {fileID: 527830647} + - component: {fileID: 527830646} + - component: {fileID: 527830645} + m_Layer: 5 + m_Name: OnScreenControlsSample Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &527830644 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 527830643} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2.0041, y: 2.0041, z: 2.0041} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 853989282} + m_Father: {fileID: 841103154} + 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: -500, y: -35} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &527830645 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 527830643} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: acb092f864ae492428dba7040956663e, type: 3} + m_Name: + m_EditorClassIdentifier: + buttonText: {fileID: 853989283} +--- !u!114 &527830646 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 527830643} + 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: 527830647} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 527830645} + m_TargetAssemblyTypeName: SceneLoader, Assembly-CSharp + m_MethodName: LoadSceneOnButtonPress + 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: 1 +--- !u!114 &527830647 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 527830643} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &527830648 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 527830643} + m_CullTransparentMesh: 1 +--- !u!1 &582432616 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 582432617} + - component: {fileID: 582432621} + - component: {fileID: 582432620} + - component: {fileID: 582432619} + - component: {fileID: 582432618} + m_Layer: 5 + m_Name: GamepadVisualizer Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &582432617 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 582432616} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2.7267785, y: 2.7267785, z: 2.7267785} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 977560881} + m_Father: {fileID: 841103154} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -28, y: 200} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &582432618 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 582432616} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: acb092f864ae492428dba7040956663e, type: 3} + m_Name: + m_EditorClassIdentifier: + buttonText: {fileID: 977560882} +--- !u!114 &582432619 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 582432616} + 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: 582432620} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 582432618} + m_TargetAssemblyTypeName: SceneLoader, Assembly-CSharp + m_MethodName: LoadSceneOnButtonPress + 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: 1 +--- !u!114 &582432620 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 582432616} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &582432621 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 582432616} + m_CullTransparentMesh: 1 +--- !u!1 &639125566 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 639125567} + - component: {fileID: 639125571} + - component: {fileID: 639125570} + - component: {fileID: 639125569} + - component: {fileID: 639125568} + m_Layer: 5 + m_Name: Example with Embedded Actions Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &639125567 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 639125566} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2.7267785, y: 2.7267785, z: 2.7267785} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1115592275} + m_Father: {fileID: 841103154} + 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: 500, y: 100} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &639125568 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 639125566} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: acb092f864ae492428dba7040956663e, type: 3} + m_Name: + m_EditorClassIdentifier: + buttonText: {fileID: 1115592276} +--- !u!114 &639125569 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 639125566} + 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: 639125570} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 639125568} + m_TargetAssemblyTypeName: SceneLoader, Assembly-CSharp + m_MethodName: LoadSceneOnButtonPress + 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: 1 +--- !u!114 &639125570 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 639125566} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &639125571 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 639125566} + m_CullTransparentMesh: 1 +--- !u!1 &642145931 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 642145936} + - component: {fileID: 642145935} + - component: {fileID: 642145934} + - component: {fileID: 642145933} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &642145933 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 642145931} + 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 &642145934 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 642145931} + 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 &642145935 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 642145931} + 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_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 25 + m_UpdateRectTransformForStandalone: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &642145936 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 642145931} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 10} + m_LocalScale: {x: 0.01, y: 0.01, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 841103154} + - {fileID: 25483050} + m_Father: {fileID: 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: 1} + m_SizeDelta: {x: 1500, y: 1000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &644034314 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 644034315} + - component: {fileID: 644034318} + - component: {fileID: 644034317} + - component: {fileID: 644034316} + - component: {fileID: 644034319} + m_Layer: 5 + m_Name: DeviceList Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &644034315 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 644034314} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2.0041, y: 2.0041, z: 2.0041} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 904047873} + m_Father: {fileID: 841103154} + 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: -500, y: 300} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &644034316 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 644034314} + 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: 644034317} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 644034319} + m_TargetAssemblyTypeName: SceneLoader, Assembly-CSharp + m_MethodName: LoadSceneOnButtonPress + 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: 1 +--- !u!114 &644034317 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 644034314} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &644034318 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 644034314} + m_CullTransparentMesh: 1 +--- !u!114 &644034319 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 644034314} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: acb092f864ae492428dba7040956663e, type: 3} + m_Name: + m_EditorClassIdentifier: + buttonText: {fileID: 904047874} +--- !u!1 &646219628 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 646219629} + - component: {fileID: 646219631} + - component: {fileID: 646219630} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &646219629 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 646219628} + m_LocalRotation: {x: -0, y: -0, z: -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: 841103154} + 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: 435} + m_SizeDelta: {x: 1400, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &646219630 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 646219628} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_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: 40 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 4 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Core Platform Tests:' +--- !u!222 &646219631 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 646219628} + m_CullTransparentMesh: 0 +--- !u!1 &646344892 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 646344895} + - component: {fileID: 646344894} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!20 &646344894 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 646344892} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 5.5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &646344895 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 646344892} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.13, y: 1, z: -0.44} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &675621043 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 675621044} + - component: {fileID: 675621046} + - component: {fileID: 675621045} + m_Layer: 5 + m_Name: PenVisualizer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &675621044 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 675621043} + m_LocalRotation: {x: 0, y: 0, z: 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: 1780375231} + 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 &675621045 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 675621043} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: PenVisualizer + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 2 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &675621046 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 675621043} + m_CullTransparentMesh: 1 +--- !u!1 &699753714 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 699753715} + - component: {fileID: 699753719} + - component: {fileID: 699753718} + - component: {fileID: 699753717} + - component: {fileID: 699753716} + m_Layer: 5 + m_Name: SimpleDemo_UsingPlayerInput Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &699753715 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 699753714} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2.7267785, y: 2.7267785, z: 2.7267785} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1503653146} + m_Father: {fileID: 841103154} + 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: 500, y: -350} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &699753716 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 699753714} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: acb092f864ae492428dba7040956663e, type: 3} + m_Name: + m_EditorClassIdentifier: + buttonText: {fileID: 1503653147} +--- !u!114 &699753717 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 699753714} + 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: 699753718} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 699753716} + m_TargetAssemblyTypeName: SceneLoader, Assembly-CSharp + m_MethodName: LoadSceneOnButtonPress + 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: 1 +--- !u!114 &699753718 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 699753714} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &699753719 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 699753714} + m_CullTransparentMesh: 1 +--- !u!1 &751752353 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 751752354} + - component: {fileID: 751752356} + - component: {fileID: 751752355} + m_Layer: 5 + m_Name: ProjectWideActionsSampleScene + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &751752354 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 751752353} + m_LocalRotation: {x: 0, y: 0, z: 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: 471019132} + 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 &751752355 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 751752353} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: ProjectWideActionsSampleScene + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 10 + m_fontSizeBase: 10 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 2 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &751752356 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 751752353} + m_CullTransparentMesh: 1 +--- !u!1 &772000971 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 772000972} + - component: {fileID: 772000974} + - component: {fileID: 772000973} + m_Layer: 5 + m_Name: EditModeTest + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &772000972 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 772000971} + m_LocalRotation: {x: 0, y: 0, z: 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: 132635660} + 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 &772000973 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 772000971} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: EditModeTest + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &772000974 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 772000971} + m_CullTransparentMesh: 1 +--- !u!1 &790522781 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 790522782} + - component: {fileID: 790522784} + - component: {fileID: 790522783} + m_Layer: 5 + m_Name: GUITest + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &790522782 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 790522781} + m_LocalRotation: {x: 0, y: 0, z: 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: 2108293869} + 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 &790522783 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 790522781} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: GUITest + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &790522784 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 790522781} + m_CullTransparentMesh: 1 +--- !u!1 &841103153 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 841103154} + - component: {fileID: 841103156} + - component: {fileID: 841103155} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &841103154 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 841103153} + m_LocalRotation: {x: 0, y: 0, z: 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: 646219629} + - {fileID: 644034315} + - {fileID: 2108293869} + - {fileID: 132635660} + - {fileID: 527830644} + - {fileID: 1861753697} + - {fileID: 1303460754} + - {fileID: 1197220545} + - {fileID: 1564545725} + - {fileID: 415075728} + - {fileID: 639125567} + - {fileID: 1320980110} + - {fileID: 2014357947} + - {fileID: 1548818779} + - {fileID: 699753715} + - {fileID: 1859855768} + - {fileID: 481706343} + - {fileID: 582432617} + - {fileID: 994427484} + - {fileID: 1780375231} + - {fileID: 379333532} + - {fileID: 1782874627} + - {fileID: 471019132} + m_Father: {fileID: 642145936} + 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 &841103155 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 841103153} + 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: 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 &841103156 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 841103153} + m_CullTransparentMesh: 0 +--- !u!1 &852895519 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 852895520} + - component: {fileID: 852895522} + - component: {fileID: 852895521} + m_Layer: 5 + m_Name: Example with Actions Asset C# Wrapper + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &852895520 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 852895519} + m_LocalRotation: {x: 0, y: 0, z: 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: 1564545725} + 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 &852895521 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 852895519} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: Example with Actions Asset C# Wrapper + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 2 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &852895522 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 852895519} + m_CullTransparentMesh: 1 +--- !u!1 &853989281 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 853989282} + - component: {fileID: 853989284} + - component: {fileID: 853989283} + m_Layer: 5 + m_Name: OnScreenControlsSample + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &853989282 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 853989281} + m_LocalRotation: {x: 0, y: 0, z: 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: 527830644} + 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 &853989283 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 853989281} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: OnScreenControlsSample + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &853989284 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 853989281} + m_CullTransparentMesh: 1 +--- !u!1 &904047872 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 904047873} + - component: {fileID: 904047875} + - component: {fileID: 904047874} + m_Layer: 5 + m_Name: DeviceList + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &904047873 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 904047872} + m_LocalRotation: {x: 0, y: 0, z: 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: 644034315} + 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 &904047874 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 904047872} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: Device List + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &904047875 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 904047872} + m_CullTransparentMesh: 1 +--- !u!1 &914581053 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 914581054} + - component: {fileID: 914581056} + - component: {fileID: 914581055} + m_Layer: 5 + m_Name: Example with Actions Asset Reference + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &914581054 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 914581053} + m_LocalRotation: {x: 0, y: 0, z: 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: 415075728} + 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 &914581055 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 914581053} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: Example with Actions Asset Reference + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 2 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &914581056 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 914581053} + m_CullTransparentMesh: 1 +--- !u!1 &977560880 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 977560881} + - component: {fileID: 977560883} + - component: {fileID: 977560882} + m_Layer: 5 + m_Name: GamepadVisualizer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &977560881 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 977560880} + m_LocalRotation: {x: 0, y: 0, z: 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: 582432617} + 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 &977560882 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 977560880} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: GamepadVisualizer + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 2 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &977560883 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 977560880} + m_CullTransparentMesh: 1 +--- !u!1 &994427483 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 994427484} + - component: {fileID: 994427488} + - component: {fileID: 994427487} + - component: {fileID: 994427486} + - component: {fileID: 994427485} + m_Layer: 5 + m_Name: MouseVisualizer Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &994427484 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 994427483} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2.7267785, y: 2.7267785, z: 2.7267785} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1143008271} + m_Father: {fileID: 841103154} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -28, y: 100} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &994427485 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 994427483} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: acb092f864ae492428dba7040956663e, type: 3} + m_Name: + m_EditorClassIdentifier: + buttonText: {fileID: 1143008272} +--- !u!114 &994427486 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 994427483} + 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: 994427487} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 994427485} + m_TargetAssemblyTypeName: SceneLoader, Assembly-CSharp + m_MethodName: LoadSceneOnButtonPress + 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: 1 +--- !u!114 &994427487 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 994427483} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &994427488 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 994427483} + m_CullTransparentMesh: 1 +--- !u!1 &1115592274 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1115592275} + - component: {fileID: 1115592277} + - component: {fileID: 1115592276} + m_Layer: 5 + m_Name: Example with Embedded Actions + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1115592275 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1115592274} + m_LocalRotation: {x: 0, y: 0, z: 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: 639125567} + 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 &1115592276 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1115592274} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: Example with Embedded Actions + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 2 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1115592277 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1115592274} + m_CullTransparentMesh: 1 +--- !u!1 &1143008270 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1143008271} + - component: {fileID: 1143008273} + - component: {fileID: 1143008272} + m_Layer: 5 + m_Name: MouseVisualizer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1143008271 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1143008270} + m_LocalRotation: {x: 0, y: 0, z: 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: 994427484} + 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 &1143008272 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1143008270} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: MouseVisualizer + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 2 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1143008273 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1143008270} + m_CullTransparentMesh: 1 +--- !u!1 &1187324236 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1187324237} + - component: {fileID: 1187324239} + - component: {fileID: 1187324238} + m_Layer: 5 + m_Name: ISX_Touch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1187324237 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1187324236} + m_LocalRotation: {x: 0, y: 0, z: 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: 1197220545} + 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 &1187324238 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1187324236} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: ISX_Touch + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1187324239 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1187324236} + m_CullTransparentMesh: 1 +--- !u!1 &1197220544 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1197220545} + - component: {fileID: 1197220549} + - component: {fileID: 1197220548} + - component: {fileID: 1197220547} + - component: {fileID: 1197220546} + m_Layer: 5 + m_Name: ISX_Touch Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1197220545 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1197220544} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2.0041, y: 2.0041, z: 2.0041} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1187324237} + m_Father: {fileID: 841103154} + 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: -500, y: -250} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1197220546 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1197220544} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: acb092f864ae492428dba7040956663e, type: 3} + m_Name: + m_EditorClassIdentifier: + buttonText: {fileID: 1187324238} +--- !u!114 &1197220547 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1197220544} + 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: 1197220548} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1197220546} + m_TargetAssemblyTypeName: SceneLoader, Assembly-CSharp + m_MethodName: LoadSceneOnButtonPress + 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: 1 +--- !u!114 &1197220548 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1197220544} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1197220549 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1197220544} + m_CullTransparentMesh: 1 +--- !u!1 &1265823646 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1265823647} + - component: {fileID: 1265823649} + - component: {fileID: 1265823648} + m_Layer: 5 + m_Name: InGameHintsSampleScene + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1265823647 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1265823646} + m_LocalRotation: {x: 0, y: 0, z: 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: 1861753697} + 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 &1265823648 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1265823646} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: InGameHintsSampleScene + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1265823649 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1265823646} + m_CullTransparentMesh: 1 +--- !u!1 &1303460753 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1303460754} + - component: {fileID: 1303460758} + - component: {fileID: 1303460757} + - component: {fileID: 1303460756} + - component: {fileID: 1303460755} + m_Layer: 5 + m_Name: ISX_KB_Mouse_Basic Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1303460754 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1303460753} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2.0041, y: 2.0041, z: 2.0041} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1527510258} + m_Father: {fileID: 841103154} + 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: -500, y: -175} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1303460755 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1303460753} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: acb092f864ae492428dba7040956663e, type: 3} + m_Name: + m_EditorClassIdentifier: + buttonText: {fileID: 1527510259} +--- !u!114 &1303460756 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1303460753} + 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: 1303460757} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1303460755} + m_TargetAssemblyTypeName: SceneLoader, Assembly-CSharp + m_MethodName: LoadSceneOnButtonPress + 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: 1 +--- !u!114 &1303460757 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1303460753} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1303460758 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1303460753} + m_CullTransparentMesh: 1 +--- !u!1 &1320980109 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1320980110} + - component: {fileID: 1320980114} + - component: {fileID: 1320980113} + - component: {fileID: 1320980112} + - component: {fileID: 1320980111} + m_Layer: 5 + m_Name: Example with PlayerInput component Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1320980110 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1320980109} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2.7267785, y: 2.7267785, z: 2.7267785} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 54003157} + m_Father: {fileID: 841103154} + 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: 500, y: 0} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1320980111 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1320980109} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: acb092f864ae492428dba7040956663e, type: 3} + m_Name: + m_EditorClassIdentifier: + buttonText: {fileID: 54003158} +--- !u!114 &1320980112 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1320980109} + 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: 1320980113} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1320980111} + m_TargetAssemblyTypeName: SceneLoader, Assembly-CSharp + m_MethodName: LoadSceneOnButtonPress + 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: 1 +--- !u!114 &1320980113 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1320980109} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1320980114 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1320980109} + m_CullTransparentMesh: 1 +--- !u!1 &1503653145 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1503653146} + - component: {fileID: 1503653148} + - component: {fileID: 1503653147} + m_Layer: 5 + m_Name: SimpleDemo_UsingPlayerInput + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1503653146 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1503653145} + m_LocalRotation: {x: 0, y: 0, z: 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: 699753715} + 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 &1503653147 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1503653145} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: SimpleDemo_UsingPlayerInput + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 10 + m_fontSizeBase: 10 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 2 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1503653148 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1503653145} + m_CullTransparentMesh: 1 +--- !u!1 &1527510257 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1527510258} + - component: {fileID: 1527510260} + - component: {fileID: 1527510259} + m_Layer: 5 + m_Name: ISX_KB_Mouse_Basic + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1527510258 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1527510257} + m_LocalRotation: {x: 0, y: 0, z: 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: 1303460754} + 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 &1527510259 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1527510257} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: ISX_KB_Mouse_Basic + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1527510260 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1527510257} + m_CullTransparentMesh: 1 +--- !u!1 &1548818778 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1548818779} + - component: {fileID: 1548818783} + - component: {fileID: 1548818782} + - component: {fileID: 1548818781} + - component: {fileID: 1548818780} + m_Layer: 5 + m_Name: SimpleDemo_UsingState Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1548818779 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1548818778} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2.7267785, y: 2.7267785, z: 2.7267785} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1796308531} + m_Father: {fileID: 841103154} + 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: 500, y: -250} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1548818780 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1548818778} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: acb092f864ae492428dba7040956663e, type: 3} + m_Name: + m_EditorClassIdentifier: + buttonText: {fileID: 1796308532} +--- !u!114 &1548818781 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1548818778} + 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: 1548818782} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1548818780} + m_TargetAssemblyTypeName: SceneLoader, Assembly-CSharp + m_MethodName: LoadSceneOnButtonPress + 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: 1 +--- !u!114 &1548818782 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1548818778} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1548818783 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1548818778} + m_CullTransparentMesh: 1 +--- !u!1 &1564545724 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1564545725} + - component: {fileID: 1564545729} + - component: {fileID: 1564545728} + - component: {fileID: 1564545727} + - component: {fileID: 1564545726} + m_Layer: 5 + m_Name: Actions Asset C# Wrapper Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1564545725 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1564545724} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2.7267785, y: 2.7267785, z: 2.7267785} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 852895520} + m_Father: {fileID: 841103154} + 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: 500, y: 300} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1564545726 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1564545724} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: acb092f864ae492428dba7040956663e, type: 3} + m_Name: + m_EditorClassIdentifier: + buttonText: {fileID: 852895521} +--- !u!114 &1564545727 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1564545724} + 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: 1564545728} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1564545726} + m_TargetAssemblyTypeName: SceneLoader, Assembly-CSharp + m_MethodName: LoadSceneOnButtonPress + 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: 1 +--- !u!114 &1564545728 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1564545724} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1564545729 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1564545724} + m_CullTransparentMesh: 1 +--- !u!1 &1713331266 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1713331267} + - component: {fileID: 1713331269} + - component: {fileID: 1713331268} + m_Layer: 5 + m_Name: SimpleControlsVisualizer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1713331267 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1713331266} + m_LocalRotation: {x: 0, y: 0, z: 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: 481706343} + 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 &1713331268 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1713331266} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: SimpleControlsVisualizer + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 2 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1713331269 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1713331266} + m_CullTransparentMesh: 1 +--- !u!1 &1733623310 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1733623311} + - component: {fileID: 1733623313} + - component: {fileID: 1733623312} + m_Layer: 5 + m_Name: GamepadMouseCursorSample + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1733623311 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1733623310} + m_LocalRotation: {x: 0, y: 0, z: 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: 379333532} + 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 &1733623312 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1733623310} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: GamepadMouseCursorSample + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 10 + m_fontSizeBase: 10 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 2 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1733623313 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1733623310} + m_CullTransparentMesh: 1 +--- !u!1 &1780375230 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1780375231} + - component: {fileID: 1780375235} + - component: {fileID: 1780375234} + - component: {fileID: 1780375233} + - component: {fileID: 1780375232} + m_Layer: 5 + m_Name: PenVisualizer Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1780375231 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1780375230} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2.7267785, y: 2.7267785, z: 2.7267785} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 675621044} + m_Father: {fileID: 841103154} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -28, y: 0} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1780375232 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1780375230} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: acb092f864ae492428dba7040956663e, type: 3} + m_Name: + m_EditorClassIdentifier: + buttonText: {fileID: 675621045} +--- !u!114 &1780375233 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1780375230} + 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: 1780375234} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1780375232} + m_TargetAssemblyTypeName: SceneLoader, Assembly-CSharp + m_MethodName: LoadSceneOnButtonPress + 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: 1 +--- !u!114 &1780375234 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1780375230} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1780375235 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1780375230} + m_CullTransparentMesh: 1 +--- !u!1 &1782874626 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1782874627} + - component: {fileID: 1782874631} + - component: {fileID: 1782874630} + - component: {fileID: 1782874629} + - component: {fileID: 1782874628} + m_Layer: 5 + m_Name: RebindingUISampleScene Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1782874627 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1782874626} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2.7267785, y: 2.7267785, z: 2.7267785} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 402645427} + m_Father: {fileID: 841103154} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -28, y: -250} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1782874628 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1782874626} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: acb092f864ae492428dba7040956663e, type: 3} + m_Name: + m_EditorClassIdentifier: + buttonText: {fileID: 402645428} +--- !u!114 &1782874629 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1782874626} + 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: 1782874630} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1782874628} + m_TargetAssemblyTypeName: SceneLoader, Assembly-CSharp + m_MethodName: LoadSceneOnButtonPress + 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: 1 +--- !u!114 &1782874630 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1782874626} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1782874631 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1782874626} + m_CullTransparentMesh: 1 +--- !u!1 &1796308530 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1796308531} + - component: {fileID: 1796308533} + - component: {fileID: 1796308532} + m_Layer: 5 + m_Name: SimpleDemo_UsingState + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1796308531 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1796308530} + m_LocalRotation: {x: 0, y: 0, z: 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: 1548818779} + 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 &1796308532 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1796308530} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: SimpleDemo_UsingState + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 10 + m_fontSizeBase: 10 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 2 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1796308533 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1796308530} + m_CullTransparentMesh: 1 +--- !u!1 &1859855767 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1859855768} + - component: {fileID: 1859855772} + - component: {fileID: 1859855771} + - component: {fileID: 1859855770} + - component: {fileID: 1859855769} + m_Layer: 5 + m_Name: SimpleDemo_UsingActions Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1859855768 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1859855767} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2.7267785, y: 2.7267785, z: 2.7267785} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 384471456} + m_Father: {fileID: 841103154} + 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: 500, y: -450} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1859855769 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1859855767} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: acb092f864ae492428dba7040956663e, type: 3} + m_Name: + m_EditorClassIdentifier: + buttonText: {fileID: 384471457} +--- !u!114 &1859855770 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1859855767} + 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: 1859855771} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1859855769} + m_TargetAssemblyTypeName: SceneLoader, Assembly-CSharp + m_MethodName: LoadSceneOnButtonPress + 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: 1 +--- !u!114 &1859855771 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1859855767} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1859855772 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1859855767} + m_CullTransparentMesh: 1 +--- !u!1 &1861753696 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1861753697} + - component: {fileID: 1861753701} + - component: {fileID: 1861753700} + - component: {fileID: 1861753699} + - component: {fileID: 1861753698} + m_Layer: 5 + m_Name: InGameHintsSampleScene Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1861753697 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1861753696} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2.0041, y: 2.0041, z: 2.0041} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1265823647} + m_Father: {fileID: 841103154} + 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: -500, y: -100} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1861753698 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1861753696} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: acb092f864ae492428dba7040956663e, type: 3} + m_Name: + m_EditorClassIdentifier: + buttonText: {fileID: 1265823648} +--- !u!114 &1861753699 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1861753696} + 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: 1861753700} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1861753698} + m_TargetAssemblyTypeName: SceneLoader, Assembly-CSharp + m_MethodName: LoadSceneOnButtonPress + 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: 1 +--- !u!114 &1861753700 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1861753696} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1861753701 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1861753696} + m_CullTransparentMesh: 1 +--- !u!1 &2014357946 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2014357947} + - component: {fileID: 2014357951} + - component: {fileID: 2014357950} + - component: {fileID: 2014357949} + - component: {fileID: 2014357948} + m_Layer: 5 + m_Name: SimpleDemo_UsingActionAsset Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2014357947 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2014357946} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2.7267785, y: 2.7267785, z: 2.7267785} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2055262445} + m_Father: {fileID: 841103154} + 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: 500, y: -148} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2014357948 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2014357946} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: acb092f864ae492428dba7040956663e, type: 3} + m_Name: + m_EditorClassIdentifier: + buttonText: {fileID: 2055262446} +--- !u!114 &2014357949 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2014357946} + 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: 2014357950} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2014357948} + m_TargetAssemblyTypeName: SceneLoader, Assembly-CSharp + m_MethodName: LoadSceneOnButtonPress + 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: 1 +--- !u!114 &2014357950 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2014357946} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2014357951 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2014357946} + m_CullTransparentMesh: 1 +--- !u!1 &2055262444 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2055262445} + - component: {fileID: 2055262447} + - component: {fileID: 2055262446} + m_Layer: 5 + m_Name: SimpleDemo_UsingActionAsset + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2055262445 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2055262444} + m_LocalRotation: {x: 0, y: 0, z: 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: 2014357947} + 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 &2055262446 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2055262444} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: SimpleDemo_UsingActionAsset + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 10 + m_fontSizeBase: 10 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 2 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &2055262447 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2055262444} + m_CullTransparentMesh: 1 +--- !u!1 &2108293868 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2108293869} + - component: {fileID: 2108293873} + - component: {fileID: 2108293872} + - component: {fileID: 2108293871} + - component: {fileID: 2108293870} + m_Layer: 5 + m_Name: GUITest Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2108293869 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2108293868} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2.0041, y: 2.0041, z: 2.0041} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 790522782} + m_Father: {fileID: 841103154} + 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: -500, y: 225} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2108293870 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2108293868} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: acb092f864ae492428dba7040956663e, type: 3} + m_Name: + m_EditorClassIdentifier: + buttonText: {fileID: 790522783} +--- !u!114 &2108293871 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2108293868} + 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: 2108293872} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2108293870} + m_TargetAssemblyTypeName: SceneLoader, Assembly-CSharp + m_MethodName: LoadSceneOnButtonPress + 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: 1 +--- !u!114 &2108293872 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2108293868} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2108293873 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2108293868} + m_CullTransparentMesh: 1 +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 646344895} + - {fileID: 302520027} + - {fileID: 642145936} diff --git a/Assets/QA/Tests/Core Platform Menu/Core Platforms Menu.unity.meta b/Assets/QA/Tests/Core Platform Menu/Core Platforms Menu.unity.meta new file mode 100644 index 0000000000..4a38b84c52 --- /dev/null +++ b/Assets/QA/Tests/Core Platform Menu/Core Platforms Menu.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a9f12fb8ab1521c4a9fe6fa109fc648f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/QA/Tests/Core Platform Menu/Esc Menu Additive.unity b/Assets/QA/Tests/Core Platform Menu/Esc Menu Additive.unity new file mode 100644 index 0000000000..d7ac33447e --- /dev/null +++ b/Assets/QA/Tests/Core Platform Menu/Esc Menu Additive.unity @@ -0,0 +1,995 @@ +%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: 10 + 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.46169513, g: 0.5124164, b: 0.58993304, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + 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_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: 1 + m_PVRFilteringGaussRadiusAO: 1 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 3 + 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 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &99439186 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 99439187} + m_Layer: 5 + m_Name: Escape Menu + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &99439187 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 99439186} + m_LocalRotation: {x: 0, y: 0, z: 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: 733214415} + - {fileID: 2125113367} + - {fileID: 1689162857} + - {fileID: 1294392553} + m_Father: {fileID: 382789310} + 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 &382789306 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 382789310} + - component: {fileID: 382789309} + - component: {fileID: 382789308} + - component: {fileID: 382789307} + - component: {fileID: 382789311} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &382789307 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 382789306} + 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 &382789308 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 382789306} + 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: 0 +--- !u!223 &382789309 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 382789306} + 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_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 25 + m_UpdateRectTransformForStandalone: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &382789310 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 382789306} + 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: 99439187} + m_Father: {fileID: 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!114 &382789311 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 382789306} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b94b32a63dcd1af4594fb53774744e07, type: 3} + m_Name: + m_EditorClassIdentifier: + openMenu: + m_Name: Open Menu + m_Type: 0 + m_ExpectedControlType: + m_Id: 4847d674-e33c-4eae-baa6-4d688cab928d + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: e2c98a45-281a-4280-8716-b80cb1f00da9 + m_Path: /escape + m_Interactions: + m_Processors: + m_Groups: + m_Action: Open Menu + m_Flags: 0 + - m_Name: + m_Id: 89d8a33b-cdf5-4b64-b945-a95a521e2494 + m_Path: /start + m_Interactions: + m_Processors: + m_Groups: + m_Action: Open Menu + m_Flags: 0 + m_Flags: 0 +--- !u!1 &733214414 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 733214415} + - component: {fileID: 733214418} + - component: {fileID: 733214417} + - component: {fileID: 733214416} + m_Layer: 5 + m_Name: Escape Menu Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &733214415 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 733214414} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 1} + m_LocalScale: {x: 1.477687, y: 1.6052438, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 850035719} + m_Father: {fileID: 99439187} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &733214416 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 733214414} + 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: 733214417} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 382789311} + m_TargetAssemblyTypeName: EscapeMenu, Assembly-CSharp + m_MethodName: OnUIButtonPress + 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: 1 +--- !u!114 &733214417 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 733214414} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &733214418 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 733214414} + m_CullTransparentMesh: 1 +--- !u!1 &850035718 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 850035719} + - component: {fileID: 850035721} + - component: {fileID: 850035720} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &850035719 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 850035718} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.67673326, y: 0.62295836, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 733214415} + 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 &850035720 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 850035718} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: Return To Scene Menu + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 2 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: -32.678375, y: 0, z: -29.262146, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &850035721 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 850035718} + m_CullTransparentMesh: 1 +--- !u!1 &1294392551 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1294392553} + - component: {fileID: 1294392552} + m_Layer: 0 + m_Name: Esc Menu Camera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!20 &1294392552 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1294392551} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &1294392553 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1294392551} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -234.02863, y: -115.52225, z: 119.6127} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 99439187} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1689162854 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1689162857} + - component: {fileID: 1689162856} + - component: {fileID: 1689162858} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1689162856 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1689162854} + 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 &1689162857 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1689162854} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -458.19995, y: -257.5, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 99439187} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1689162858 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1689162854} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} + m_Name: + m_EditorClassIdentifier: + m_SendPointerHoverToParent: 1 + m_MoveRepeatDelay: 0.5 + m_MoveRepeatRate: 0.1 + m_XRTrackingOrigin: {fileID: 0} + m_ActionsAsset: {fileID: 1028393174096397967, guid: 00000000000000002000000000000000, + type: 0} + m_PointAction: {fileID: -258741022028708543, guid: 00000000000000002000000000000000, + type: 0} + m_MoveAction: {fileID: -5009863923518923382, guid: 00000000000000002000000000000000, + type: 0} + m_SubmitAction: {fileID: -353393351333331996, guid: 00000000000000002000000000000000, + type: 0} + m_CancelAction: {fileID: -7074298387356080831, guid: 00000000000000002000000000000000, + type: 0} + m_LeftClickAction: {fileID: -7682550261214540539, guid: 00000000000000002000000000000000, + type: 0} + m_MiddleClickAction: {fileID: 2087084782193644118, guid: 00000000000000002000000000000000, + type: 0} + m_RightClickAction: {fileID: -5153920545484056276, guid: 00000000000000002000000000000000, + type: 0} + m_ScrollWheelAction: {fileID: -2943969338540715940, guid: 00000000000000002000000000000000, + type: 0} + m_TrackedDevicePositionAction: {fileID: 3543067762491231054, guid: 00000000000000002000000000000000, + type: 0} + m_TrackedDeviceOrientationAction: {fileID: 6857083760122219113, guid: 00000000000000002000000000000000, + type: 0} + m_DeselectOnBackgroundClick: 1 + m_PointerBehavior: 0 + m_CursorLockBehavior: 0 +--- !u!1 &2125113366 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2125113367} + - component: {fileID: 2125113370} + - component: {fileID: 2125113369} + - component: {fileID: 2125113368} + m_Layer: 5 + m_Name: Cursor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2125113367 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2125113366} + m_LocalRotation: {x: -0, y: -0, z: -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: 99439187} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: -100, y: 50} + m_SizeDelta: {x: 25, y: 25} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2125113368 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2125113366} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 424b6720ff5999446843ba414e58a907, type: 3} + m_Name: + m_EditorClassIdentifier: + m_CursorMode: 0 + m_CursorGraphic: {fileID: 2125113369} + m_CursorTransform: {fileID: 2125113367} + m_CursorSpeed: 400 + m_ScrollSpeed: 45 + m_StickAction: + m_UseReference: 0 + m_Action: + m_Name: Stick + m_Type: 0 + m_ExpectedControlType: + m_Id: b857e658-74b6-462e-b041-c8dd229fdaef + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 57c68b13-e2ae-4cf0-a132-517bbe6ee3b1 + m_Path: /leftStick + m_Interactions: + m_Processors: + m_Groups: + m_Action: Stick + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_LeftButtonAction: + m_UseReference: 0 + m_Action: + m_Name: Left Button + m_Type: 0 + m_ExpectedControlType: + m_Id: 02992d56-d555-42cc-bc08-8cceb4b05300 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 936b0056-57aa-4793-b8ef-c0796dec0de7 + m_Path: /buttonSouth + m_Interactions: + m_Processors: + m_Groups: + m_Action: Left Button + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_MiddleButtonAction: + m_UseReference: 0 + m_Action: + m_Name: Middle Button + m_Type: 0 + m_ExpectedControlType: + m_Id: e09e44f4-44f1-4b20-8c9d-abed8bba510a + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_RightButtonAction: + m_UseReference: 0 + m_Action: + m_Name: Right Button + m_Type: 0 + m_ExpectedControlType: + m_Id: 22aadbd0-5df0-43cf-bb73-027b81b52027 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_ForwardButtonAction: + m_UseReference: 0 + m_Action: + m_Name: Forward Button + m_Type: 0 + m_ExpectedControlType: + m_Id: df88b6f6-0f16-45ca-9c4b-af34cca3c96c + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_BackButtonAction: + m_UseReference: 0 + m_Action: + m_Name: Back Button + m_Type: 0 + m_ExpectedControlType: + m_Id: 323ee121-7ffa-4526-9ddf-c088316ea394 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_ScrollWheelAction: + m_UseReference: 0 + m_Action: + m_Name: Scroll Wheel + m_Type: 0 + m_ExpectedControlType: + m_Id: 4d44e9d5-1363-4801-9de7-8485c41043c0 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: 2D Vector + m_Id: a83458c2-8559-4d6f-8a77-7809c7290bae + m_Path: 2DVector + m_Interactions: + m_Processors: + m_Groups: + m_Action: Scroll Wheel + m_Flags: 4 + - m_Name: up + m_Id: 491f64b1-226e-44a0-80a1-9d4b20456c4e + m_Path: /leftShoulder + m_Interactions: + m_Processors: + m_Groups: + m_Action: Scroll Wheel + m_Flags: 8 + - m_Name: up + m_Id: 9912df6a-191b-47e6-beab-1f2262610a15 + m_Path: /leftTrigger + m_Interactions: + m_Processors: + m_Groups: + m_Action: Scroll Wheel + m_Flags: 8 + - m_Name: down + m_Id: 234888d8-a7d6-4f1c-94a4-2ab86817b4f0 + m_Path: /rightShoulder + m_Interactions: + m_Processors: + m_Groups: + m_Action: Scroll Wheel + m_Flags: 8 + - m_Name: down + m_Id: dfb6330f-7642-453f-89b3-d5702106ef2a + m_Path: /rightTrigger + m_Interactions: + m_Processors: + m_Groups: + m_Action: Scroll Wheel + m_Flags: 8 + - m_Name: left + m_Id: 866cbbee-34ae-4417-ba9f-7968a8a9857f + m_Path: + m_Interactions: + m_Processors: + m_Groups: + m_Action: Scroll Wheel + m_Flags: 8 + - m_Name: right + m_Id: f81f6191-cbf1-4408-a009-bb44b34fdaa2 + m_Path: + m_Interactions: + m_Processors: + m_Groups: + m_Action: Scroll Wheel + m_Flags: 8 + m_Flags: 0 + m_Reference: {fileID: 0} +--- !u!114 &2125113369 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2125113366} + 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: 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: c08500e75c1581d4daacd1a363ff46f6, 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!222 &2125113370 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2125113366} + m_CullTransparentMesh: 0 +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 382789310} diff --git a/Assets/QA/Tests/Core Platform Menu/Esc Menu Additive.unity.meta b/Assets/QA/Tests/Core Platform Menu/Esc Menu Additive.unity.meta new file mode 100644 index 0000000000..76244a4dcc --- /dev/null +++ b/Assets/QA/Tests/Core Platform Menu/Esc Menu Additive.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2a0249e9a57b6474cb2f7fadc9bc1f84 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/QA/Tests/Core Platform Menu/Escape Menu.cs b/Assets/QA/Tests/Core Platform Menu/Escape Menu.cs new file mode 100644 index 0000000000..896518b315 --- /dev/null +++ b/Assets/QA/Tests/Core Platform Menu/Escape Menu.cs @@ -0,0 +1,80 @@ +using UnityEngine; +using UnityEngine.InputSystem; +using UnityEngine.SceneManagement; + +public class EscapeMenu : MonoBehaviour +{ + public InputAction openMenu; + private GameObject menuObject; + private bool isMenuOpened; + private Scene currentScene; + + public void Start() + { + menuObject = GameObject.Find("Escape Menu"); + menuObject.SetActive(false); + currentScene = SceneManager.GetActiveScene(); + + // Assign a callback for the "OpenMenu" action. + openMenu.performed += ctx => { OnEsc(ctx); }; + } + + public void OnEsc(InputAction.CallbackContext context) + { + isMenuOpened = !isMenuOpened; + + if (isMenuOpened) + { + DeactivateScene(currentScene); + ActivateMenu(); + } + else + { + ActivateScene(currentScene); + DeactivateMenu(); + } + } + + public void ActivateMenu() + { + menuObject.SetActive(true); + } + + public void DeactivateMenu() + { + menuObject.SetActive(false); + } + + public void ActivateScene(Scene scene) + { + GameObject[] rootObjects = scene.GetRootGameObjects(); + foreach (GameObject obj in rootObjects) + { + obj.SetActive(true); + } + } + + public void DeactivateScene(Scene scene) + { + GameObject[] rootObjects = scene.GetRootGameObjects(); + foreach (GameObject obj in rootObjects) + { + obj.SetActive(false); + } + } + + public void OnUIButtonPress() + { + SceneManager.LoadScene("Core Platforms Menu"); + } + + public void OnEnable() + { + openMenu.Enable(); + } + + public void OnDisable() + { + openMenu.Disable(); + } +} diff --git a/Assets/QA/Tests/Core Platform Menu/Escape Menu.cs.meta b/Assets/QA/Tests/Core Platform Menu/Escape Menu.cs.meta new file mode 100644 index 0000000000..dbf3834d1c --- /dev/null +++ b/Assets/QA/Tests/Core Platform Menu/Escape Menu.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: b94b32a63dcd1af4594fb53774744e07 \ No newline at end of file diff --git a/Assets/QA/Tests/Core Platform Menu/Scene Loader.cs b/Assets/QA/Tests/Core Platform Menu/Scene Loader.cs new file mode 100644 index 0000000000..4f352f21db --- /dev/null +++ b/Assets/QA/Tests/Core Platform Menu/Scene Loader.cs @@ -0,0 +1,20 @@ +using TMPro; +using UnityEditor; +using UnityEngine; +using UnityEngine.SceneManagement; + +public class SceneLoader : MonoBehaviour +{ + private string sceneName; + public TMP_Text buttonText; + public void Start() + { + sceneName = buttonText.name.ToString(); + } + + public void LoadSceneOnButtonPress() + { + SceneManager.LoadScene(sceneName); + SceneManager.LoadScene("Esc Menu Additive", LoadSceneMode.Additive); + } +} diff --git a/Assets/QA/Tests/Core Platform Menu/Scene Loader.cs.meta b/Assets/QA/Tests/Core Platform Menu/Scene Loader.cs.meta new file mode 100644 index 0000000000..dec11c5be6 --- /dev/null +++ b/Assets/QA/Tests/Core Platform Menu/Scene Loader.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: acb092f864ae492428dba7040956663e \ No newline at end of file diff --git a/Assets/QA/Tests/DeviceList/DeviceList.unity b/Assets/QA/Tests/DeviceList/DeviceList.unity index c417b1d99d..4a59de7bc5 100644 --- a/Assets/QA/Tests/DeviceList/DeviceList.unity +++ b/Assets/QA/Tests/DeviceList/DeviceList.unity @@ -50,12 +50,11 @@ LightmapSettings: m_BounceScale: 1 m_IndirectOutputScale: 1 m_AlbedoBoost: 1 - m_TemporalCoherenceThreshold: 1 m_EnvironmentLightingMode: 0 m_EnableBakedLightmaps: 1 m_EnableRealtimeLightmaps: 1 m_LightmapEditorSettings: - serializedVersion: 10 + serializedVersion: 12 m_Resolution: 2 m_BakeResolution: 40 m_AtlasSize: 1024 @@ -63,6 +62,7 @@ LightmapSettings: m_AOMaxDistance: 1 m_CompAOExponent: 1 m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 m_Padding: 2 m_LightmapParameters: {fileID: 0} m_LightmapsBakeMode: 1 @@ -77,10 +77,16 @@ LightmapSettings: m_PVRDirectSampleCount: 32 m_PVRSampleCount: 500 m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 m_PVRFilterTypeDirect: 0 m_PVRFilterTypeIndirect: 0 m_PVRFilterTypeAO: 0 - m_PVRFilteringMode: 1 + m_PVREnvironmentMIS: 0 m_PVRCulling: 1 m_PVRFilteringGaussRadiusDirect: 1 m_PVRFilteringGaussRadiusIndirect: 5 @@ -88,7 +94,9 @@ LightmapSettings: m_PVRFilteringAtrousPositionSigmaDirect: 0.5 m_PVRFilteringAtrousPositionSigmaIndirect: 2 m_PVRFilteringAtrousPositionSigmaAO: 1 - m_ShowResolutionOverlay: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 m_LightingDataAsset: {fileID: 0} m_UseShadowmask: 1 --- !u!196 &4 @@ -117,7 +125,8 @@ NavMeshSettings: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 504512818} @@ -134,20 +143,24 @@ GameObject: AudioListener: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 504512815} m_Enabled: 1 --- !u!20 &504512817 Camera: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 504512815} m_Enabled: 1 serializedVersion: 2 m_ClearFlags: 1 m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 m_SensorSize: {x: 36, y: 24} m_LensShift: {x: 0, y: 0} m_FocalLength: 50 @@ -181,7 +194,8 @@ Camera: Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 504512815} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -194,7 +208,8 @@ Transform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 721427939} @@ -213,11 +228,12 @@ GameObject: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 721427935} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} m_Name: m_EditorClassIdentifier: m_IgnoreReversedGraphics: 1 @@ -229,11 +245,12 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 721427935} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} m_Name: m_EditorClassIdentifier: m_UiScaleMode: 0 @@ -250,7 +267,8 @@ MonoBehaviour: Canvas: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 721427935} m_Enabled: 1 serializedVersion: 3 @@ -270,7 +288,8 @@ Canvas: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 721427935} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 10} @@ -289,7 +308,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 721427935} m_Enabled: 1 m_EditorHideFlags: 0 @@ -301,7 +321,8 @@ MonoBehaviour: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 763086583} @@ -318,29 +339,52 @@ GameObject: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 763086580} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} m_Name: m_EditorClassIdentifier: - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel - m_InputActionsPerSecond: 10 - m_RepeatDelay: 0.5 - m_ForceModuleActive: 0 + m_MoveRepeatDelay: 0.5 + m_MoveRepeatRate: 0.1 + m_XRTrackingOrigin: {fileID: 0} + m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_DeselectOnBackgroundClick: 1 + m_PointerBehavior: 0 + m_CursorLockBehavior: 0 --- !u!114 &763086582 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 763086580} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} m_Name: m_EditorClassIdentifier: m_FirstSelected: {fileID: 0} @@ -350,7 +394,8 @@ MonoBehaviour: Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 763086580} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -363,7 +408,8 @@ Transform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1027788742} @@ -380,21 +426,21 @@ GameObject: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1027788739} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 40 @@ -413,14 +459,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1027788739} m_CullTransparentMesh: 0 --- !u!224 &1027788742 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1027788739} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -438,7 +486,8 @@ RectTransform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1030887281} @@ -455,7 +504,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1030887280} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -475,21 +525,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1030887280} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -498,18 +548,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1030887283 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1030887280} m_CullTransparentMesh: 0 --- !u!1 &1196479007 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1196479008} @@ -526,7 +580,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1196479007} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -544,21 +599,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1196479007} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 40 @@ -577,14 +632,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1196479007} m_CullTransparentMesh: 0 --- !u!1 &2143274332 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 2143274334} @@ -600,15 +657,18 @@ GameObject: Light: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2143274332} m_Enabled: 1 - serializedVersion: 8 + 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 @@ -618,6 +678,24 @@ Light: 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} @@ -625,19 +703,23 @@ Light: m_CullingMask: serializedVersion: 2 m_Bits: 4294967295 + m_RenderingLayerMask: 1 m_Lightmapping: 4 m_LightShadowCasterMode: 0 m_AreaSize: {x: 1, y: 1} m_BounceIntensity: 1 m_ColorTemperature: 6570 m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 --- !u!4 &2143274334 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2143274332} m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} m_LocalPosition: {x: 0, y: 3, z: 0} diff --git a/Assets/Samples/DocsExamples.meta b/Assets/QA/Tests/DocsExamples.meta similarity index 77% rename from Assets/Samples/DocsExamples.meta rename to Assets/QA/Tests/DocsExamples.meta index ffccff7447..21693ead5b 100644 --- a/Assets/Samples/DocsExamples.meta +++ b/Assets/QA/Tests/DocsExamples.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 8c07b6252e786ff40875e3a3e19f8e4b +guid: 45583352a7a6f1d43b22888438d4376e folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Samples/DocsExamples/Actions.meta b/Assets/QA/Tests/DocsExamples/Actions.meta similarity index 100% rename from Assets/Samples/DocsExamples/Actions.meta rename to Assets/QA/Tests/DocsExamples/Actions.meta diff --git a/Assets/Samples/DocsExamples/Actions/ExampleActions.cs b/Assets/QA/Tests/DocsExamples/Actions/ExampleActions.cs similarity index 100% rename from Assets/Samples/DocsExamples/Actions/ExampleActions.cs rename to Assets/QA/Tests/DocsExamples/Actions/ExampleActions.cs diff --git a/Assets/Samples/DocsExamples/Actions/ExampleActions.cs.meta b/Assets/QA/Tests/DocsExamples/Actions/ExampleActions.cs.meta similarity index 100% rename from Assets/Samples/DocsExamples/Actions/ExampleActions.cs.meta rename to Assets/QA/Tests/DocsExamples/Actions/ExampleActions.cs.meta diff --git a/Assets/Samples/DocsExamples/Actions/ExampleActions.inputactions b/Assets/QA/Tests/DocsExamples/Actions/ExampleActions.inputactions similarity index 100% rename from Assets/Samples/DocsExamples/Actions/ExampleActions.inputactions rename to Assets/QA/Tests/DocsExamples/Actions/ExampleActions.inputactions diff --git a/Assets/Samples/DocsExamples/Actions/ExampleActions.inputactions.meta b/Assets/QA/Tests/DocsExamples/Actions/ExampleActions.inputactions.meta similarity index 100% rename from Assets/Samples/DocsExamples/Actions/ExampleActions.inputactions.meta rename to Assets/QA/Tests/DocsExamples/Actions/ExampleActions.inputactions.meta diff --git a/Assets/Samples/DocsExamples/Actions/SimpleActions.cs b/Assets/QA/Tests/DocsExamples/Actions/SimpleActions.cs similarity index 100% rename from Assets/Samples/DocsExamples/Actions/SimpleActions.cs rename to Assets/QA/Tests/DocsExamples/Actions/SimpleActions.cs diff --git a/Assets/Samples/DocsExamples/Actions/SimpleActions.cs.meta b/Assets/QA/Tests/DocsExamples/Actions/SimpleActions.cs.meta similarity index 100% rename from Assets/Samples/DocsExamples/Actions/SimpleActions.cs.meta rename to Assets/QA/Tests/DocsExamples/Actions/SimpleActions.cs.meta diff --git a/Assets/Samples/DocsExamples/Actions/SimpleActions.inputactions b/Assets/QA/Tests/DocsExamples/Actions/SimpleActions.inputactions similarity index 100% rename from Assets/Samples/DocsExamples/Actions/SimpleActions.inputactions rename to Assets/QA/Tests/DocsExamples/Actions/SimpleActions.inputactions diff --git a/Assets/Samples/DocsExamples/Actions/SimpleActions.inputactions.meta b/Assets/QA/Tests/DocsExamples/Actions/SimpleActions.inputactions.meta similarity index 100% rename from Assets/Samples/DocsExamples/Actions/SimpleActions.inputactions.meta rename to Assets/QA/Tests/DocsExamples/Actions/SimpleActions.inputactions.meta diff --git a/Assets/Samples/DocsExamples/ExampleActionsAssetCsWrapper.cs b/Assets/QA/Tests/DocsExamples/ExampleActionsAssetCsWrapper.cs similarity index 99% rename from Assets/Samples/DocsExamples/ExampleActionsAssetCsWrapper.cs rename to Assets/QA/Tests/DocsExamples/ExampleActionsAssetCsWrapper.cs index 6b4113eab2..c53125a560 100644 --- a/Assets/Samples/DocsExamples/ExampleActionsAssetCsWrapper.cs +++ b/Assets/QA/Tests/DocsExamples/ExampleActionsAssetCsWrapper.cs @@ -5,12 +5,10 @@ public class DocsExampleActionsAssetCsWrapper : MonoBehaviour { // this field will contain the actions wrapper instance ExampleActions actions; - void Awake() { // instantiate the actions wrapper class actions = new ExampleActions(); - // for the "jump" action, we add a callback method for when it is performed actions.gameplay.jump.performed += OnJump; } diff --git a/Assets/Samples/DocsExamples/ExampleActionsAssetCsWrapper.cs.meta b/Assets/QA/Tests/DocsExamples/ExampleActionsAssetCsWrapper.cs.meta similarity index 100% rename from Assets/Samples/DocsExamples/ExampleActionsAssetCsWrapper.cs.meta rename to Assets/QA/Tests/DocsExamples/ExampleActionsAssetCsWrapper.cs.meta diff --git a/Assets/Samples/DocsExamples/ExampleActionsAssetReference.cs b/Assets/QA/Tests/DocsExamples/ExampleActionsAssetReference.cs similarity index 100% rename from Assets/Samples/DocsExamples/ExampleActionsAssetReference.cs rename to Assets/QA/Tests/DocsExamples/ExampleActionsAssetReference.cs diff --git a/Assets/Samples/DocsExamples/ExampleActionsAssetReference.cs.meta b/Assets/QA/Tests/DocsExamples/ExampleActionsAssetReference.cs.meta similarity index 100% rename from Assets/Samples/DocsExamples/ExampleActionsAssetReference.cs.meta rename to Assets/QA/Tests/DocsExamples/ExampleActionsAssetReference.cs.meta diff --git a/Assets/Samples/DocsExamples/ExampleDirect.cs b/Assets/QA/Tests/DocsExamples/ExampleDirect.cs similarity index 100% rename from Assets/Samples/DocsExamples/ExampleDirect.cs rename to Assets/QA/Tests/DocsExamples/ExampleDirect.cs diff --git a/Assets/Samples/DocsExamples/ExampleDirect.cs.meta b/Assets/QA/Tests/DocsExamples/ExampleDirect.cs.meta similarity index 100% rename from Assets/Samples/DocsExamples/ExampleDirect.cs.meta rename to Assets/QA/Tests/DocsExamples/ExampleDirect.cs.meta diff --git a/Assets/Samples/DocsExamples/ExampleEmbeddedActions.cs b/Assets/QA/Tests/DocsExamples/ExampleEmbeddedActions.cs similarity index 89% rename from Assets/Samples/DocsExamples/ExampleEmbeddedActions.cs rename to Assets/QA/Tests/DocsExamples/ExampleEmbeddedActions.cs index 0a90ebde89..4be93348a9 100644 --- a/Assets/Samples/DocsExamples/ExampleEmbeddedActions.cs +++ b/Assets/QA/Tests/DocsExamples/ExampleEmbeddedActions.cs @@ -23,7 +23,8 @@ public void Update() public void OnJump(InputAction.CallbackContext context) { - // jump code goes here. + // Display the key information (you can customize this based on your UI) + Debug.Log($"Jump key pressed:"); } // the actions must be enabled and disabled diff --git a/Assets/Samples/DocsExamples/ExampleEmbeddedActions.cs.meta b/Assets/QA/Tests/DocsExamples/ExampleEmbeddedActions.cs.meta similarity index 100% rename from Assets/Samples/DocsExamples/ExampleEmbeddedActions.cs.meta rename to Assets/QA/Tests/DocsExamples/ExampleEmbeddedActions.cs.meta diff --git a/Assets/Samples/DocsExamples/ExamplePlayerInput.cs b/Assets/QA/Tests/DocsExamples/ExamplePlayerInput.cs similarity index 100% rename from Assets/Samples/DocsExamples/ExamplePlayerInput.cs rename to Assets/QA/Tests/DocsExamples/ExamplePlayerInput.cs diff --git a/Assets/Samples/DocsExamples/ExamplePlayerInput.cs.meta b/Assets/QA/Tests/DocsExamples/ExamplePlayerInput.cs.meta similarity index 100% rename from Assets/Samples/DocsExamples/ExamplePlayerInput.cs.meta rename to Assets/QA/Tests/DocsExamples/ExamplePlayerInput.cs.meta diff --git a/Assets/Samples/DocsExamples/Scenes.meta b/Assets/QA/Tests/DocsExamples/Scenes.meta similarity index 100% rename from Assets/Samples/DocsExamples/Scenes.meta rename to Assets/QA/Tests/DocsExamples/Scenes.meta diff --git a/Assets/Samples/DocsExamples/Scenes/Example with Actions Asset C# Wrapper.unity b/Assets/QA/Tests/DocsExamples/Scenes/Example with Actions Asset C# Wrapper.unity similarity index 100% rename from Assets/Samples/DocsExamples/Scenes/Example with Actions Asset C# Wrapper.unity rename to Assets/QA/Tests/DocsExamples/Scenes/Example with Actions Asset C# Wrapper.unity diff --git a/Assets/Samples/DocsExamples/Scenes/Example with Actions Asset C# Wrapper.unity.meta b/Assets/QA/Tests/DocsExamples/Scenes/Example with Actions Asset C# Wrapper.unity.meta similarity index 100% rename from Assets/Samples/DocsExamples/Scenes/Example with Actions Asset C# Wrapper.unity.meta rename to Assets/QA/Tests/DocsExamples/Scenes/Example with Actions Asset C# Wrapper.unity.meta diff --git a/Assets/Samples/DocsExamples/Scenes/Example with Actions Asset Reference.unity b/Assets/QA/Tests/DocsExamples/Scenes/Example with Actions Asset Reference.unity similarity index 100% rename from Assets/Samples/DocsExamples/Scenes/Example with Actions Asset Reference.unity rename to Assets/QA/Tests/DocsExamples/Scenes/Example with Actions Asset Reference.unity diff --git a/Assets/Samples/DocsExamples/Scenes/Example with Actions Asset Reference.unity.meta b/Assets/QA/Tests/DocsExamples/Scenes/Example with Actions Asset Reference.unity.meta similarity index 100% rename from Assets/Samples/DocsExamples/Scenes/Example with Actions Asset Reference.unity.meta rename to Assets/QA/Tests/DocsExamples/Scenes/Example with Actions Asset Reference.unity.meta diff --git a/Assets/Samples/DocsExamples/Scenes/Example with Embedded Actions.unity b/Assets/QA/Tests/DocsExamples/Scenes/Example with Embedded Actions.unity similarity index 78% rename from Assets/Samples/DocsExamples/Scenes/Example with Embedded Actions.unity rename to Assets/QA/Tests/DocsExamples/Scenes/Example with Embedded Actions.unity index a6e3d5d20b..f9bebedf08 100644 --- a/Assets/Samples/DocsExamples/Scenes/Example with Embedded Actions.unity +++ b/Assets/QA/Tests/DocsExamples/Scenes/Example with Embedded Actions.unity @@ -13,7 +13,7 @@ OcclusionCullingSettings: --- !u!104 &2 RenderSettings: m_ObjectHideFlags: 0 - serializedVersion: 9 + serializedVersion: 10 m_Fog: 0 m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} m_FogMode: 3 @@ -38,13 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 11 - m_GIWorkflowMode: 0 + serializedVersion: 12 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -67,9 +66,6 @@ LightmapSettings: 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: 0 @@ -98,13 +94,13 @@ LightmapSettings: m_TrainingDataDestination: TrainingData m_LightProbeSampleCountMultiplier: 4 m_LightingDataAsset: {fileID: 0} - m_UseShadowmask: 1 + m_LightingSettings: {fileID: 1452268839} --- !u!196 &4 NavMeshSettings: serializedVersion: 2 m_ObjectHideFlags: 0 m_BuildSettings: - serializedVersion: 2 + serializedVersion: 3 agentTypeID: 0 agentRadius: 0.5 agentHeight: 2 @@ -117,15 +113,79 @@ NavMeshSettings: cellSize: 0.16666667 manualTileSize: 0 tileSize: 256 - accuratePlacement: 0 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 debug: m_Flags: 0 m_NavMeshData: {fileID: 0} +--- !u!850595691 &1452268839 +LightingSettings: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Settings.lighting + serializedVersion: 8 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 1 + m_RealtimeEnvironmentLighting: 1 + m_BounceScale: 1 + m_AlbedoBoost: 1 + m_IndirectOutputScale: 1 + m_UsingShadowmask: 1 + m_BakeBackend: 1 + m_LightmapMaxSize: 1024 + m_LightmapSizeFixed: 0 + m_UseMipmapLimits: 1 + m_BakeResolution: 40 + m_Padding: 2 + m_LightmapCompression: 3 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAO: 0 + m_MixedBakeMode: 2 + m_LightmapsBakeMode: 1 + m_FilterMode: 1 + m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0} + m_ExportTrainingData: 0 + m_EnableWorkerProcessBaking: 1 + m_TrainingDataDestination: TrainingData + m_RealtimeResolution: 2 + m_ForceWhiteAlbedo: 0 + m_ForceUpdates: 0 + m_PVRCulling: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVREnvironmentSampleCount: 512 + m_PVREnvironmentReferencePointCount: 2048 + m_LightProbeSampleCountMultiplier: 4 + m_PVRBounces: 2 + m_PVRMinBounces: 2 + m_PVREnvironmentImportanceSampling: 0 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_RespectSceneVisibilityWhenBakingGI: 0 --- !u!1001 &3649407600332409107 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: + serializedVersion: 3 m_TransformParent: {fileID: 0} m_Modifications: - target: {fileID: 3649407600666749872, guid: b6b5f266028754740b00996b1ad8ce4e, @@ -239,6 +299,9 @@ PrefabInstance: value: 0 objectReference: {fileID: 0} m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: b6b5f266028754740b00996b1ad8ce4e, type: 3} --- !u!1 &7279796982563314049 GameObject: @@ -286,7 +349,23 @@ MonoBehaviour: m_Id: 4cd909ad-0df5-46bc-a7df-b14d5e1ca08f m_Processors: m_Interactions: - m_SingletonActionBindings: [] + m_SingletonActionBindings: + - m_Name: + m_Id: 3513a0c4-5278-47b8-91d0-c7e44adcb755 + m_Path: /space + m_Interactions: + m_Processors: + m_Groups: + m_Action: Jump + m_Flags: 0 + - m_Name: + m_Id: b46a4db3-3a91-4ff7-9c70-758765b4aeac + m_Path: /buttonSouth + m_Interactions: + m_Processors: + m_Groups: + m_Action: Jump + m_Flags: 0 m_Flags: 0 --- !u!4 &7283255547635044647 Transform: @@ -295,12 +374,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 7279796982563314049} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 1, z: -10} 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!20 &7298693803741327381 Camera: @@ -316,9 +396,17 @@ Camera: m_projectionMatrixMode: 1 m_GateFitMode: 2 m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 m_SensorSize: {x: 36, y: 24} m_LensShift: {x: 0, y: 0} - m_FocalLength: 50 m_NormalizedViewPortRect: serializedVersion: 2 x: 0 @@ -345,3 +433,9 @@ Camera: m_OcclusionCulling: 1 m_StereoConvergence: 10 m_StereoSeparation: 0.022 +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 3649407600332409107} + - {fileID: 7283255547635044647} diff --git a/Assets/Samples/DocsExamples/Scenes/Example with Embedded Actions.unity.meta b/Assets/QA/Tests/DocsExamples/Scenes/Example with Embedded Actions.unity.meta similarity index 100% rename from Assets/Samples/DocsExamples/Scenes/Example with Embedded Actions.unity.meta rename to Assets/QA/Tests/DocsExamples/Scenes/Example with Embedded Actions.unity.meta diff --git a/Assets/Samples/DocsExamples/Scenes/Example with PlayerInput component.unity b/Assets/QA/Tests/DocsExamples/Scenes/Example with PlayerInput component.unity similarity index 100% rename from Assets/Samples/DocsExamples/Scenes/Example with PlayerInput component.unity rename to Assets/QA/Tests/DocsExamples/Scenes/Example with PlayerInput component.unity diff --git a/Assets/Samples/DocsExamples/Scenes/Example with PlayerInput component.unity.meta b/Assets/QA/Tests/DocsExamples/Scenes/Example with PlayerInput component.unity.meta similarity index 100% rename from Assets/Samples/DocsExamples/Scenes/Example with PlayerInput component.unity.meta rename to Assets/QA/Tests/DocsExamples/Scenes/Example with PlayerInput component.unity.meta diff --git a/Assets/QA/Tests/KeyboardMouseBasic/ISX_KB_Mouse_Basic.unity b/Assets/QA/Tests/KeyboardMouseBasic/ISX_KB_Mouse_Basic.unity index f6df72c328..3b254f5213 100644 --- a/Assets/QA/Tests/KeyboardMouseBasic/ISX_KB_Mouse_Basic.unity +++ b/Assets/QA/Tests/KeyboardMouseBasic/ISX_KB_Mouse_Basic.unity @@ -50,12 +50,11 @@ LightmapSettings: m_BounceScale: 1 m_IndirectOutputScale: 1 m_AlbedoBoost: 1 - m_TemporalCoherenceThreshold: 1 m_EnvironmentLightingMode: 0 m_EnableBakedLightmaps: 1 m_EnableRealtimeLightmaps: 1 m_LightmapEditorSettings: - serializedVersion: 10 + serializedVersion: 12 m_Resolution: 2 m_BakeResolution: 40 m_AtlasSize: 1024 @@ -63,6 +62,7 @@ LightmapSettings: m_AOMaxDistance: 1 m_CompAOExponent: 1 m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 m_Padding: 2 m_LightmapParameters: {fileID: 0} m_LightmapsBakeMode: 1 @@ -77,10 +77,16 @@ LightmapSettings: m_PVRDirectSampleCount: 32 m_PVRSampleCount: 500 m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 m_PVRFilterTypeDirect: 0 m_PVRFilterTypeIndirect: 0 m_PVRFilterTypeAO: 0 - m_PVRFilteringMode: 1 + m_PVREnvironmentMIS: 0 m_PVRCulling: 1 m_PVRFilteringGaussRadiusDirect: 1 m_PVRFilteringGaussRadiusIndirect: 5 @@ -88,7 +94,9 @@ LightmapSettings: m_PVRFilteringAtrousPositionSigmaDirect: 0.5 m_PVRFilteringAtrousPositionSigmaIndirect: 2 m_PVRFilteringAtrousPositionSigmaAO: 1 - m_ShowResolutionOverlay: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 m_LightingDataAsset: {fileID: 0} m_UseShadowmask: 1 --- !u!196 &4 @@ -117,7 +125,8 @@ NavMeshSettings: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 10071405} @@ -135,7 +144,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 10071404} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -154,11 +164,12 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 10071404} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -2061169968, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} m_Name: m_EditorClassIdentifier: m_Navigation: @@ -172,17 +183,20 @@ MonoBehaviour: m_NormalColor: {r: 1, g: 1, b: 1, a: 1} m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} m_ColorMultiplier: 1 m_FadeDuration: 0.1 m_SpriteState: m_HighlightedSprite: {fileID: 0} m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} m_DisabledSprite: {fileID: 0} m_AnimationTriggers: m_NormalTrigger: Normal m_HighlightedTrigger: Highlighted m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted m_DisabledTrigger: Disabled m_Interactable: 1 m_TargetGraphic: {fileID: 199609981} @@ -194,27 +208,25 @@ MonoBehaviour: m_OnValueChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.Scrollbar+ScrollEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null --- !u!114 &10071407 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 10071404} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -223,17 +235,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &10071408 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 10071404} + m_CullTransparentMesh: 0 --- !u!1 &13683535 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 13683537} @@ -249,7 +266,8 @@ GameObject: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 13683535} m_Enabled: 1 m_EditorHideFlags: 0 @@ -260,7 +278,8 @@ MonoBehaviour: Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 13683535} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 307.98495, y: 126.32123, z: 0} @@ -273,7 +292,8 @@ Transform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 88265864} @@ -291,7 +311,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 88265863} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -309,7 +330,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 88265863} m_Enabled: 1 m_EditorHideFlags: 0 @@ -322,21 +344,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 88265863} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -345,17 +367,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &88265867 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 88265863} + m_CullTransparentMesh: 0 --- !u!1 &94518712 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 94518713} @@ -370,7 +397,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 94518712} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -500,7 +528,8 @@ RectTransform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 108959407} @@ -518,7 +547,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 108959406} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -536,7 +566,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 108959406} m_Enabled: 1 m_EditorHideFlags: 0 @@ -549,21 +580,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 108959406} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -572,17 +603,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &108959410 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 108959406} + m_CullTransparentMesh: 0 --- !u!1 &163808056 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 163808057} @@ -599,7 +635,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 163808056} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -617,21 +654,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 163808056} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 0} m_Type: 0 m_PreserveAspect: 0 @@ -640,17 +677,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &163808059 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 163808056} + m_CullTransparentMesh: 0 --- !u!1 &178065201 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 178065202} @@ -665,7 +707,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 178065201} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -687,7 +730,8 @@ RectTransform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 199609980} @@ -704,7 +748,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 199609979} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -722,21 +767,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 199609979} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -745,17 +790,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &199609982 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 199609979} + m_CullTransparentMesh: 0 --- !u!1 &203471560 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 203471561} @@ -772,7 +822,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 203471560} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -790,21 +841,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 203471560} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -823,13 +874,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 203471560} + m_CullTransparentMesh: 0 --- !u!1 &219484886 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 219484887} @@ -847,7 +901,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 219484886} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -865,7 +920,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 219484886} m_Enabled: 1 m_EditorHideFlags: 0 @@ -878,21 +934,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 219484886} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -901,17 +957,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &219484890 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 219484886} + m_CullTransparentMesh: 0 --- !u!1 &229210902 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 229210903} @@ -929,7 +990,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 229210902} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -947,7 +1009,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 229210902} m_Enabled: 1 m_EditorHideFlags: 0 @@ -960,21 +1023,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 229210902} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -983,17 +1046,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &229210906 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 229210902} + m_CullTransparentMesh: 0 --- !u!1 &230268639 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 230268640} @@ -1011,7 +1079,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 230268639} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1029,7 +1098,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 230268639} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1042,21 +1112,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 230268639} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -1065,17 +1135,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &230268643 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 230268639} + m_CullTransparentMesh: 0 --- !u!1 &230615793 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 230615794} @@ -1092,7 +1167,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 230615793} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1110,21 +1186,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 230615793} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -1143,13 +1219,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 230615793} + m_CullTransparentMesh: 0 --- !u!1 &244030580 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 244030581} @@ -1167,7 +1246,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 244030580} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1185,7 +1265,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 244030580} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1198,21 +1279,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 244030580} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -1221,17 +1302,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &244030584 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 244030580} + m_CullTransparentMesh: 0 --- !u!1 &266173503 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 266173504} @@ -1249,7 +1335,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 266173503} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1267,7 +1354,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 266173503} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1280,21 +1368,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 266173503} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -1303,17 +1391,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &266173507 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 266173503} + m_CullTransparentMesh: 0 --- !u!1 &272469467 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 272469468} @@ -1331,7 +1424,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 272469467} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1349,7 +1443,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 272469467} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1362,21 +1457,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 272469467} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -1385,17 +1480,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &272469471 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 272469467} + m_CullTransparentMesh: 0 --- !u!1 &278500630 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 278500631} @@ -1413,7 +1513,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 278500630} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1431,7 +1532,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 278500630} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1444,21 +1546,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 278500630} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -1467,17 +1569,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &278500634 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 278500630} + m_CullTransparentMesh: 0 --- !u!1 &283885505 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 283885506} @@ -1495,7 +1602,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 283885505} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1513,7 +1621,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 283885505} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1526,21 +1635,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 283885505} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -1549,17 +1658,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &283885509 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 283885505} + m_CullTransparentMesh: 0 --- !u!1 &285730500 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 285730501} @@ -1577,7 +1691,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 285730500} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1595,7 +1710,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 285730500} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1608,21 +1724,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 285730500} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -1631,17 +1747,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &285730504 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 285730500} + m_CullTransparentMesh: 0 --- !u!1 &294981315 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 294981316} @@ -1658,7 +1779,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 294981315} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1676,21 +1798,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 294981315} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -1709,13 +1831,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 294981315} + m_CullTransparentMesh: 0 --- !u!1 &302754112 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 302754113} @@ -1732,7 +1857,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 302754112} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1753,21 +1879,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 302754112} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.392} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -1776,17 +1902,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &302754115 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 302754112} + m_CullTransparentMesh: 0 --- !u!1 &321677632 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 321677633} @@ -1803,7 +1934,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 321677632} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1821,21 +1953,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 321677632} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -1854,13 +1986,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 321677632} + m_CullTransparentMesh: 0 --- !u!1 &325481402 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 325481403} @@ -1877,7 +2012,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 325481402} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1896,21 +2032,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 325481402} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -1919,17 +2055,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &325481406 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 325481402} + m_CullTransparentMesh: 0 --- !u!1 &348825881 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 348825882} @@ -1947,7 +2088,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 348825881} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1965,7 +2107,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 348825881} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1978,21 +2121,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 348825881} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -2001,17 +2144,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &348825885 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 348825881} + m_CullTransparentMesh: 0 --- !u!1 &350123730 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 350123731} @@ -2029,7 +2177,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 350123730} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2047,7 +2196,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 350123730} m_Enabled: 1 m_EditorHideFlags: 0 @@ -2060,21 +2210,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 350123730} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -2083,17 +2233,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &350123734 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 350123730} + m_CullTransparentMesh: 0 --- !u!1 &355713786 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 355713787} @@ -2111,7 +2266,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 355713786} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2129,7 +2285,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 355713786} m_Enabled: 1 m_EditorHideFlags: 0 @@ -2142,21 +2299,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 355713786} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -2165,17 +2322,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &355713790 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 355713786} + m_CullTransparentMesh: 0 --- !u!1 &360089696 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 360089697} @@ -2192,7 +2354,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 360089696} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2210,21 +2373,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 360089696} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 21300000, guid: 1faed9730f2a5854a91421c93fb07d16, type: 3} m_Type: 0 m_PreserveAspect: 0 @@ -2233,17 +2396,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &360089699 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 360089696} + m_CullTransparentMesh: 0 --- !u!1 &388534433 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 388534434} @@ -2261,7 +2429,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 388534433} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2279,7 +2448,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 388534433} m_Enabled: 1 m_EditorHideFlags: 0 @@ -2292,21 +2462,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 388534433} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -2315,17 +2485,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &388534437 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 388534433} + m_CullTransparentMesh: 0 --- !u!1 &390656242 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 390656243} @@ -2343,7 +2518,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 390656242} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2361,7 +2537,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 390656242} m_Enabled: 1 m_EditorHideFlags: 0 @@ -2374,21 +2551,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 390656242} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -2397,17 +2574,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &390656246 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 390656242} + m_CullTransparentMesh: 0 --- !u!1 &398856632 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 398856633} @@ -2425,7 +2607,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 398856632} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2443,7 +2626,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 398856632} m_Enabled: 1 m_EditorHideFlags: 0 @@ -2456,21 +2640,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 398856632} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -2479,17 +2663,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &398856636 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 398856632} + m_CullTransparentMesh: 0 --- !u!1 &415433617 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 415433618} @@ -2506,7 +2695,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 415433617} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2524,21 +2714,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 415433617} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -2557,13 +2747,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 415433617} + m_CullTransparentMesh: 0 --- !u!1 &427664409 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 427664410} @@ -2580,7 +2773,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 427664409} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2599,21 +2793,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 427664409} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -2622,17 +2816,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &427664413 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 427664409} + m_CullTransparentMesh: 0 --- !u!1 &443321875 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 443321876} @@ -2650,7 +2849,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 443321875} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2668,7 +2868,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 443321875} m_Enabled: 1 m_EditorHideFlags: 0 @@ -2681,21 +2882,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 443321875} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -2704,17 +2905,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &443321879 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 443321875} + m_CullTransparentMesh: 0 --- !u!1 &445563083 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 445563084} @@ -2732,7 +2938,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 445563083} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2750,7 +2957,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 445563083} m_Enabled: 1 m_EditorHideFlags: 0 @@ -2763,21 +2971,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 445563083} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -2786,17 +2994,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &445563087 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 445563083} + m_CullTransparentMesh: 0 --- !u!1 &448106739 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 448106740} @@ -2814,7 +3027,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 448106739} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2832,7 +3046,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 448106739} m_Enabled: 1 m_EditorHideFlags: 0 @@ -2845,21 +3060,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 448106739} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -2868,17 +3083,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &448106743 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 448106739} + m_CullTransparentMesh: 0 --- !u!1 &459503743 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 459503744} @@ -2895,7 +3115,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 459503743} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2916,21 +3137,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 459503743} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -2939,17 +3160,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &459503746 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 459503743} + m_CullTransparentMesh: 0 --- !u!1 &460590476 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 460590477} @@ -2967,7 +3193,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 460590476} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2985,7 +3212,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 460590476} m_Enabled: 1 m_EditorHideFlags: 0 @@ -2998,21 +3226,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 460590476} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -3021,17 +3249,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &460590480 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 460590476} + m_CullTransparentMesh: 0 --- !u!1 &462539530 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 462539531} @@ -3049,7 +3282,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 462539530} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3067,7 +3301,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 462539530} m_Enabled: 1 m_EditorHideFlags: 0 @@ -3080,21 +3315,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 462539530} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -3103,17 +3338,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &462539534 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 462539530} + m_CullTransparentMesh: 0 --- !u!1 &472003147 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 472003148} @@ -3131,7 +3371,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 472003147} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3149,7 +3390,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 472003147} m_Enabled: 1 m_EditorHideFlags: 0 @@ -3162,21 +3404,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 472003147} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -3185,17 +3427,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &472003151 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 472003147} + m_CullTransparentMesh: 0 --- !u!1 &472958760 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 472958761} @@ -3213,7 +3460,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 472958760} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3231,7 +3479,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 472958760} m_Enabled: 1 m_EditorHideFlags: 0 @@ -3244,21 +3493,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 472958760} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -3267,17 +3516,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &472958764 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 472958760} + m_CullTransparentMesh: 0 --- !u!1 &520336404 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 520336405} @@ -3295,7 +3549,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 520336404} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3313,7 +3568,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 520336404} m_Enabled: 1 m_EditorHideFlags: 0 @@ -3326,21 +3582,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 520336404} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -3349,17 +3605,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &520336408 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 520336404} + m_CullTransparentMesh: 0 --- !u!1 &537585421 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 537585422} @@ -3377,7 +3638,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 537585421} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3395,7 +3657,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 537585421} m_Enabled: 1 m_EditorHideFlags: 0 @@ -3408,21 +3671,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 537585421} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -3431,17 +3694,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &537585425 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 537585421} + m_CullTransparentMesh: 0 --- !u!1 &544561697 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 544561698} @@ -3458,7 +3726,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 544561697} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3476,21 +3745,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 544561697} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} m_Type: 0 m_PreserveAspect: 0 @@ -3499,17 +3768,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &544561700 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 544561697} + m_CullTransparentMesh: 0 --- !u!1 &547631283 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 547631284} @@ -3527,7 +3801,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 547631283} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3545,7 +3820,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 547631283} m_Enabled: 1 m_EditorHideFlags: 0 @@ -3558,21 +3834,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 547631283} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -3581,17 +3857,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &547631287 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 547631283} + m_CullTransparentMesh: 0 --- !u!1 &557232293 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 557232294} @@ -3608,7 +3889,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 557232293} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3626,21 +3908,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 557232293} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -3659,13 +3941,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 557232293} + m_CullTransparentMesh: 0 --- !u!1 &557793859 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 557793860} @@ -3683,7 +3968,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 557793859} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3701,7 +3987,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 557793859} m_Enabled: 1 m_EditorHideFlags: 0 @@ -3714,21 +4001,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 557793859} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -3737,17 +4024,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &557793863 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 557793859} + m_CullTransparentMesh: 0 --- !u!1 &566428861 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 566428862} @@ -3765,7 +4057,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 566428861} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3783,7 +4076,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 566428861} m_Enabled: 1 m_EditorHideFlags: 0 @@ -3796,21 +4090,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 566428861} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -3819,17 +4113,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &566428865 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 566428861} + m_CullTransparentMesh: 0 --- !u!1 &601977813 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 601977814} @@ -3846,7 +4145,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 601977813} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3864,21 +4164,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 601977813} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -3897,13 +4197,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 601977813} + m_CullTransparentMesh: 0 --- !u!1 &603334731 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 603334732} @@ -3920,7 +4223,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 603334731} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3938,21 +4242,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 603334731} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -3971,13 +4275,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 603334731} + m_CullTransparentMesh: 0 --- !u!1 &606340680 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 606340681} @@ -3995,7 +4302,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 606340680} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -4013,7 +4321,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 606340680} m_Enabled: 1 m_EditorHideFlags: 0 @@ -4026,21 +4335,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 606340680} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -4049,17 +4358,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &606340684 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 606340680} + m_CullTransparentMesh: 0 --- !u!1 &607220425 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 607220426} @@ -4077,7 +4391,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 607220425} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -4095,7 +4410,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 607220425} m_Enabled: 1 m_EditorHideFlags: 0 @@ -4108,21 +4424,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 607220425} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -4131,17 +4447,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &607220429 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 607220425} + m_CullTransparentMesh: 0 --- !u!1 &616706141 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 616706142} @@ -4159,7 +4480,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 616706141} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -4177,7 +4499,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 616706141} m_Enabled: 1 m_EditorHideFlags: 0 @@ -4190,21 +4513,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 616706141} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -4213,17 +4536,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &616706145 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 616706141} + m_CullTransparentMesh: 0 --- !u!1 &631203147 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 631203148} @@ -4238,7 +4566,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 631203147} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -4257,7 +4586,8 @@ RectTransform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 641664233} @@ -4275,7 +4605,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 641664232} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -4293,7 +4624,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 641664232} m_Enabled: 1 m_EditorHideFlags: 0 @@ -4306,21 +4638,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 641664232} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -4329,17 +4661,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &641664236 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 641664232} + m_CullTransparentMesh: 0 --- !u!1 &662516528 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 662516529} @@ -4356,7 +4693,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 662516528} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -4374,21 +4712,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 662516528} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -4397,17 +4735,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &662516531 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 662516528} + m_CullTransparentMesh: 0 --- !u!1 &669699845 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 669699846} @@ -4424,7 +4767,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 669699845} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -4442,21 +4786,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 669699845} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -4475,13 +4819,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 669699845} + m_CullTransparentMesh: 0 --- !u!1 &676957772 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 676957773} @@ -4499,7 +4846,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 676957772} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -4518,7 +4866,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 676957772} m_Enabled: 1 m_EditorHideFlags: 0 @@ -4531,21 +4880,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 676957772} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -4554,17 +4903,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &676957776 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 676957772} + m_CullTransparentMesh: 0 --- !u!1 &683930101 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 683930102} @@ -4582,7 +4936,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 683930101} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -4600,7 +4955,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 683930101} m_Enabled: 1 m_EditorHideFlags: 0 @@ -4613,21 +4969,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 683930101} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -4636,17 +4992,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &683930105 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 683930101} + m_CullTransparentMesh: 0 --- !u!1 &692610477 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 692610478} @@ -4664,7 +5025,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 692610477} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -4682,7 +5044,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 692610477} m_Enabled: 1 m_EditorHideFlags: 0 @@ -4693,21 +5056,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 692610477} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -4726,13 +5089,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 692610477} + m_CullTransparentMesh: 0 --- !u!1 &702767855 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 702767856} @@ -4747,7 +5113,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 702767855} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -4768,7 +5135,8 @@ RectTransform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 727452669} @@ -4786,7 +5154,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 727452668} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -4804,7 +5173,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 727452668} m_Enabled: 1 m_EditorHideFlags: 0 @@ -4817,21 +5187,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 727452668} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -4840,17 +5210,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &727452672 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 727452668} + m_CullTransparentMesh: 0 --- !u!1 &732165489 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 732165490} @@ -4868,7 +5243,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 732165489} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -4886,7 +5262,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 732165489} m_Enabled: 1 m_EditorHideFlags: 0 @@ -4899,21 +5276,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 732165489} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -4922,17 +5299,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &732165493 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 732165489} + m_CullTransparentMesh: 0 --- !u!1 &765449223 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 765449224} @@ -4950,7 +5332,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 765449223} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -4968,7 +5351,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 765449223} m_Enabled: 1 m_EditorHideFlags: 0 @@ -4981,21 +5365,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 765449223} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -5004,17 +5388,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &765449227 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 765449223} + m_CullTransparentMesh: 0 --- !u!1 &775347892 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 775347893} @@ -5032,7 +5421,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 775347892} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -5050,7 +5440,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 775347892} m_Enabled: 1 m_EditorHideFlags: 0 @@ -5063,21 +5454,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 775347892} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -5086,17 +5477,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &775347896 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 775347892} + m_CullTransparentMesh: 0 --- !u!1 &786253757 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 786253758} @@ -5114,7 +5510,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 786253757} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -5132,7 +5529,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 786253757} m_Enabled: 1 m_EditorHideFlags: 0 @@ -5145,21 +5543,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 786253757} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -5168,17 +5566,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &786253761 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 786253757} + m_CullTransparentMesh: 0 --- !u!1 &796068349 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 796068350} @@ -5196,7 +5599,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 796068349} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -5214,7 +5618,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 796068349} m_Enabled: 1 m_EditorHideFlags: 0 @@ -5227,21 +5632,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 796068349} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -5250,17 +5655,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &796068353 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 796068349} + m_CullTransparentMesh: 0 --- !u!1 &805424691 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 805424692} @@ -5278,7 +5688,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 805424691} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -5296,7 +5707,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 805424691} m_Enabled: 1 m_EditorHideFlags: 0 @@ -5309,21 +5721,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 805424691} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -5332,17 +5744,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &805424695 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 805424691} + m_CullTransparentMesh: 0 --- !u!1 &864436868 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 864436869} @@ -5360,7 +5777,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 864436868} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -5378,7 +5796,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 864436868} m_Enabled: 1 m_EditorHideFlags: 0 @@ -5390,21 +5809,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 864436868} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -5423,13 +5842,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 864436868} + m_CullTransparentMesh: 0 --- !u!1 &865976571 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 865976572} @@ -5447,7 +5869,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 865976571} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -5465,7 +5888,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 865976571} m_Enabled: 1 m_EditorHideFlags: 0 @@ -5478,21 +5902,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 865976571} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -5501,17 +5925,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &865976575 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 865976571} + m_CullTransparentMesh: 0 --- !u!1 &870105808 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 870105809} @@ -5529,7 +5958,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 870105808} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -5547,7 +5977,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 870105808} m_Enabled: 1 m_EditorHideFlags: 0 @@ -5560,21 +5991,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 870105808} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -5583,17 +6014,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &870105812 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 870105808} + m_CullTransparentMesh: 0 --- !u!1 &892295271 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 892295272} @@ -5610,7 +6046,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 892295271} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -5628,21 +6065,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 892295271} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -5661,13 +6098,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 892295271} + m_CullTransparentMesh: 0 --- !u!1 &916307242 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 916307243} @@ -5685,7 +6125,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 916307242} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -5703,7 +6144,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 916307242} m_Enabled: 1 m_EditorHideFlags: 0 @@ -5716,21 +6158,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 916307242} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -5739,17 +6181,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &916307246 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 916307242} + m_CullTransparentMesh: 0 --- !u!1 &919692036 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 919692037} @@ -5764,7 +6211,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 919692036} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -5783,7 +6231,8 @@ RectTransform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 920173703} @@ -5801,7 +6250,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 920173702} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -5819,7 +6269,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 920173702} m_Enabled: 1 m_EditorHideFlags: 0 @@ -5832,21 +6283,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 920173702} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -5855,17 +6306,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &920173706 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 920173702} + m_CullTransparentMesh: 0 --- !u!1 &925002923 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 925002924} @@ -5883,7 +6339,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 925002923} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -5901,7 +6358,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 925002923} m_Enabled: 1 m_EditorHideFlags: 0 @@ -5914,21 +6372,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 925002923} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -5937,17 +6395,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &925002927 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 925002923} + m_CullTransparentMesh: 0 --- !u!1 &932810626 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 932810627} @@ -5962,7 +6425,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 932810626} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -5981,7 +6445,8 @@ RectTransform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 934755521} @@ -5999,7 +6464,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 934755520} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -6017,7 +6483,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 934755520} m_Enabled: 1 m_EditorHideFlags: 0 @@ -6030,21 +6497,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 934755520} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -6053,17 +6520,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &934755524 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 934755520} + m_CullTransparentMesh: 0 --- !u!1 &962116432 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 962116433} @@ -6080,7 +6552,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 962116432} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -6099,21 +6572,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 962116432} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -6122,17 +6595,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &962116436 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 962116432} + m_CullTransparentMesh: 0 --- !u!1 &965446791 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 965446792} @@ -6150,7 +6628,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 965446791} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -6168,7 +6647,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 965446791} m_Enabled: 1 m_EditorHideFlags: 0 @@ -6181,21 +6661,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 965446791} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -6204,17 +6684,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &965446795 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 965446791} + m_CullTransparentMesh: 0 --- !u!1 &983964152 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 983964153} @@ -6232,7 +6717,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 983964152} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -6250,7 +6736,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 983964152} m_Enabled: 1 m_EditorHideFlags: 0 @@ -6263,21 +6750,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 983964152} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -6286,17 +6773,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &983964156 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 983964152} + m_CullTransparentMesh: 0 --- !u!1 &990793832 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 990793833} @@ -6314,7 +6806,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 990793832} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -6332,7 +6825,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 990793832} m_Enabled: 1 m_EditorHideFlags: 0 @@ -6345,21 +6839,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 990793832} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -6368,17 +6862,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &990793836 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 990793832} + m_CullTransparentMesh: 0 --- !u!1 &993317909 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 993317910} @@ -6395,7 +6894,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 993317909} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -6415,21 +6915,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 993317909} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.392} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -6438,17 +6938,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &993317912 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 993317909} + m_CullTransparentMesh: 0 --- !u!1 &1026915114 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1026915115} @@ -6465,7 +6970,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1026915114} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -6483,21 +6989,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1026915114} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 21300000, guid: 911e4f98140d1af44949ad99de4e72aa, type: 3} m_Type: 0 m_PreserveAspect: 0 @@ -6506,17 +7012,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1026915117 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1026915114} + m_CullTransparentMesh: 0 --- !u!1 &1027962183 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1027962184} @@ -6534,7 +7045,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1027962183} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -6552,7 +7064,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1027962183} m_Enabled: 1 m_EditorHideFlags: 0 @@ -6565,21 +7078,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1027962183} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -6588,17 +7101,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1027962187 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1027962183} + m_CullTransparentMesh: 0 --- !u!1 &1050882635 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1050882636} @@ -6615,7 +7133,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1050882635} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -6633,21 +7152,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1050882635} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 21300000, guid: a538c192b0a65934fbf0554b5e556429, type: 3} m_Type: 0 m_PreserveAspect: 0 @@ -6656,17 +7175,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1050882638 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1050882635} + m_CullTransparentMesh: 0 --- !u!1 &1060466527 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1060466528} @@ -6684,7 +7208,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1060466527} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -6702,7 +7227,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1060466527} m_Enabled: 1 m_EditorHideFlags: 0 @@ -6715,21 +7241,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1060466527} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -6738,17 +7264,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1060466531 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1060466527} + m_CullTransparentMesh: 0 --- !u!1 &1060902160 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1060902161} @@ -6765,7 +7296,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1060902160} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -6785,21 +7317,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1060902160} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.392} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -6808,17 +7340,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1060902163 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1060902160} + m_CullTransparentMesh: 0 --- !u!1 &1080127554 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1080127555} @@ -6835,7 +7372,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1080127554} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -6853,21 +7391,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1080127554} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -6886,13 +7424,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1080127554} + m_CullTransparentMesh: 0 --- !u!1 &1081632839 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1081632840} @@ -6909,7 +7450,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1081632839} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -6927,21 +7469,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1081632839} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -6960,13 +7502,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1081632839} + m_CullTransparentMesh: 0 --- !u!1 &1096309262 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1096309263} @@ -6984,7 +7529,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1096309262} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -7002,7 +7548,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1096309262} m_Enabled: 1 m_EditorHideFlags: 0 @@ -7015,21 +7562,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1096309262} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -7038,17 +7585,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1096309266 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1096309262} + m_CullTransparentMesh: 0 --- !u!1 &1103187264 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1103187265} @@ -7066,7 +7618,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1103187264} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -7084,7 +7637,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1103187264} m_Enabled: 1 m_EditorHideFlags: 0 @@ -7097,21 +7651,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1103187264} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -7120,17 +7674,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1103187268 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1103187264} + m_CullTransparentMesh: 0 --- !u!1 &1104505367 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1104505368} @@ -7148,7 +7707,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1104505367} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -7166,7 +7726,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1104505367} m_Enabled: 1 m_EditorHideFlags: 0 @@ -7179,21 +7740,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1104505367} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -7202,17 +7763,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1104505371 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1104505367} + m_CullTransparentMesh: 0 --- !u!1 &1125063392 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1125063393} @@ -7230,7 +7796,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1125063392} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -7250,11 +7817,12 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1125063392} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 575553740, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} m_Name: m_EditorClassIdentifier: m_Navigation: @@ -7268,17 +7836,20 @@ MonoBehaviour: m_NormalColor: {r: 1, g: 1, b: 1, a: 1} m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} m_ColorMultiplier: 1 m_FadeDuration: 0.1 m_SpriteState: m_HighlightedSprite: {fileID: 0} m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} m_DisabledSprite: {fileID: 0} m_AnimationTriggers: m_NormalTrigger: Normal m_HighlightedTrigger: Highlighted m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted m_DisabledTrigger: Disabled m_Interactable: 1 m_TargetGraphic: {fileID: 1125063395} @@ -7295,13 +7866,9 @@ MonoBehaviour: m_OnEndEdit: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.InputField+SubmitEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null m_OnValueChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.InputField+OnChangeEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_CustomCaretColor: 0 m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} @@ -7309,25 +7876,26 @@ MonoBehaviour: m_CaretBlinkRate: 0.85 m_CaretWidth: 1 m_ReadOnly: 0 + m_ShouldActivateOnSelect: 1 --- !u!114 &1125063395 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1125063392} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -7336,17 +7904,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1125063396 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1125063392} + m_CullTransparentMesh: 0 --- !u!1 &1125334468 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1125334469} @@ -7362,7 +7935,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1125334468} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -7383,11 +7957,12 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1125334468} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -113659843, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} m_Name: m_EditorClassIdentifier: m_Navigation: @@ -7401,17 +7976,20 @@ MonoBehaviour: m_NormalColor: {r: 1, g: 1, b: 1, a: 1} m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} m_ColorMultiplier: 1 m_FadeDuration: 0.1 m_SpriteState: m_HighlightedSprite: {fileID: 0} m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} m_DisabledSprite: {fileID: 0} m_AnimationTriggers: m_NormalTrigger: Normal m_HighlightedTrigger: Highlighted m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted m_DisabledTrigger: Disabled m_Interactable: 1 m_TargetGraphic: {fileID: 544561699} @@ -7425,13 +8003,12 @@ MonoBehaviour: m_OnValueChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.Slider+SliderEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null --- !u!1 &1157414305 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1157414306} @@ -7447,7 +8024,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1157414305} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -7468,11 +8046,12 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1157414305} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 2109663825, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} m_Name: m_EditorClassIdentifier: m_Navigation: @@ -7486,17 +8065,20 @@ MonoBehaviour: m_NormalColor: {r: 1, g: 1, b: 1, a: 1} m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} m_ColorMultiplier: 1 m_FadeDuration: 0.1 m_SpriteState: m_HighlightedSprite: {fileID: 0} m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} m_DisabledSprite: {fileID: 0} m_AnimationTriggers: m_NormalTrigger: Normal m_HighlightedTrigger: Highlighted m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted m_DisabledTrigger: Disabled m_Interactable: 1 m_TargetGraphic: {fileID: 163808058} @@ -7506,14 +8088,13 @@ MonoBehaviour: onValueChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null m_IsOn: 1 --- !u!1 &1172532003 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1172532004} @@ -7531,7 +8112,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1172532003} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -7554,21 +8136,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1172532003} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.392} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -7577,17 +8159,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1172532006 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1172532003} + m_CullTransparentMesh: 0 --- !u!114 &1172532007 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1172532003} m_Enabled: 1 m_EditorHideFlags: 0 @@ -7607,7 +8194,8 @@ MonoBehaviour: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1177124996} @@ -7625,7 +8213,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1177124995} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -7643,7 +8232,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1177124995} m_Enabled: 1 m_EditorHideFlags: 0 @@ -7656,21 +8246,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1177124995} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -7679,17 +8269,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1177124999 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1177124995} + m_CullTransparentMesh: 0 --- !u!1 &1179988028 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1179988029} @@ -7706,7 +8301,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1179988028} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -7724,21 +8320,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1179988028} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 21300000, guid: 4f53ab927d576944ea9e1a9b9a337140, type: 3} m_Type: 0 m_PreserveAspect: 0 @@ -7747,17 +8343,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1179988031 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1179988028} + m_CullTransparentMesh: 0 --- !u!1 &1193839479 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1193839480} @@ -7775,7 +8376,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1193839479} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -7793,7 +8395,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1193839479} m_Enabled: 1 m_EditorHideFlags: 0 @@ -7806,21 +8409,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1193839479} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -7829,17 +8432,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1193839483 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1193839479} + m_CullTransparentMesh: 0 --- !u!1 &1199394529 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1199394530} @@ -7856,7 +8464,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1199394529} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -7874,21 +8483,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1199394529} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -7907,13 +8516,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1199394529} + m_CullTransparentMesh: 0 --- !u!1 &1201803791 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1201803792} @@ -7930,7 +8542,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1201803791} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -7948,21 +8561,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1201803791} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -7981,13 +8594,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1201803791} + m_CullTransparentMesh: 0 --- !u!1 &1204059799 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1204059800} @@ -8004,7 +8620,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1204059799} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -8022,21 +8639,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1204059799} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -8055,13 +8672,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1204059799} + m_CullTransparentMesh: 0 --- !u!1 &1206826726 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1206826727} @@ -8079,7 +8699,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1206826726} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -8097,7 +8718,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1206826726} m_Enabled: 1 m_EditorHideFlags: 0 @@ -8110,21 +8732,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1206826726} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -8133,17 +8755,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1206826730 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1206826726} + m_CullTransparentMesh: 0 --- !u!1 &1241033582 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1241033583} @@ -8160,7 +8787,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1241033582} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -8178,21 +8806,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1241033582} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10915, guid: 0000000000000000f000000000000000, type: 0} m_Type: 0 m_PreserveAspect: 0 @@ -8201,17 +8829,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1241033585 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1241033582} + m_CullTransparentMesh: 0 --- !u!1 &1250623056 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1250623057} @@ -8229,7 +8862,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1250623056} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -8247,7 +8881,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1250623056} m_Enabled: 1 m_EditorHideFlags: 0 @@ -8260,21 +8895,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1250623056} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -8283,17 +8918,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1250623060 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1250623056} + m_CullTransparentMesh: 0 --- !u!1 &1262604356 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1262604357} @@ -8311,7 +8951,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1262604356} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -8329,7 +8970,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1262604356} m_Enabled: 1 m_EditorHideFlags: 0 @@ -8342,21 +8984,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1262604356} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -8365,17 +9007,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1262604360 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1262604356} + m_CullTransparentMesh: 0 --- !u!1 &1264564735 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1264564736} @@ -8392,7 +9039,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1264564735} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -8410,21 +9058,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1264564735} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -8443,13 +9091,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1264564735} + m_CullTransparentMesh: 0 --- !u!1 &1265292816 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1265292817} @@ -8467,7 +9118,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1265292816} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -8485,7 +9137,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1265292816} m_Enabled: 1 m_EditorHideFlags: 0 @@ -8498,21 +9151,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1265292816} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -8521,17 +9174,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1265292820 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1265292816} + m_CullTransparentMesh: 0 --- !u!1 &1296260512 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1296260513} @@ -8549,7 +9207,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1296260512} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -8570,11 +9229,12 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1296260512} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 853051423, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 0d0b652f32a2cc243917e4028fa0f046, type: 3} m_Name: m_EditorClassIdentifier: m_Navigation: @@ -8588,17 +9248,20 @@ MonoBehaviour: m_NormalColor: {r: 1, g: 1, b: 1, a: 1} m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} m_ColorMultiplier: 1 m_FadeDuration: 0.1 m_SpriteState: m_HighlightedSprite: {fileID: 0} m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} m_DisabledSprite: {fileID: 0} m_AnimationTriggers: m_NormalTrigger: Normal m_HighlightedTrigger: Highlighted m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted m_DisabledTrigger: Disabled m_Interactable: 1 m_TargetGraphic: {fileID: 1296260515} @@ -8619,27 +9282,26 @@ MonoBehaviour: m_OnValueChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.Dropdown+DropdownEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null + m_AlphaFadeSpeed: 0.15 --- !u!114 &1296260515 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1296260512} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -8648,17 +9310,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1296260516 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1296260512} + m_CullTransparentMesh: 0 --- !u!1 &1299291406 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1299291407} @@ -8675,7 +9342,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1299291406} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -8694,21 +9362,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1299291406} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -8717,17 +9385,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1299291410 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1299291406} + m_CullTransparentMesh: 0 --- !u!1 &1299827729 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1299827730} @@ -8745,7 +9418,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1299827729} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -8763,7 +9437,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1299827729} m_Enabled: 1 m_EditorHideFlags: 0 @@ -8776,21 +9451,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1299827729} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -8799,17 +9474,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1299827733 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1299827729} + m_CullTransparentMesh: 0 --- !u!1 &1307964258 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1307964259} @@ -8827,7 +9507,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1307964258} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -8845,7 +9526,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1307964258} m_Enabled: 1 m_EditorHideFlags: 0 @@ -8858,21 +9540,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1307964258} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -8881,17 +9563,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1307964262 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1307964258} + m_CullTransparentMesh: 0 --- !u!1 &1311376690 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1311376693} @@ -8908,29 +9595,52 @@ GameObject: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1311376690} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel - m_InputActionsPerSecond: 10 - m_RepeatDelay: 0.5 - m_ForceModuleActive: 0 + m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} + m_Name: + m_EditorClassIdentifier: + m_MoveRepeatDelay: 0.5 + m_MoveRepeatRate: 0.1 + m_XRTrackingOrigin: {fileID: 0} + m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_DeselectOnBackgroundClick: 1 + m_PointerBehavior: 0 + m_CursorLockBehavior: 0 --- !u!114 &1311376692 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1311376690} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} m_Name: m_EditorClassIdentifier: m_FirstSelected: {fileID: 0} @@ -8940,7 +9650,8 @@ MonoBehaviour: Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1311376690} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -8953,7 +9664,8 @@ Transform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1319821096} @@ -8971,7 +9683,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1319821095} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -8989,7 +9702,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1319821095} m_Enabled: 1 m_EditorHideFlags: 0 @@ -9002,21 +9716,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1319821095} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -9025,17 +9739,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1319821099 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1319821095} + m_CullTransparentMesh: 0 --- !u!1 &1331562684 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1331562685} @@ -9053,7 +9772,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1331562684} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -9071,7 +9791,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1331562684} m_Enabled: 1 m_EditorHideFlags: 0 @@ -9084,21 +9805,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1331562684} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -9107,17 +9828,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1331562688 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1331562684} + m_CullTransparentMesh: 0 --- !u!1 &1357127662 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1357127663} @@ -9134,7 +9860,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1357127662} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -9152,21 +9879,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1357127662} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -9185,13 +9912,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1357127662} + m_CullTransparentMesh: 0 --- !u!1 &1382489885 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1382489886} @@ -9209,7 +9939,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1382489885} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -9228,11 +9959,12 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1382489885} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -2061169968, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} m_Name: m_EditorClassIdentifier: m_Navigation: @@ -9246,17 +9978,20 @@ MonoBehaviour: m_NormalColor: {r: 1, g: 1, b: 1, a: 1} m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} m_ColorMultiplier: 1 m_FadeDuration: 0.1 m_SpriteState: m_HighlightedSprite: {fileID: 0} m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} m_DisabledSprite: {fileID: 0} m_AnimationTriggers: m_NormalTrigger: Normal m_HighlightedTrigger: Highlighted m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted m_DisabledTrigger: Disabled m_Interactable: 1 m_TargetGraphic: {fileID: 1616932981} @@ -9268,27 +10003,25 @@ MonoBehaviour: m_OnValueChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.Scrollbar+ScrollEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null --- !u!114 &1382489888 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1382489885} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -9297,17 +10030,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1382489889 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1382489885} + m_CullTransparentMesh: 0 --- !u!1 &1427263463 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1427263464} @@ -9325,7 +10063,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1427263463} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -9343,7 +10082,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1427263463} m_Enabled: 1 m_EditorHideFlags: 0 @@ -9356,21 +10096,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1427263463} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -9379,17 +10119,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1427263467 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1427263463} + m_CullTransparentMesh: 0 --- !u!1 &1434319548 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1434319549} @@ -9407,7 +10152,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1434319548} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -9425,7 +10171,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1434319548} m_Enabled: 1 m_EditorHideFlags: 0 @@ -9438,21 +10185,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1434319548} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -9461,17 +10208,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1434319552 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1434319548} + m_CullTransparentMesh: 0 --- !u!1 &1445343419 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1445343420} @@ -9489,7 +10241,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1445343419} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -9507,7 +10260,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1445343419} m_Enabled: 1 m_EditorHideFlags: 0 @@ -9520,21 +10274,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1445343419} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -9543,17 +10297,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1445343423 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1445343419} + m_CullTransparentMesh: 0 --- !u!1 &1454571449 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1454571450} @@ -9571,7 +10330,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1454571449} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -9589,7 +10349,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1454571449} m_Enabled: 1 m_EditorHideFlags: 0 @@ -9602,21 +10363,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1454571449} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -9625,17 +10386,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1454571453 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1454571449} + m_CullTransparentMesh: 0 --- !u!1 &1462239659 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1462239660} @@ -9652,7 +10418,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1462239659} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -9670,21 +10437,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1462239659} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} m_Type: 0 m_PreserveAspect: 0 @@ -9693,17 +10460,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1462239662 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1462239659} + m_CullTransparentMesh: 0 --- !u!1 &1471241771 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1471241772} @@ -9721,7 +10493,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1471241771} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -9739,7 +10512,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1471241771} m_Enabled: 1 m_EditorHideFlags: 0 @@ -9752,21 +10526,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1471241771} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -9775,17 +10549,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1471241775 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1471241771} + m_CullTransparentMesh: 0 --- !u!1 &1471948932 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1471948933} @@ -9803,7 +10582,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1471948932} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -9821,7 +10601,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1471948932} m_Enabled: 1 m_EditorHideFlags: 0 @@ -9834,21 +10615,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1471948932} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -9857,17 +10638,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1471948936 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1471948932} + m_CullTransparentMesh: 0 --- !u!1 &1493110196 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1493110197} @@ -9885,7 +10671,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1493110196} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -9905,11 +10692,12 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1493110196} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 575553740, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} m_Name: m_EditorClassIdentifier: m_Navigation: @@ -9923,17 +10711,20 @@ MonoBehaviour: m_NormalColor: {r: 1, g: 1, b: 1, a: 1} m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} m_ColorMultiplier: 1 m_FadeDuration: 0.1 m_SpriteState: m_HighlightedSprite: {fileID: 0} m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} m_DisabledSprite: {fileID: 0} m_AnimationTriggers: m_NormalTrigger: Normal m_HighlightedTrigger: Highlighted m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted m_DisabledTrigger: Disabled m_Interactable: 1 m_TargetGraphic: {fileID: 1493110199} @@ -9950,13 +10741,9 @@ MonoBehaviour: m_OnEndEdit: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.InputField+SubmitEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null m_OnValueChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.InputField+OnChangeEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_CustomCaretColor: 0 m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} @@ -9964,25 +10751,26 @@ MonoBehaviour: m_CaretBlinkRate: 0.85 m_CaretWidth: 1 m_ReadOnly: 0 + m_ShouldActivateOnSelect: 1 --- !u!114 &1493110199 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1493110196} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -9991,17 +10779,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1493110200 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1493110196} + m_CullTransparentMesh: 0 --- !u!1 &1507415065 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1507415066} @@ -10019,7 +10812,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1507415065} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -10037,7 +10831,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1507415065} m_Enabled: 1 m_EditorHideFlags: 0 @@ -10050,21 +10845,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1507415065} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -10073,17 +10868,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1507415069 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1507415065} + m_CullTransparentMesh: 0 --- !u!1 &1527409404 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1527409405} @@ -10100,7 +10900,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1527409404} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -10118,21 +10919,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1527409404} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -10151,13 +10952,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1527409404} + m_CullTransparentMesh: 0 --- !u!1 &1543144900 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1543144901} @@ -10175,7 +10979,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1543144900} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -10193,7 +10998,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1543144900} m_Enabled: 1 m_EditorHideFlags: 0 @@ -10206,21 +11012,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1543144900} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -10229,17 +11035,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1543144904 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1543144900} + m_CullTransparentMesh: 0 --- !u!1 &1573014078 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1573014079} @@ -10257,7 +11068,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1573014078} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -10275,7 +11087,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1573014078} m_Enabled: 1 m_EditorHideFlags: 0 @@ -10288,21 +11101,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1573014078} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -10311,17 +11124,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1573014082 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1573014078} + m_CullTransparentMesh: 0 --- !u!1 &1582509885 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1582509886} @@ -10339,7 +11157,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1582509885} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -10357,7 +11176,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1582509885} m_Enabled: 1 m_EditorHideFlags: 0 @@ -10370,21 +11190,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1582509885} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -10393,17 +11213,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1582509889 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1582509885} + m_CullTransparentMesh: 0 --- !u!1 &1585900264 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1585900265} @@ -10420,7 +11245,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1585900264} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -10438,21 +11264,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1585900264} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -10471,13 +11297,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1585900264} + m_CullTransparentMesh: 0 --- !u!1 &1596772993 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1596772994} @@ -10495,7 +11324,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1596772993} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -10513,7 +11343,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1596772993} m_Enabled: 1 m_EditorHideFlags: 0 @@ -10526,21 +11357,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1596772993} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -10549,17 +11380,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1596772997 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1596772993} + m_CullTransparentMesh: 0 --- !u!1 &1599949921 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1599949922} @@ -10577,7 +11413,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1599949921} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -10595,7 +11432,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1599949921} m_Enabled: 1 m_EditorHideFlags: 0 @@ -10608,21 +11446,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1599949921} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -10631,17 +11469,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1599949925 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1599949921} + m_CullTransparentMesh: 0 --- !u!1 &1603332057 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1603332058} @@ -10659,7 +11502,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1603332057} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -10677,7 +11521,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1603332057} m_Enabled: 1 m_EditorHideFlags: 0 @@ -10690,21 +11535,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1603332057} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -10713,17 +11558,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1603332061 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1603332057} + m_CullTransparentMesh: 0 --- !u!1 &1616932979 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1616932980} @@ -10740,7 +11590,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1616932979} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -10758,21 +11609,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1616932979} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -10781,17 +11632,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1616932982 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1616932979} + m_CullTransparentMesh: 0 --- !u!1 &1622584075 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1622584076} @@ -10809,7 +11665,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1622584075} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -10827,7 +11684,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1622584075} m_Enabled: 1 m_EditorHideFlags: 0 @@ -10840,21 +11698,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1622584075} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -10863,17 +11721,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1622584079 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1622584075} + m_CullTransparentMesh: 0 --- !u!1 &1624501182 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1624501183} @@ -10891,7 +11754,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1624501182} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -10909,7 +11773,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1624501182} m_Enabled: 1 m_EditorHideFlags: 0 @@ -10922,21 +11787,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1624501182} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -10945,17 +11810,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1624501186 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1624501182} + m_CullTransparentMesh: 0 --- !u!1 &1626769974 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1626769975} @@ -10973,7 +11843,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1626769974} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -10991,7 +11862,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1626769974} m_Enabled: 1 m_EditorHideFlags: 0 @@ -11004,21 +11876,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1626769974} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -11027,17 +11899,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1626769978 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1626769974} + m_CullTransparentMesh: 0 --- !u!1 &1634863720 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1634863721} @@ -11055,7 +11932,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1634863720} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -11073,7 +11951,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1634863720} m_Enabled: 1 m_EditorHideFlags: 0 @@ -11086,21 +11965,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1634863720} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -11109,17 +11988,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1634863724 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1634863720} + m_CullTransparentMesh: 0 --- !u!1 &1649443912 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1649443913} @@ -11136,7 +12020,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1649443912} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -11154,21 +12039,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1649443912} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -11187,13 +12072,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1649443912} + m_CullTransparentMesh: 0 --- !u!1 &1655240488 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1655240489} @@ -11211,7 +12099,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1655240488} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -11229,7 +12118,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1655240488} m_Enabled: 1 m_EditorHideFlags: 0 @@ -11242,21 +12132,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1655240488} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -11265,17 +12155,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1655240492 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1655240488} + m_CullTransparentMesh: 0 --- !u!1 &1657293593 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1657293594} @@ -11293,7 +12188,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1657293593} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -11311,7 +12207,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1657293593} m_Enabled: 1 m_EditorHideFlags: 0 @@ -11324,21 +12221,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1657293593} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -11347,17 +12244,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1657293597 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1657293593} + m_CullTransparentMesh: 0 --- !u!1 &1661170759 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1661170763} @@ -11375,26 +12277,35 @@ GameObject: AudioListener: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1661170759} m_Enabled: 1 --- !u!124 &1661170761 Behaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1661170759} m_Enabled: 1 --- !u!20 &1661170762 Camera: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1661170759} m_Enabled: 1 serializedVersion: 2 m_ClearFlags: 1 m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 m_NormalizedViewPortRect: serializedVersion: 2 x: 0 @@ -11425,7 +12336,8 @@ Camera: Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1661170759} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 1, z: -10} @@ -11438,7 +12350,8 @@ Transform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1676808828} @@ -11456,7 +12369,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1676808827} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -11474,7 +12388,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1676808827} m_Enabled: 1 m_EditorHideFlags: 0 @@ -11487,21 +12402,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1676808827} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -11510,17 +12425,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1676808831 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1676808827} + m_CullTransparentMesh: 0 --- !u!1 &1686619436 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1686619437} @@ -11538,7 +12458,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1686619436} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -11556,7 +12477,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1686619436} m_Enabled: 1 m_EditorHideFlags: 0 @@ -11569,21 +12491,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1686619436} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -11592,17 +12514,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1686619440 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1686619436} + m_CullTransparentMesh: 0 --- !u!1 &1704904310 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1704904311} @@ -11620,7 +12547,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1704904310} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -11638,7 +12566,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1704904310} m_Enabled: 1 m_EditorHideFlags: 0 @@ -11651,21 +12580,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1704904310} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -11674,17 +12603,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1704904314 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1704904310} + m_CullTransparentMesh: 0 --- !u!1 &1706034529 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1706034530} @@ -11701,7 +12635,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1706034529} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -11719,21 +12654,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1706034529} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -11752,13 +12687,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1706034529} + m_CullTransparentMesh: 0 --- !u!1 &1733830151 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1733830152} @@ -11776,7 +12714,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1733830151} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -11794,7 +12733,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1733830151} m_Enabled: 1 m_EditorHideFlags: 0 @@ -11807,21 +12747,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1733830151} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -11830,17 +12770,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1733830155 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1733830151} + m_CullTransparentMesh: 0 --- !u!1 &1746750800 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1746750801} @@ -11858,7 +12803,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1746750800} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -11876,7 +12822,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1746750800} m_Enabled: 1 m_EditorHideFlags: 0 @@ -11889,21 +12836,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1746750800} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -11912,17 +12859,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1746750804 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1746750800} + m_CullTransparentMesh: 0 --- !u!1 &1757942371 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1757942372} @@ -11940,7 +12892,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1757942371} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -11960,11 +12913,12 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1757942371} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 1367256648, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} m_Name: m_EditorClassIdentifier: m_Content: {fileID: 1781921037} @@ -11985,27 +12939,25 @@ MonoBehaviour: m_OnValueChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.ScrollRect+ScrollRectEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null --- !u!114 &1757942374 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1757942371} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -12014,17 +12966,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1757942375 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1757942371} + m_CullTransparentMesh: 0 --- !u!1 &1759246165 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1759246166} @@ -12042,7 +12999,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1759246165} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -12060,7 +13018,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1759246165} m_Enabled: 1 m_EditorHideFlags: 0 @@ -12073,21 +13032,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1759246165} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -12096,17 +13055,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1759246169 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1759246165} + m_CullTransparentMesh: 0 --- !u!1 &1760137673 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1760137674} @@ -12123,7 +13087,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1760137673} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -12141,21 +13106,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1760137673} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -12174,13 +13139,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1760137673} + m_CullTransparentMesh: 0 --- !u!1 &1763664226 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1763664227} @@ -12198,7 +13166,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1763664226} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -12217,11 +13186,12 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1763664226} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} m_Name: m_EditorClassIdentifier: m_Navigation: @@ -12235,44 +13205,45 @@ MonoBehaviour: m_NormalColor: {r: 1, g: 1, b: 1, a: 1} m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} m_ColorMultiplier: 1 m_FadeDuration: 0.1 m_SpriteState: m_HighlightedSprite: {fileID: 0} m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} m_DisabledSprite: {fileID: 0} m_AnimationTriggers: m_NormalTrigger: Normal m_HighlightedTrigger: Highlighted m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted m_DisabledTrigger: Disabled m_Interactable: 1 m_TargetGraphic: {fileID: 1763664229} m_OnClick: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null --- !u!114 &1763664229 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1763664226} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -12281,17 +13252,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1763664230 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1763664226} + m_CullTransparentMesh: 0 --- !u!1 &1781921036 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1781921037} @@ -12306,7 +13282,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1781921036} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -12325,7 +13302,8 @@ RectTransform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1793868974} @@ -12343,7 +13321,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1793868973} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -12361,7 +13340,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1793868973} m_Enabled: 1 m_EditorHideFlags: 0 @@ -12374,21 +13354,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1793868973} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -12397,17 +13377,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1793868977 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1793868973} + m_CullTransparentMesh: 0 --- !u!1 &1804423677 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1804423678} @@ -12425,7 +13410,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1804423677} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -12443,7 +13429,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1804423677} m_Enabled: 1 m_EditorHideFlags: 0 @@ -12456,21 +13443,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1804423677} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -12479,17 +13466,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1804423681 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1804423677} + m_CullTransparentMesh: 0 --- !u!1 &1818301791 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1818301795} @@ -12507,11 +13499,12 @@ GameObject: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1818301791} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} m_Name: m_EditorClassIdentifier: m_IgnoreReversedGraphics: 1 @@ -12523,11 +13516,12 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1818301791} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} m_Name: m_EditorClassIdentifier: m_UiScaleMode: 0 @@ -12544,7 +13538,8 @@ MonoBehaviour: Canvas: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1818301791} m_Enabled: 1 serializedVersion: 3 @@ -12564,7 +13559,8 @@ Canvas: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1818301791} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -12583,7 +13579,8 @@ RectTransform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1831609667} @@ -12601,7 +13598,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1831609666} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -12619,7 +13617,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1831609666} m_Enabled: 1 m_EditorHideFlags: 0 @@ -12632,21 +13631,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1831609666} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -12655,17 +13654,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1831609670 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1831609666} + m_CullTransparentMesh: 0 --- !u!1 &1839472369 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1839472370} @@ -12683,7 +13687,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1839472369} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -12701,7 +13706,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1839472369} m_Enabled: 1 m_EditorHideFlags: 0 @@ -12714,21 +13720,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1839472369} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -12737,17 +13743,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1839472373 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1839472369} + m_CullTransparentMesh: 0 --- !u!1 &1845734577 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1845734578} @@ -12765,7 +13776,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1845734577} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -12783,7 +13795,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1845734577} m_Enabled: 1 m_EditorHideFlags: 0 @@ -12796,21 +13809,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1845734577} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -12819,17 +13832,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1845734581 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1845734577} + m_CullTransparentMesh: 0 --- !u!1 &1853430356 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1853430357} @@ -12846,7 +13864,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1853430356} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -12864,21 +13883,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1853430356} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 21300000, guid: 00026bce48cebd6409631a9ca4a36b76, type: 3} m_Type: 0 m_PreserveAspect: 0 @@ -12887,17 +13906,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1853430359 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1853430356} + m_CullTransparentMesh: 0 --- !u!1 &1886919647 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1886919648} @@ -12914,7 +13938,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1886919647} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -12933,21 +13958,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1886919647} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -12956,17 +13981,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1886919651 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1886919647} + m_CullTransparentMesh: 0 --- !u!1 &1897175757 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1897175758} @@ -12984,7 +14014,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1897175757} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -13002,7 +14033,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1897175757} m_Enabled: 1 m_EditorHideFlags: 0 @@ -13015,21 +14047,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1897175757} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -13038,17 +14070,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1897175761 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1897175757} + m_CullTransparentMesh: 0 --- !u!1 &1899180787 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1899180788} @@ -13066,7 +14103,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1899180787} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -13084,7 +14122,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1899180787} m_Enabled: 1 m_EditorHideFlags: 0 @@ -13097,21 +14136,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1899180787} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -13120,17 +14159,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1899180791 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1899180787} + m_CullTransparentMesh: 0 --- !u!1 &1905271019 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1905271020} @@ -13148,7 +14192,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1905271019} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -13166,7 +14211,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1905271019} m_Enabled: 1 m_EditorHideFlags: 0 @@ -13179,21 +14225,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1905271019} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -13202,17 +14248,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1905271023 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1905271019} + m_CullTransparentMesh: 0 --- !u!1 &1910610965 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1910610966} @@ -13229,7 +14280,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1910610965} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -13248,21 +14300,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1910610965} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -13271,17 +14323,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1910610969 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1910610965} + m_CullTransparentMesh: 0 --- !u!1 &1912045642 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1912045643} @@ -13299,7 +14356,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1912045642} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -13317,7 +14375,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1912045642} m_Enabled: 1 m_EditorHideFlags: 0 @@ -13330,21 +14389,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1912045642} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -13353,17 +14412,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1912045646 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1912045642} + m_CullTransparentMesh: 0 --- !u!1 &1914412933 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1914412934} @@ -13380,7 +14444,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1914412933} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -13398,21 +14463,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1914412933} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -13431,13 +14496,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1914412933} + m_CullTransparentMesh: 0 --- !u!1 &1916265530 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1916265531} @@ -13455,7 +14523,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1916265530} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -13473,7 +14542,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1916265530} m_Enabled: 1 m_EditorHideFlags: 0 @@ -13486,21 +14556,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1916265530} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -13509,17 +14579,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1916265534 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1916265530} + m_CullTransparentMesh: 0 --- !u!1 &1931812685 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1931812686} @@ -13537,7 +14612,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1931812685} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -13555,7 +14631,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1931812685} m_Enabled: 1 m_EditorHideFlags: 0 @@ -13568,21 +14645,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1931812685} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -13591,17 +14668,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1931812689 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1931812685} + m_CullTransparentMesh: 0 --- !u!1 &1936172967 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1936172968} @@ -13619,7 +14701,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1936172967} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -13637,7 +14720,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1936172967} m_Enabled: 1 m_EditorHideFlags: 0 @@ -13650,21 +14734,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1936172967} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -13673,17 +14757,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1936172971 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1936172967} + m_CullTransparentMesh: 0 --- !u!1 &1948308565 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1948308566} @@ -13701,7 +14790,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1948308565} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -13719,7 +14809,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1948308565} m_Enabled: 1 m_EditorHideFlags: 0 @@ -13732,21 +14823,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1948308565} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -13755,17 +14846,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1948308569 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1948308565} + m_CullTransparentMesh: 0 --- !u!1 &1958357914 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1958357915} @@ -13782,7 +14878,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1958357914} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -13800,21 +14897,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1958357914} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -13833,13 +14930,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1958357914} + m_CullTransparentMesh: 0 --- !u!1 &1959346341 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1959346342} @@ -13854,7 +14954,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1959346341} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -13873,7 +14974,8 @@ RectTransform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1974064620} @@ -13890,7 +14992,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1974064619} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -13908,21 +15011,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1974064619} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -13941,13 +15044,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1974064619} + m_CullTransparentMesh: 0 --- !u!1 &1975232763 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1975232764} @@ -13962,7 +15068,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1975232763} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -13983,7 +15090,8 @@ RectTransform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1978461549} @@ -14001,7 +15109,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1978461548} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -14019,7 +15128,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1978461548} m_Enabled: 1 m_EditorHideFlags: 0 @@ -14032,21 +15142,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1978461548} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -14055,17 +15165,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1978461552 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1978461548} + m_CullTransparentMesh: 0 --- !u!1 &1983812089 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1983812090} @@ -14083,7 +15198,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1983812089} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -14101,7 +15217,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1983812089} m_Enabled: 1 m_EditorHideFlags: 0 @@ -14114,21 +15231,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1983812089} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -14137,17 +15254,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1983812093 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1983812089} + m_CullTransparentMesh: 0 --- !u!1 &1991467288 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1991467289} @@ -14165,7 +15287,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1991467288} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -14183,7 +15306,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1991467288} m_Enabled: 1 m_EditorHideFlags: 0 @@ -14196,21 +15320,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1991467288} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -14219,17 +15343,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1991467292 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1991467288} + m_CullTransparentMesh: 0 --- !u!1 &2000328679 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 2000328680} @@ -14247,7 +15376,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2000328679} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -14265,7 +15395,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2000328679} m_Enabled: 1 m_EditorHideFlags: 0 @@ -14278,21 +15409,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2000328679} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -14301,17 +15432,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &2000328683 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2000328679} + m_CullTransparentMesh: 0 --- !u!1 &2076568665 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 2076568666} @@ -14328,7 +15464,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2076568665} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -14351,21 +15488,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2076568665} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.392} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -14374,17 +15511,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &2076568668 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2076568665} + m_CullTransparentMesh: 0 --- !u!1 &2079563700 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 2079563701} @@ -14402,7 +15544,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2079563700} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -14420,7 +15563,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2079563700} m_Enabled: 1 m_EditorHideFlags: 0 @@ -14433,21 +15577,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2079563700} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -14456,17 +15600,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &2079563704 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2079563700} + m_CullTransparentMesh: 0 --- !u!1 &2096852418 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 2096852419} @@ -14484,7 +15633,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2096852418} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -14502,7 +15652,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2096852418} m_Enabled: 1 m_EditorHideFlags: 0 @@ -14515,21 +15666,21 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2096852418} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -14538,17 +15689,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &2096852422 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2096852418} + m_CullTransparentMesh: 0 --- !u!1 &2097648824 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 2097648825} @@ -14566,7 +15722,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2097648824} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -14585,21 +15742,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2097648824} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10917, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -14608,21 +15765,26 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &2097648827 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2097648824} + m_CullTransparentMesh: 0 --- !u!114 &2097648828 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2097648824} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -1200242548, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} m_Name: m_EditorClassIdentifier: m_ShowMaskGraphic: 0 @@ -14630,7 +15792,8 @@ MonoBehaviour: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 2113754529} @@ -14647,7 +15810,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2113754528} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -14671,21 +15835,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2113754528} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.392} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -14694,17 +15858,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &2113754531 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2113754528} + m_CullTransparentMesh: 0 --- !u!1 &2120726607 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 2120726608} @@ -14721,7 +15890,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2120726607} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -14739,21 +15909,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2120726607} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -14762,17 +15932,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &2120726610 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2120726607} + m_CullTransparentMesh: 0 --- !u!1 &2143935253 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 2143935254} @@ -14787,7 +15962,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2143935253} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} diff --git a/Assets/QA/Tests/Touch/ISX_Touch.unity b/Assets/QA/Tests/Touch/ISX_Touch.unity index 1caa9f7433..8ec51e3818 100644 --- a/Assets/QA/Tests/Touch/ISX_Touch.unity +++ b/Assets/QA/Tests/Touch/ISX_Touch.unity @@ -50,12 +50,11 @@ LightmapSettings: m_BounceScale: 1 m_IndirectOutputScale: 1 m_AlbedoBoost: 1 - m_TemporalCoherenceThreshold: 1 m_EnvironmentLightingMode: 0 m_EnableBakedLightmaps: 1 m_EnableRealtimeLightmaps: 1 m_LightmapEditorSettings: - serializedVersion: 10 + serializedVersion: 12 m_Resolution: 2 m_BakeResolution: 40 m_AtlasSize: 1024 @@ -63,6 +62,7 @@ LightmapSettings: m_AOMaxDistance: 1 m_CompAOExponent: 1 m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 m_Padding: 2 m_LightmapParameters: {fileID: 0} m_LightmapsBakeMode: 1 @@ -77,10 +77,16 @@ LightmapSettings: m_PVRDirectSampleCount: 32 m_PVRSampleCount: 500 m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 m_PVRFilterTypeDirect: 0 m_PVRFilterTypeIndirect: 0 m_PVRFilterTypeAO: 0 - m_PVRFilteringMode: 1 + m_PVREnvironmentMIS: 0 m_PVRCulling: 1 m_PVRFilteringGaussRadiusDirect: 1 m_PVRFilteringGaussRadiusIndirect: 5 @@ -88,7 +94,9 @@ LightmapSettings: m_PVRFilteringAtrousPositionSigmaDirect: 0.5 m_PVRFilteringAtrousPositionSigmaIndirect: 2 m_PVRFilteringAtrousPositionSigmaAO: 1 - m_ShowResolutionOverlay: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 m_LightingDataAsset: {fileID: 0} m_UseShadowmask: 1 --- !u!196 &4 @@ -117,7 +125,8 @@ NavMeshSettings: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 10168267} @@ -133,7 +142,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 10168266} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -154,7 +164,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 10168266} m_Enabled: 1 m_EditorHideFlags: 0 @@ -168,7 +179,8 @@ MonoBehaviour: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 70143769} @@ -185,7 +197,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 70143768} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -203,21 +216,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 70143768} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -236,14 +249,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 70143768} m_CullTransparentMesh: 0 --- !u!1 &84348080 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 84348081} @@ -260,7 +275,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 84348080} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -290,21 +306,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 84348080} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.392} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -313,18 +329,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &84348083 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 84348080} m_CullTransparentMesh: 0 --- !u!1 &110735508 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 110735509} @@ -341,7 +361,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 110735508} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -359,21 +380,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 110735508} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -382,18 +403,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &110735511 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 110735508} m_CullTransparentMesh: 0 --- !u!1 &113008698 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 113008699} @@ -410,7 +435,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 113008698} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -428,21 +454,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 113008698} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -461,14 +487,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 113008698} m_CullTransparentMesh: 0 --- !u!1 &157023877 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 157023878} @@ -485,7 +513,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 157023877} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -503,21 +532,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 157023877} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -536,14 +565,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 157023877} m_CullTransparentMesh: 0 --- !u!1 &192104302 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 192104303} @@ -559,7 +590,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 192104302} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -580,7 +612,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 192104302} m_Enabled: 1 m_EditorHideFlags: 0 @@ -594,7 +627,8 @@ MonoBehaviour: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 231436559} @@ -610,7 +644,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 231436558} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -631,7 +666,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 231436558} m_Enabled: 1 m_EditorHideFlags: 0 @@ -645,7 +681,8 @@ MonoBehaviour: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 348026880} @@ -662,7 +699,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 348026879} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -680,21 +718,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 348026879} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -703,18 +741,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &348026882 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 348026879} m_CullTransparentMesh: 0 --- !u!1 &395785320 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 395785321} @@ -731,7 +773,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 395785320} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -749,21 +792,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 395785320} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -772,18 +815,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &395785323 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 395785320} m_CullTransparentMesh: 0 --- !u!1 &459503743 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 459503744} @@ -800,7 +847,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 459503743} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -820,21 +868,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 459503743} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 0.18039216} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -843,18 +891,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &459503746 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 459503743} m_CullTransparentMesh: 0 --- !u!1 &481811951 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 481811952} @@ -871,7 +923,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 481811951} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -889,21 +942,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 481811951} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -912,18 +965,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &481811954 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 481811951} m_CullTransparentMesh: 0 --- !u!1 &496878705 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 496878706} @@ -940,7 +997,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 496878705} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -958,21 +1016,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 496878705} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -991,14 +1049,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 496878705} m_CullTransparentMesh: 0 --- !u!1 &506693901 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 506693902} @@ -1015,7 +1075,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 506693901} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1033,21 +1094,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 506693901} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -1056,18 +1117,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &506693904 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 506693901} m_CullTransparentMesh: 0 --- !u!1 &615359030 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 615359031} @@ -1083,7 +1148,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 615359030} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1104,7 +1170,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 615359030} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1118,7 +1185,8 @@ MonoBehaviour: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 629081331} @@ -1135,7 +1203,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 629081330} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1153,21 +1222,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 629081330} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -1186,14 +1255,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 629081330} m_CullTransparentMesh: 0 --- !u!1 &671344008 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 671344009} @@ -1210,7 +1281,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 671344008} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1228,21 +1300,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 671344008} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -1261,14 +1333,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 671344008} m_CullTransparentMesh: 0 --- !u!1 &692449697 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 692449698} @@ -1285,7 +1359,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 692449697} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1303,21 +1378,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 692449697} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -1336,14 +1411,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 692449697} m_CullTransparentMesh: 0 --- !u!1 &734295638 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 734295640} @@ -1359,7 +1436,8 @@ GameObject: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 734295638} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1367,14 +1445,15 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: averagePositionIndicatorPrefab: {fileID: 1199466042054530, guid: 7ad4c4cccdb98404a84d273242d3d999, - type: 2} + type: 3} touchPositionIndicatorPrefab: {fileID: 1761338340343592, guid: 0af179a3cce70474f99f69a6a6d1ee98, - type: 2} + type: 3} --- !u!4 &734295640 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 734295638} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 559.4961, y: 386.10938, z: 23.125} @@ -1387,7 +1466,8 @@ Transform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 801771435} @@ -1403,7 +1483,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 801771434} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1424,7 +1505,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 801771434} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1438,7 +1520,8 @@ MonoBehaviour: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 848750330} @@ -1455,7 +1538,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 848750329} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1473,21 +1557,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 848750329} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -1506,14 +1590,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 848750329} m_CullTransparentMesh: 0 --- !u!1 &905239505 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 905239506} @@ -1530,7 +1616,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 905239505} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1548,21 +1635,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 905239505} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -1581,14 +1668,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 905239505} m_CullTransparentMesh: 0 --- !u!1 &910873524 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 910873525} @@ -1604,7 +1693,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 910873524} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1625,7 +1715,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 910873524} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1639,7 +1730,8 @@ MonoBehaviour: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 926733605} @@ -1655,7 +1747,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 926733604} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1676,7 +1769,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 926733604} m_Enabled: 1 m_EditorHideFlags: 0 @@ -1690,7 +1784,8 @@ MonoBehaviour: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 944003423} @@ -1707,7 +1802,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 944003422} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1725,21 +1821,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 944003422} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -1760,14 +1856,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 944003422} m_CullTransparentMesh: 0 --- !u!1 &950379202 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 950379203} @@ -1784,7 +1882,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 950379202} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1802,21 +1901,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 950379202} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -1825,18 +1924,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &950379205 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 950379202} m_CullTransparentMesh: 0 --- !u!1 &1020177673 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1020177674} @@ -1853,7 +1956,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1020177673} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1871,21 +1975,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1020177673} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -1904,14 +2008,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1020177673} m_CullTransparentMesh: 0 --- !u!1 &1081632839 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1081632840} @@ -1928,7 +2034,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1081632839} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1946,21 +2053,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1081632839} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -1979,14 +2086,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1081632839} m_CullTransparentMesh: 0 --- !u!1 &1109136876 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1109136877} @@ -2003,7 +2112,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1109136876} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2021,21 +2131,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1109136876} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -2054,14 +2164,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1109136876} m_CullTransparentMesh: 0 --- !u!1 &1109277451 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1109277452} @@ -2078,7 +2190,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1109277451} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2096,21 +2209,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1109277451} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -2129,14 +2242,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1109277451} m_CullTransparentMesh: 0 --- !u!1 &1306259897 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1306259898} @@ -2152,7 +2267,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1306259897} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2173,7 +2289,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1306259897} m_Enabled: 1 m_EditorHideFlags: 0 @@ -2187,7 +2304,8 @@ MonoBehaviour: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1311376693} @@ -2204,29 +2322,52 @@ GameObject: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1311376690} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} m_Name: m_EditorClassIdentifier: - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel - m_InputActionsPerSecond: 10 - m_RepeatDelay: 0.5 - m_ForceModuleActive: 0 + m_MoveRepeatDelay: 0.5 + m_MoveRepeatRate: 0.1 + m_XRTrackingOrigin: {fileID: 0} + m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_DeselectOnBackgroundClick: 1 + m_PointerBehavior: 0 + m_CursorLockBehavior: 0 --- !u!114 &1311376692 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1311376690} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} m_Name: m_EditorClassIdentifier: m_FirstSelected: {fileID: 0} @@ -2236,7 +2377,8 @@ MonoBehaviour: Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1311376690} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2249,7 +2391,8 @@ Transform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1415456873} @@ -2266,7 +2409,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1415456872} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2284,21 +2428,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1415456872} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -2307,18 +2451,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1415456875 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1415456872} m_CullTransparentMesh: 0 --- !u!1 &1441107509 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1441107510} @@ -2335,7 +2483,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1441107509} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2353,21 +2502,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1441107509} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -2386,14 +2535,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1441107509} m_CullTransparentMesh: 0 --- !u!1 &1445439552 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1445439553} @@ -2410,7 +2561,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1445439552} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2428,21 +2580,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1445439552} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -2461,14 +2613,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1445439552} m_CullTransparentMesh: 0 --- !u!1 &1485383291 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1485383292} @@ -2485,7 +2639,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1485383291} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2503,21 +2658,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1485383291} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -2526,18 +2681,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1485383294 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1485383291} m_CullTransparentMesh: 0 --- !u!1 &1537750240 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1537750241} @@ -2554,7 +2713,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1537750240} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2572,21 +2732,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1537750240} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -2595,18 +2755,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1537750243 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1537750240} m_CullTransparentMesh: 0 --- !u!1 &1566973645 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1566973646} @@ -2623,7 +2787,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1566973645} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2641,21 +2806,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1566973645} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -2674,14 +2839,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1566973645} m_CullTransparentMesh: 0 --- !u!1 &1652365399 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1652365400} @@ -2697,7 +2864,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1652365399} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2718,7 +2886,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1652365399} m_Enabled: 1 m_EditorHideFlags: 0 @@ -2732,7 +2901,8 @@ MonoBehaviour: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1661170763} @@ -2750,26 +2920,35 @@ GameObject: AudioListener: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1661170759} m_Enabled: 1 --- !u!124 &1661170761 Behaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1661170759} m_Enabled: 1 --- !u!20 &1661170762 Camera: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1661170759} m_Enabled: 1 serializedVersion: 2 m_ClearFlags: 1 m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 m_NormalizedViewPortRect: serializedVersion: 2 x: 0 @@ -2782,8 +2961,6 @@ Camera: orthographic: 0 orthographic size: 5 m_Depth: 0 - m_StreamingMipmapBias: 0 - m_StreamingInfluence: 1 m_CullingMask: serializedVersion: 2 m_Bits: 4294967295 @@ -2802,7 +2979,8 @@ Camera: Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1661170759} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2815,7 +2993,8 @@ Transform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1718672127} @@ -2832,7 +3011,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1718672126} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2850,21 +3030,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1718672126} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} m_Type: 1 m_PreserveAspect: 0 @@ -2873,18 +3053,22 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!222 &1718672129 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1718672126} m_CullTransparentMesh: 0 --- !u!1 &1731908055 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1731908056} @@ -2901,7 +3085,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1731908055} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -2919,21 +3104,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1731908055} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -2952,14 +3137,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1731908055} m_CullTransparentMesh: 0 --- !u!1 &1818301791 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1818301795} @@ -2977,11 +3164,12 @@ GameObject: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1818301791} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} m_Name: m_EditorClassIdentifier: m_IgnoreReversedGraphics: 1 @@ -2993,11 +3181,12 @@ MonoBehaviour: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1818301791} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} m_Name: m_EditorClassIdentifier: m_UiScaleMode: 0 @@ -3014,7 +3203,8 @@ MonoBehaviour: Canvas: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1818301791} m_Enabled: 1 serializedVersion: 3 @@ -3034,7 +3224,8 @@ Canvas: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1818301791} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3053,7 +3244,8 @@ RectTransform: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1849694802} @@ -3070,7 +3262,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1849694801} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3088,21 +3281,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1849694801} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -3121,14 +3314,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1849694801} m_CullTransparentMesh: 0 --- !u!1 &1851575429 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1851575430} @@ -3145,7 +3340,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1851575429} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3163,21 +3359,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1851575429} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -3196,14 +3392,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1851575429} m_CullTransparentMesh: 0 --- !u!1 &1882810832 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1882810833} @@ -3220,7 +3418,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1882810832} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3238,21 +3437,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1882810832} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -3271,14 +3470,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1882810832} m_CullTransparentMesh: 0 --- !u!1 &1935070692 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1935070693} @@ -3295,7 +3496,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1935070692} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3313,21 +3515,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1935070692} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -3346,14 +3548,16 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1935070692} m_CullTransparentMesh: 0 --- !u!1 &1980958555 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1980958556} @@ -3369,7 +3573,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1980958555} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3390,7 +3595,8 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1980958555} m_Enabled: 1 m_EditorHideFlags: 0 @@ -3404,7 +3610,8 @@ MonoBehaviour: GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - component: {fileID: 1993129864} @@ -3421,7 +3628,8 @@ GameObject: RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1993129863} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -3439,21 +3647,21 @@ RectTransform: MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1993129863} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_RaycastTarget: 1 + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 @@ -3472,6 +3680,7 @@ MonoBehaviour: CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1993129863} m_CullTransparentMesh: 0 diff --git a/Assets/Samples/InGameHints/InGameHintsActions.inputactions b/Assets/Samples/InGameHints/InGameHintsActions.inputactions index 2fdea4cae2..13bd420d9c 100644 --- a/Assets/Samples/InGameHints/InGameHintsActions.inputactions +++ b/Assets/Samples/InGameHints/InGameHintsActions.inputactions @@ -11,7 +11,8 @@ "id": "7e7492e7-1329-48bb-9fdc-279fd15473b4", "expectedControlType": "Vector2", "processors": "", - "interactions": "" + "interactions": "", + "initialStateCheck": true }, { "name": "Look", @@ -19,7 +20,8 @@ "id": "981fecc2-2e7a-4d6a-b041-00b47626e0a1", "expectedControlType": "Vector2", "processors": "", - "interactions": "" + "interactions": "", + "initialStateCheck": true }, { "name": "PickUp", @@ -27,7 +29,8 @@ "id": "5a59bbc2-a3d4-4cbd-88bb-01120d97dc69", "expectedControlType": "", "processors": "", - "interactions": "" + "interactions": "", + "initialStateCheck": false }, { "name": "Drop", @@ -35,7 +38,8 @@ "id": "f37bbe7e-e241-443f-b868-c784e1219f25", "expectedControlType": "", "processors": "", - "interactions": "" + "interactions": "", + "initialStateCheck": false }, { "name": "Throw", @@ -43,7 +47,8 @@ "id": "e450d71c-7cc5-4879-afb5-f3ed682d9824", "expectedControlType": "", "processors": "", - "interactions": "" + "interactions": "", + "initialStateCheck": false } ], "bindings": [ diff --git a/Assets/Samples/ProjectWideActions/ProjectWideActionsExample.cs b/Assets/Samples/ProjectWideActions/ProjectWideActionsExample.cs index ce0a1e2e1b..9279316ede 100644 --- a/Assets/Samples/ProjectWideActions/ProjectWideActionsExample.cs +++ b/Assets/Samples/ProjectWideActions/ProjectWideActionsExample.cs @@ -20,27 +20,59 @@ public class ProjectWideActionsExample : MonoBehaviour void Start() { // Project-Wide Actions - move = InputSystem.actions.FindAction("Player/Move"); - look = InputSystem.actions.FindAction("Player/Look"); - attack = InputSystem.actions.FindAction("Player/Attack"); - jump = InputSystem.actions.FindAction("Player/Jump"); - interact = InputSystem.actions.FindAction("Player/Interact"); - next = InputSystem.actions.FindAction("Player/Next"); - previous = InputSystem.actions.FindAction("Player/Previous"); - sprint = InputSystem.actions.FindAction("Player/Sprint"); - crouch = InputSystem.actions.FindAction("Player/Crouch"); + if (InputSystem.actions) + { + move = InputSystem.actions.FindAction("Player/Move"); + look = InputSystem.actions.FindAction("Player/Look"); + attack = InputSystem.actions.FindAction("Player/Attack"); + jump = InputSystem.actions.FindAction("Player/Jump"); + interact = InputSystem.actions.FindAction("Player/Interact"); + next = InputSystem.actions.FindAction("Player/Next"); + previous = InputSystem.actions.FindAction("Player/Previous"); + sprint = InputSystem.actions.FindAction("Player/Sprint"); + crouch = InputSystem.actions.FindAction("Player/Crouch"); + } + else + { + Debug.Log("Setup Project Wide Input Actions in the Player Settings, Input System section"); + } // Handle input by responding to callbacks - attack.performed += ctx => cube.GetComponent().material.color = Color.red; - attack.canceled += ctx => cube.GetComponent().material.color = Color.green; + if (attack != null) + { + attack.performed += OnAttack; + attack.canceled += OnCancel; + } + } + + private void OnAttack(InputAction.CallbackContext ctx) + { + cube.GetComponent().material.color = Color.red; + } + + private void OnCancel(InputAction.CallbackContext ctx) + { + cube.GetComponent().material.color = Color.green; + } + + void OnDestroy() + { + if (attack != null) + { + attack.performed -= OnAttack; + attack.canceled -= OnCancel; + } } // Update is called once per frame void Update() { // Handle input by polling each frame - var moveVal = move.ReadValue() * 10.0f * Time.deltaTime; - cube.transform.Translate(new Vector3(moveVal.x, moveVal.y, 0)); + if (move != null) + { + var moveVal = move.ReadValue() * 10.0f * Time.deltaTime; + cube.transform.Translate(new Vector3(moveVal.x, moveVal.y, 0)); + } } } // class ProjectWideActionsExample } // namespace UnityEngine.InputSystem.Samples.ProjectWideActions diff --git a/Assets/Samples/RebindingUI/RebindActionUI.cs b/Assets/Samples/RebindingUI/RebindActionUI.cs index a325a0ae59..2cff5d1257 100644 --- a/Assets/Samples/RebindingUI/RebindActionUI.cs +++ b/Assets/Samples/RebindingUI/RebindActionUI.cs @@ -260,22 +260,28 @@ void CleanUp() { m_RebindOperation?.Dispose(); m_RebindOperation = null; + action.Enable(); } + //Fixes the "InvalidOperationException: Cannot rebind action x while it is enabled" error + action.Disable(); + // Configure the rebind. m_RebindOperation = action.PerformInteractiveRebinding(bindingIndex) .OnCancel( operation => { m_RebindStopEvent?.Invoke(this, operation); - m_RebindOverlay?.SetActive(false); + if (m_RebindOverlay != null) + m_RebindOverlay.SetActive(false); UpdateBindingDisplay(); CleanUp(); }) .OnComplete( operation => { - m_RebindOverlay?.SetActive(false); + if (m_RebindOverlay != null) + m_RebindOverlay.SetActive(false); m_RebindStopEvent?.Invoke(this, operation); UpdateBindingDisplay(); CleanUp(); diff --git a/Assets/Samples/SimpleDemo/SimpleControls.inputactions b/Assets/Samples/SimpleDemo/SimpleControls.inputactions index 15e9e5877a..18b9f71021 100644 --- a/Assets/Samples/SimpleDemo/SimpleControls.inputactions +++ b/Assets/Samples/SimpleDemo/SimpleControls.inputactions @@ -11,7 +11,8 @@ "id": "1077f913-a9f9-41b1-acb3-b9ee0adbc744", "expectedControlType": "Button", "processors": "", - "interactions": "Tap,SlowTap" + "interactions": "Tap,SlowTap", + "initialStateCheck": false }, { "name": "move", @@ -19,7 +20,8 @@ "id": "50fd2809-3aa3-4a90-988e-1facf6773553", "expectedControlType": "Vector2", "processors": "", - "interactions": "" + "interactions": "", + "initialStateCheck": true }, { "name": "look", @@ -27,7 +29,8 @@ "id": "c60e0974-d140-4597-a40e-9862193067e9", "expectedControlType": "Vector2", "processors": "", - "interactions": "" + "interactions": "", + "initialStateCheck": true } ], "bindings": [ diff --git a/Assets/Samples/UnityRemote/UnityRemoteTestScript.cs b/Assets/Samples/UnityRemote/UnityRemoteTestScript.cs index 3c1fc77507..291e343c53 100644 --- a/Assets/Samples/UnityRemote/UnityRemoteTestScript.cs +++ b/Assets/Samples/UnityRemote/UnityRemoteTestScript.cs @@ -7,7 +7,12 @@ public class UnityRemoteTestScript : MonoBehaviour { +// Suppress harmless warning about overriding camera from UnityEngine.Component.camera where this property have been +// marked obsolete/deprecated and depending on Unity version this warning may trigger when building a player. +// warning CS0109: The member 'UnityRemoteTestScript.camera' does not hide an accessible member. The new keyword is not required. +#pragma warning disable 0109 public new Camera camera; +#pragma warning restore 0109 public Text accelerometerInputText; public Text touchInputText; diff --git a/Assets/Tests/InputSystem.Editor/ControlSchemeEditorTests.cs b/Assets/Tests/InputSystem.Editor/ControlSchemeEditorTests.cs index f3c2d3f09f..2170c7ce1d 100644 --- a/Assets/Tests/InputSystem.Editor/ControlSchemeEditorTests.cs +++ b/Assets/Tests/InputSystem.Editor/ControlSchemeEditorTests.cs @@ -1,11 +1,24 @@ #if UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS using NUnit.Framework; -using UnityEngine; using UnityEngine.InputSystem; using UnityEngine.InputSystem.Editor; +using System; +using System.Text.RegularExpressions; public class ControlSchemesEditorTests { + [SetUp] + public void SetUp() + { + TestUtils.MockDialogs(); + } + + [TearDown] + public void TearDown() + { + TestUtils.RestoreDialogs(); + } + [Test] [Category("AssetEditor")] public void AddRequirementCommand_AddsDeviceRequirements() @@ -184,6 +197,7 @@ public void WhenControlSchemeIsSelected_SelectedControlSchemeIndexIsSet() [Test] [Category("AssetEditor")] + [Ignore("Instability ISX-1905")] public void WhenControlSchemeIsSelected_SelectedControlSchemeIsPopulatedWithSelection() { var asset = TestData.inputActionAsset @@ -206,20 +220,49 @@ public void WhenControlSchemeIsSelected_SelectedControlSchemeIsPopulatedWithSele [Test] [Category("AssetEditor")] - public void DuplicateControlSchemeCommand_CreatesCopyOfControlSchemeWithUniqueName() + public void DuplicateControlSchemeCommand_CreatesCopyOfControlSchemeWithUniqueNameEndingOnString() { - var asset = TestData.inputActionAsset.WithControlScheme(TestData.controlScheme).Generate(); + var asset = TestData.inputActionAsset + .WithControlScheme(TestData.controlScheme.Select(s => s.WithName("Test"))) + .Generate(); + var state = TestData.EditorStateWithAsset(asset).Generate().With(selectedControlScheme: asset.controlSchemes[0]); state.serializedObject.Update(); var newState = ControlSchemeCommands.DuplicateSelectedControlScheme()(in state); + //If ControlScheme name ends on a string a "1" will get added to the duplicate Assert.That(newState.selectedControlScheme.name, Is.EqualTo(state.selectedControlScheme.name + "1")); Assert.That(newState.selectedControlScheme.deviceRequirements, Is.EqualTo(state.selectedControlScheme.deviceRequirements)); } [Test] [Category("AssetEditor")] + public void DuplicateControlSchemeCommand_CreatesCopyOfControlSchemeWithUniqueNameEndingOnInt() + { //If ControlScheme name ends on int it will get incremented by 1 + var asset = TestData.inputActionAsset + .WithControlScheme(TestData.controlScheme.Select(s => s.WithName("Test" + new System.Random().Next(100).ToString()))) + .Generate(); + var state = TestData.EditorStateWithAsset(asset).Generate().With(selectedControlScheme: asset.controlSchemes[0]); + + state.serializedObject.Update(); + var newState = ControlSchemeCommands.DuplicateSelectedControlScheme()(in state); + + string pattern = @"\d+$"; //number at the end of a string + string oldControlSchemeNamePlusOne = ""; + + int intAtEndOfOldControlSchemeName = Convert.ToInt16(Regex.Match(state.selectedControlScheme.name, pattern).Value); + intAtEndOfOldControlSchemeName += 1; + + oldControlSchemeNamePlusOne = Regex.Replace(state.selectedControlScheme.name, pattern, intAtEndOfOldControlSchemeName.ToString()); + + Assert.That(newState.selectedControlScheme.name, Is.EqualTo(oldControlSchemeNamePlusOne)); + Assert.That(newState.selectedControlScheme.deviceRequirements, Is.EqualTo(state.selectedControlScheme.deviceRequirements)); + } + + [Test] + [Category("AssetEditor")] + [Ignore("Disabled: This should not be called in batch mode.")] public void DeleteControlSchemeCommand_DeletesSelectedControlScheme() { var asset = TestData.inputActionAsset.WithControlScheme(TestData.controlScheme.WithOptionalDevice()).Generate(); @@ -241,6 +284,7 @@ public void DeleteControlSchemeCommand_DeletesSelectedControlScheme() [TestCase(3, 2, 1, "Test1")] [TestCase(1, 0, -1, null)] [Category("AssetEditor")] + [Ignore("Disabled: This should not be called in batch mode.")] public void DeleteControlSchemeCommand_SelectsAnotherControlSchemeAfterDelete( int controlSchemeCount, int selectedControlSchemeIndex, diff --git a/Assets/Tests/InputSystem.Editor/InputActionAssetManagerTests.cs b/Assets/Tests/InputSystem.Editor/InputActionAssetManagerTests.cs new file mode 100644 index 0000000000..164137d292 --- /dev/null +++ b/Assets/Tests/InputSystem.Editor/InputActionAssetManagerTests.cs @@ -0,0 +1,141 @@ +#if UNITY_EDITOR + +using System; +using System.IO; +using NUnit.Framework; +using UnityEditor; +using UnityEngine; +using UnityEngine.InputSystem; +using UnityEngine.InputSystem.Editor; + +class InputActionAssetManagerEditorTests +{ + [TearDown] + public void TearDown() + { + AssetDatabaseUtils.Restore(); + } + + [Test] + [Category("Editor")] + public void Editor_InputActionAssetManager_ThrowsIfCreatedFromNullReference() + { + Assert.Throws(() => + { + using (var x = new InputActionAssetManager(null)) + { + } + }); + } + + [Test] + [Category("Editor")] + public void Editor_InputActionAssetManager_ThrowsIfCreatedFromNonPersistedAsset() + { + InputActionAsset asset = null; + try + { + asset = ScriptableObject.CreateInstance(); + Assert.Throws(() => + { + using (var x = new InputActionAssetManager(asset)) + { + } + }); + } + finally + { + UnityEngine.Object.DestroyImmediate(asset); + } + } + + [Test] + [Category("Editor")] + public void Editor_InputActionAssetManager_SerializedObjectIsAWorkingCopyOfImportedAsset() + { + var asset = AssetDatabaseUtils.CreateAsset(); + using (var sut = new InputActionAssetManager(asset)) + { + Assert.That(sut.serializedObject.targetObject == null, Is.False); + Assert.That(sut.serializedObject.targetObject == asset, Is.False); + } + } + + [Test] + [Category("Editor")] + public void Editor_InputActionAssetManager_isDirtyReflectsWhetherWorkingCopyIsDifferentFromImportedAsset() + { + // Start from an asset, since we haven't done modifications expect it to not be marked dirty + var asset = AssetDatabaseUtils.CreateAsset(); + using (var sut = new InputActionAssetManager(asset)) + { + Assert.That(sut.dirty, Is.False); + + // Add a map to editable object and apply changes, expect it to not be dirty since we haven't explicitly updated dirty state + var mapProperty = InputActionSerializationHelpers.AddActionMap(sut.serializedObject); + sut.ApplyChanges(); + Assert.That(sut.dirty, Is.False); // TODO Note: dirty flag is not updated only by applying changes + + // Update the dirty state, finally expect it to indicate that it has changed + sut.UpdateAssetDirtyState(); + Assert.That(sut.dirty, Is.True); + + // Remove the map we previously added and apply changes, expect it to still be dirty since we haven't explicitly updated dirty state + var editedAsset = sut.serializedObject.targetObject as InputActionAsset; + InputActionSerializationHelpers.DeleteActionMap(sut.serializedObject, editedAsset.actionMaps[0].id); + sut.ApplyChanges(); + Assert.That(sut.dirty, Is.True); + + // Update the dirty state, expect it to be false since even though we carried out changes we are now back on square one + sut.UpdateAssetDirtyState(); + Assert.That(sut.dirty, Is.False); + } + } + + [Test] + [Category("Editor")] + public void Editor_InputActionAssetManager_CanMoveAssetOnDisk() + { + const string filename = "InputAsset." + InputActionAsset.Extension; + var directoryBeforeMove = AssetDatabaseUtils.CreateDirectory(); + var directoryAfterMove = AssetDatabaseUtils.RandomDirectoryPath(); + + const string kDefaultContents = "{}"; + var asset = AssetDatabaseUtils.CreateAsset(directoryPath: directoryBeforeMove, filename: filename, content: kDefaultContents); + + using (var inputActionAssetManager = new InputActionAssetManager(asset)) + { + inputActionAssetManager.Initialize(); + + AssetDatabaseUtils.ExternalMoveFileOrDirectory(directoryBeforeMove, directoryAfterMove); // EDIT + AssetDatabase.Refresh(); + + inputActionAssetManager.SaveChangesToAsset(); + + var path = AssetDatabase.GetAssetPath(asset); + var fileContents = File.ReadAllText(path); + Assert.AreNotEqual(kDefaultContents, fileContents, "Expected file contents to have been modified after SaveChangesToAsset was called."); + Assert.That(path, Is.EqualTo(directoryAfterMove + $"/{filename}")); + } + } + + [Test] + [Category("Editor")] + public void Editor_InputActionAssetManager_CanDeleteAssetOnDisk() + { + var asset = AssetDatabaseUtils.CreateAsset(); + + using (var inputActionAssetManager = new InputActionAssetManager(asset)) + { + inputActionAssetManager.Initialize(); + + AssetDatabaseUtils.ExternalDeleteFileOrDirectory(AssetDatabase.GetAssetPath(asset)); + AssetDatabase.Refresh(); + + // Expecting SaveChangesToAsset to throw when asset no longer exist + Assert.Throws(() => inputActionAssetManager.SaveChangesToAsset()); + } + } +} + +#endif // UNITY_EDITOR diff --git a/Assets/Tests/InputSystem.Editor/InputActionAssetManagerTests.cs.meta b/Assets/Tests/InputSystem.Editor/InputActionAssetManagerTests.cs.meta new file mode 100644 index 0000000000..5a53cf7ce2 --- /dev/null +++ b/Assets/Tests/InputSystem.Editor/InputActionAssetManagerTests.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 8740e24f7c0249eba9d4812654bd1419 +timeCreated: 1708680091 \ No newline at end of file diff --git a/Assets/Tests/InputSystem.Editor/ProjectWideInputActionsEditorTests.cs b/Assets/Tests/InputSystem.Editor/ProjectWideInputActionsEditorTests.cs new file mode 100644 index 0000000000..37f3b02f82 --- /dev/null +++ b/Assets/Tests/InputSystem.Editor/ProjectWideInputActionsEditorTests.cs @@ -0,0 +1,395 @@ +#if UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS + +using System; +using System.IO; +using System.Text.RegularExpressions; +using NUnit.Framework; +using UnityEngine; +using UnityEditor; +using UnityEngine.InputSystem; +using UnityEngine.InputSystem.Editor; +using UnityEngine.InputSystem.Utilities; +using UnityEngine.TestTools; +using Object = UnityEngine.Object; + +internal class ProjectWideInputActionsEditorTests +{ + // Note that only a selected few tests verifies the behavior associated with the editor support for + // creating a dedicated asset. For all other logical tests we are better off constructing an asset on + // the fly for functional tests to avoid differences between editor and playmode tests. + // + // Note that player tests are currently lacking since it would require a proper asset to be configured + // during edit mode and then built and then loaded indirectly via config object / resources. + // + // Note that any existing default created asset is preserved during test run by moving it via ADB. + + const string kTestCategory = "ProjectWideActions"; + const string kAssetDirectory = "Assets"; + const string kAssetBackupDirectory = kAssetDirectory + "/TestBackupFiles"; + const string kDefaultProjectWideAssetBackupPath = kAssetBackupDirectory + "/DefaultProjectWideAssetBackup.json"; + + private string m_SavedAssetPath; + + private InputActionAsset m_Actions; + private bool m_ActionsArePersisted; + + private InputActionAsset m_OtherActions; + private bool m_OtherActionsArePersisted; + + private int m_CallbackCount; + + [OneTimeSetUp] + public void OneTimeSetUp() + { + // Avoid changing the editor setting for project-wide input actions (if any). To achieve this we + // store the asset path since we cannot only keep a reference in case its equal to moved asset. + // If not equal to moved asset above a reference would be fine, but might as well use a more robust + // method. + m_SavedAssetPath = AssetDatabase.GetAssetPath(InputSystem.actions); + + // Avoid overwriting any default asset already in /Assets folder by making a backup file not visible to + // AssetDatabase. This is for verifying the default output of templated actions from editor tools. + if (File.Exists(ProjectWideActionsAsset.defaultAssetPath)) + { + if (!Directory.Exists(kAssetBackupDirectory)) + Directory.CreateDirectory(kAssetBackupDirectory); + File.Copy(sourceFileName: ProjectWideActionsAsset.defaultAssetPath, + destFileName: kDefaultProjectWideAssetBackupPath, overwrite: true); + var wasDeleted = AssetDatabase.DeleteAsset(ProjectWideActionsAsset.defaultAssetPath); + Assert.That(wasDeleted, Is.True); + } + } + + [OneTimeTearDown] + public void OneTimeTearDown() + { + // Restore default asset if we made a backup copy of it during setup + if (File.Exists(kDefaultProjectWideAssetBackupPath)) + { + if (File.Exists(ProjectWideActionsAsset.defaultAssetPath)) + AssetDatabase.DeleteAsset(ProjectWideActionsAsset.defaultAssetPath); + File.Copy(sourceFileName: kDefaultProjectWideAssetBackupPath, + destFileName: ProjectWideActionsAsset.defaultAssetPath); + AssetDatabase.ImportAsset(ProjectWideActionsAsset.defaultAssetPath, ImportAssetOptions.ForceUpdate); + AssetDatabaseUtils.ExternalDeleteFileOrDirectory(kAssetBackupDirectory); + } + + // Restore users project-wide input actions setting + var asset = m_SavedAssetPath != null ? AssetDatabase.LoadAssetAtPath(m_SavedAssetPath) : null; + InputSystem.actions = asset; + } + + [SetUp] + public void Setup() + { + TestUtils.MockDialogs(); + + m_CallbackCount = 0; + + // Always start with action null since this represents a fresh project + InputSystem.actions = null; + } + + [TearDown] + public void TearDown() + { + InputSystem.onActionsChange -= OnActionsChange; + + // Delete any default asset we may have created (backup is safe until test class is destroyed) + AssetDatabase.DeleteAsset(ProjectWideActionsAsset.defaultAssetPath); + + // Clean-up objects created during test + if (m_Actions != null && !m_ActionsArePersisted) + Object.DestroyImmediate(m_Actions); + if (m_OtherActions != null && !m_OtherActionsArePersisted) + Object.DestroyImmediate(m_OtherActions); + + InputSystem.actions = null; + + TestUtils.RestoreDialogs(); + AssetDatabaseUtils.Restore(); + } + + private void GivenActionsCallback() + { + InputSystem.onActionsChange += OnActionsChange; + } + + private void GivenActions(bool persisted = false) + { + // Create a small InputActionsAsset on the fly that we utilize for testing + m_Actions = ScriptableObject.CreateInstance(); + m_Actions.name = "TestAsset"; + var one = m_Actions.AddActionMap("One"); + one.AddAction("A"); + one.AddAction("B"); + var two = m_Actions.AddActionMap("Two"); + two.AddAction("C"); + + if (persisted) + { + var json = m_Actions.ToJson(); + Object.DestroyImmediate(m_Actions); + m_Actions = AssetDatabaseUtils.CreateAsset(content: json); + + m_ActionsArePersisted = true; + } + } + + private void GivenOtherActions(bool persisted = false) + { + // Create a small InputActionsAsset on the fly that we utilize for testing + m_OtherActions = ScriptableObject.CreateInstance(); + m_OtherActions.name = "OtherTestAsset"; + var three = m_OtherActions.AddActionMap("Three"); + three.AddAction("D"); + three.AddAction("E"); + + if (persisted) + { + var json = m_OtherActions.ToJson(); + Object.DestroyImmediate(m_OtherActions); + m_OtherActions = AssetDatabaseUtils.CreateAsset(content: json); + + m_OtherActionsArePersisted = true; + } + } + + private void OnActionsChange() + { + ++m_CallbackCount; + } + + [Test(Description = "Verifies that project-wide actions are not set by default")] + [Category(kTestCategory)] + public void ProjectWideActions_AreNotSetByDefault() + { + Assert.That(InputSystem.actions, Is.Null); + } + + [Test(Description = + "Verifies that when assigning InputSystem.actions actions are not enabled in edit mode")] + [Category(kTestCategory)] + public void + ProjectWideActions_CanBeAssignedButAreNotEnabledInEditMode() + { + GivenActions(persisted: true); + + InputSystem.actions = m_Actions; + Assert.That(InputSystem.actions.enabled, Is.False); + } + + [Test(Description = + "Verifies that when reassigning InputSystem.actions only the last assigned asset is marked to be included in preloaded assets in player build")] + [Category(kTestCategory)] + public void + ProjectWideActions_CanBeAssignedAndAreMarkedAsProjectWide() + { + GivenActions(persisted: true); + GivenOtherActions(persisted: true); + + InputSystem.actions = m_Actions; + Assert.That(m_Actions.m_IsProjectWide, Is.True); + Assert.That(m_OtherActions.m_IsProjectWide, Is.False); + + InputSystem.actions = m_OtherActions; + Assert.That(m_Actions.m_IsProjectWide, Is.False); + Assert.That(m_OtherActions.m_IsProjectWide, Is.True); + } + + [Test(Description = "Verifies that project-wide actions defaults are constructed as an asset on the default asset path")] + [Category(kTestCategory)] + public void ProjectWideActionsAsset_DefaultAssetFileHasDefaultContent() + { + // Expect asset name to be set to the file name + var expectedName = Path.GetFileNameWithoutExtension(ProjectWideActionsAsset.defaultAssetPath); + var asset = ProjectWideActionsAsset.CreateDefaultAssetAtPath(); + Assert.That(asset.name, Is.EqualTo(expectedName)); + + // Expect JSON name to be set to the file name + var json = File.ReadAllText(EditorHelpers.GetPhysicalPath(ProjectWideActionsAsset.defaultAssetPath)); + var parsedAsset = InputActionAsset.FromJson(json); + var parsedAssetName = parsedAsset.name; + Object.DestroyImmediate(parsedAsset); + Assert.That(parsedAssetName, Is.EqualTo(expectedName)); + } + + // This test is only relevant for the InputForUI module which native part was introduced in 2023.2 +#if UNITY_2023_2_OR_NEWER + [Test(Description = "Verifies that modifying the default project-wide action UI map generates console warnings")] + [Category(kTestCategory)] + public void ProjectWideActions_ShowsErrorWhenUIActionMapHasNameChanges() + { + // Create a default template asset that we then modify to generate various warnings + var asset = ProjectWideActionsAsset.CreateDefaultAssetAtPath(); + + var indexOf = asset.m_ActionMaps.IndexOf(x => x.name == "UI"); + var uiMap = asset.m_ActionMaps[indexOf]; + + // Change the name of the UI action map + uiMap.m_Name = "UI2"; + + ProjectWideActionsAsset.CheckForDefaultUIActionMapChanges(asset); + + LogAssert.Expect(LogType.Warning, new Regex("The action map named 'UI' does not exist")); + + // Change the name of some UI map back to default and change the name of the actions + uiMap.m_Name = "UI"; + var defaultActionName0 = uiMap.m_Actions[0].m_Name; + var defaultActionName1 = uiMap.m_Actions[1].m_Name; + + uiMap.m_Actions[0].Rename("Navigation"); + uiMap.m_Actions[1].Rename("Show"); + + ProjectWideActionsAsset.CheckForDefaultUIActionMapChanges(asset); + + LogAssert.Expect(LogType.Warning, new Regex($"The UI action '{defaultActionName0}' name has been modified")); + LogAssert.Expect(LogType.Warning, new Regex($"The UI action '{defaultActionName1}' name has been modified")); + } + +#endif // UNITY_2023_2_OR_NEWER + + [Test(Description = "Verifies that when assigning InputSystem.actions a callback is fired if value is different but not when value is not different")] + [Category(kTestCategory)] + public void ProjectWideActions_CanBeAssignedAndFiresCallbackWhenDifferent() + { + GivenActions(persisted: true); + GivenOtherActions(persisted: true); + GivenActionsCallback(); + + // Can assign from null to null (no change) + InputSystem.actions = null; + Assert.That(m_CallbackCount, Is.EqualTo(0)); + + // Can assign asset from null to instance (change) + InputSystem.actions = m_Actions; + Assert.That(m_CallbackCount, Is.EqualTo(1)); + + // Can assign from instance to same instance (no change) + InputSystem.actions = m_Actions; + Assert.That(m_CallbackCount, Is.EqualTo(1)); // no callback expected + + // Can assign another instance (change + InputSystem.actions = m_OtherActions; + Assert.That(m_CallbackCount, Is.EqualTo(2)); + + // Can assign asset from instance to null (change) + InputSystem.actions = null; + Assert.That(m_CallbackCount, Is.EqualTo(3)); + } + + [Test(Description = "Verifies that when assigning InputSystem.actions in edit-mode, build settings are updated")] + [Category(kTestCategory)] + public void ProjectWideActions_WillUpdateBuildSettingsWhenChanged() + { + GivenActions(persisted: true); + GivenOtherActions(persisted: true); + GivenActionsCallback(); + + Debug.Assert(EditorUtility.IsPersistent(m_Actions)); + + // Can assign from null to null (no change) + InputSystem.actions = null; + Assert.That(ProjectWideActionsBuildProvider.actionsToIncludeInPlayerBuild, Is.EqualTo(null)); + + // Can assign asset from null to instance (change) + InputSystem.actions = m_Actions; + Assert.That(ProjectWideActionsBuildProvider.actionsToIncludeInPlayerBuild, Is.EqualTo(m_Actions)); + + // Can assign from instance to same instance (no change) + InputSystem.actions = m_Actions; + Assert.That(ProjectWideActionsBuildProvider.actionsToIncludeInPlayerBuild, Is.EqualTo(m_Actions)); + + // Can assign another instance (change + InputSystem.actions = m_OtherActions; + Assert.That(ProjectWideActionsBuildProvider.actionsToIncludeInPlayerBuild, Is.EqualTo(m_OtherActions)); + + // Can assign asset from instance to null (change) + InputSystem.actions = null; + Assert.That(ProjectWideActionsBuildProvider.actionsToIncludeInPlayerBuild, Is.EqualTo(null)); + } + + [Test(Description = + "Verifies that when assigning InputSystem.actions in edit-mode with a temporary object not persisted on disc, an exception is thrown")] + [Category(kTestCategory)] + public void ProjectWideActions_ThrowsArgumentException_WhenAssignedFromNonPersistedObject() + { + GivenActions(); + + Assert.Throws(() => InputSystem.actions = m_Actions); + } + + [Test(Description = "Verifies that when assigning InputSystem.actions a callback is fired when currently being assigned to a deleted asset (destroyed object) and then assigning null")] + [Category(kTestCategory)] + public void ProjectWideActions_CanBeAssignedNullAndFiresCallback_WhenHavingDestroyedObjectAndAssignedNull() + { + GivenActions(persisted: true); + GivenActionsCallback(); + + // Assign and make sure property returns the expected assigned value + InputSystem.actions = m_Actions; + Assert.That(InputSystem.actions, Is.EqualTo(m_Actions)); + Assert.That(m_CallbackCount, Is.EqualTo(1)); + + // Delete the associated asset make sure returned value evaluates to null (But actually Missing Reference). + AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(m_Actions)); + Assert.That(m_Actions == null, Is.True); // sanity check that it was destroyed + Assert.That(InputSystem.actions == null); // note: we want to avoid cast to object since it would use another Equals + + // Assert that property may be assigned to null reference since its different from missing reference. + InputSystem.actions = null; + Assert.That(InputSystem.actions == null); + Assert.That(ReferenceEquals(InputSystem.actions, null)); // check its really null and not just Missing Reference. + Assert.That(m_CallbackCount, Is.EqualTo(2)); + } + + [Test(Description = "Verifies that when assigning InputSystem.actions a callback is fired when the previously assigned asset has been destroyed object")] + [Category(kTestCategory)] + public void ProjectWideActions_CanBeAssignedAndFiresCallbackWhenDifferent_WhenAssignedDestroyedObject() + { + GivenActions(persisted: true); + GivenActionsCallback(); + + // Destroy the associated asset and make sure returned value evaluates to null (But actually Missing Reference). + AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(m_Actions)); + Assert.That(m_Actions == null, Is.True); // sanity check that it was destroyed + + // Assert that we can assign a destroyed object + InputSystem.actions = m_Actions; + Assert.That(InputSystem.actions == m_Actions); // note: we want to avoid cast to object since it would use another Equals + Assert.That(!ReferenceEquals(InputSystem.actions, null)); // expecting missing reference + Assert.That(m_CallbackCount, Is.EqualTo(1)); + + // Assert that property may be assigned to null reference since its different from missing reference. + InputSystem.actions = null; + Assert.That(InputSystem.actions == null); + Assert.That(ReferenceEquals(InputSystem.actions, null)); // check its really null and not just Missing Reference. + Assert.That(m_CallbackCount, Is.EqualTo(2)); + } + + [Test(Description = "Verifies that when assigning InputSystem.actions a callback is fired when assigning and current object has been destroyed")] + [Category(kTestCategory)] + public void ProjectWideActions_CanBeAssignedAndFiresCallbackWhenAssignedAndDifferent_WhenHavingDestroyedObjectAndAssignedOther() + { + GivenActions(persisted: true); + GivenOtherActions(persisted: true); + GivenActionsCallback(); + + // Assign and make sure property returns the expected assigned value + InputSystem.actions = m_Actions; + Assert.That(InputSystem.actions, Is.EqualTo(m_Actions)); + Assert.That(m_CallbackCount, Is.EqualTo(1)); + + // Destroy the associated asset and make sure returned value evaluates to null (But actually Missing Reference). + AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(m_Actions)); + Assert.That(m_Actions == null, Is.True); // sanity check that it was destroyed + Assert.That(InputSystem.actions == null); // note: we want to avoid cast to object since it would use another Equals + + // Assert that property may be assigned to null reference since its different from missing reference. + InputSystem.actions = m_OtherActions; + Assert.That(InputSystem.actions, Is.EqualTo(m_OtherActions)); + Assert.That(m_CallbackCount, Is.EqualTo(2)); + } +} + +#endif diff --git a/Assets/Tests/InputSystem.Editor/ProjectWideInputActionsEditorTests.cs.meta b/Assets/Tests/InputSystem.Editor/ProjectWideInputActionsEditorTests.cs.meta new file mode 100644 index 0000000000..982312fade --- /dev/null +++ b/Assets/Tests/InputSystem.Editor/ProjectWideInputActionsEditorTests.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 51fc9d7a3baa47c49053783fd5dd7098 +timeCreated: 1709243609 \ No newline at end of file diff --git a/Assets/Tests/InputSystem.Editor/TestUtils.cs b/Assets/Tests/InputSystem.Editor/TestUtils.cs new file mode 100644 index 0000000000..5650acc2f8 --- /dev/null +++ b/Assets/Tests/InputSystem.Editor/TestUtils.cs @@ -0,0 +1,28 @@ +using UnityEngine.InputSystem; +using UnityEngine.InputSystem.Editor; + +// Replicated in this test assembly to avoid building public API picked up by PackageValidator +internal class TestUtils +{ +#if UNITY_EDITOR + // Replaces all dialogs in Input System editor code + public static void MockDialogs() + { + // Default mock dialogs to avoid unexpected cancellation of standard flows + Dialog.InputActionAsset.SetSaveChanges((_) => Dialog.Result.Discard); + Dialog.InputActionAsset.SetDiscardUnsavedChanges((_) => Dialog.Result.Discard); + Dialog.InputActionAsset.SetCreateAndOverwriteExistingAsset((_) => Dialog.Result.Discard); + Dialog.ControlScheme.SetDeleteControlScheme((_) => Dialog.Result.Delete); + } + + public static void RestoreDialogs() + { + // Re-enable dialogs. + Dialog.InputActionAsset.SetSaveChanges(null); + Dialog.InputActionAsset.SetDiscardUnsavedChanges(null); + Dialog.InputActionAsset.SetCreateAndOverwriteExistingAsset(null); + Dialog.ControlScheme.SetDeleteControlScheme(null); + } + +#endif // UNITY_EDITOR +} diff --git a/Assets/Tests/InputSystem.Editor/TestUtils.cs.meta b/Assets/Tests/InputSystem.Editor/TestUtils.cs.meta new file mode 100644 index 0000000000..d8ca413742 --- /dev/null +++ b/Assets/Tests/InputSystem.Editor/TestUtils.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: c039a092ed504cdbbf03216c21a6fd59 +timeCreated: 1709725359 \ No newline at end of file diff --git a/Assets/Tests/InputSystem.Editor/Unity.InputSystem.Tests.Editor.asmdef b/Assets/Tests/InputSystem.Editor/Unity.InputSystem.Tests.Editor.asmdef index 8fb3b60833..b0f395230f 100644 --- a/Assets/Tests/InputSystem.Editor/Unity.InputSystem.Tests.Editor.asmdef +++ b/Assets/Tests/InputSystem.Editor/Unity.InputSystem.Tests.Editor.asmdef @@ -4,7 +4,8 @@ "references": [ "UnityEngine.TestRunner", "UnityEditor.TestRunner", - "Unity.InputSystem" + "Unity.InputSystem", + "Unity.InputSystem.TestFramework" ], "includePlatforms": [ "Editor" diff --git a/Assets/Tests/InputSystem/CoreTests_Actions.cs b/Assets/Tests/InputSystem/CoreTests_Actions.cs index aa84d64f0b..2f37e4e767 100644 --- a/Assets/Tests/InputSystem/CoreTests_Actions.cs +++ b/Assets/Tests/InputSystem/CoreTests_Actions.cs @@ -1616,6 +1616,346 @@ public void Actions_CanQueryIfPerformedInCurrentFrame() Assert.That(holdAction.WasPerformedThisFrame(), Is.False); } + [Test] + [Category("Actions")] + public void Actions_CanQueryIfHoldInteractionCompletedInCurrentFrame() + { + var gamepad = InputSystem.AddDevice(); + + var holdAction = new InputAction(binding: "/buttonSouth", interactions: "hold(duration=0.5)"); + + holdAction.Enable(); + + Assert.That(holdAction.WasPressedThisFrame(), Is.False); + Assert.That(holdAction.WasPerformedThisFrame(), Is.False); + + Press(gamepad.buttonSouth); + + Assert.That(holdAction.WasPressedThisFrame(), Is.True); + Assert.That(holdAction.WasPerformedThisFrame(), Is.False); + + InputSystem.Update(); + + Assert.That(holdAction.WasPressedThisFrame(), Is.False); + Assert.That(holdAction.WasPerformedThisFrame(), Is.False); + + // Release before the hold duration threshold was met. + Release(gamepad.buttonSouth); + + Assert.That(holdAction.WasReleasedThisFrame(), Is.True); + Assert.That(holdAction.WasCompletedThisFrame(), Is.False); + + Press(gamepad.buttonSouth); + + Assert.That(holdAction.WasPressedThisFrame(), Is.True); + Assert.That(holdAction.WasPerformedThisFrame(), Is.False); + + currentTime += 1; + InputSystem.Update(); + + Assert.That(holdAction.WasPressedThisFrame(), Is.False); + Assert.That(holdAction.WasPerformedThisFrame(), Is.True); + + InputSystem.Update(); + + Assert.That(holdAction.WasPressedThisFrame(), Is.False); + Assert.That(holdAction.WasPerformedThisFrame(), Is.False); + + // Release after the hold duration threshold was met. + Release(gamepad.buttonSouth); + + Assert.That(holdAction.WasReleasedThisFrame(), Is.True); + Assert.That(holdAction.WasCompletedThisFrame(), Is.True); + + InputSystem.Update(); + + Assert.That(holdAction.WasPressedThisFrame(), Is.False); + Assert.That(holdAction.WasPerformedThisFrame(), Is.False); + } + + [Test] + [Category("Actions")] + public void Actions_WhenDisabled_DoesNotBecomeCompleted() + { + var gamepad = InputSystem.AddDevice(); + + var simpleAction = new InputAction(binding: "/buttonSouth"); + var holdAction = new InputAction(binding: "/buttonSouth", interactions: "hold(duration=0.5)"); + + simpleAction.Enable(); + holdAction.Enable(); + + Assert.That(simpleAction.WasReleasedThisFrame(), Is.False); + Assert.That(simpleAction.WasCompletedThisFrame(), Is.False); + Assert.That(holdAction.WasReleasedThisFrame(), Is.False); + Assert.That(holdAction.WasCompletedThisFrame(), Is.False); + + Press(gamepad.buttonSouth); + + Assert.That(simpleAction.WasReleasedThisFrame(), Is.False); + Assert.That(simpleAction.WasCompletedThisFrame(), Is.False); + Assert.That(holdAction.WasReleasedThisFrame(), Is.False); + Assert.That(holdAction.WasCompletedThisFrame(), Is.False); + + currentTime += 1; + InputSystem.Update(); + + Assert.That(simpleAction.WasReleasedThisFrame(), Is.False); + Assert.That(simpleAction.WasCompletedThisFrame(), Is.False); + Assert.That(holdAction.WasReleasedThisFrame(), Is.False); + Assert.That(holdAction.WasCompletedThisFrame(), Is.False); + + holdAction.Disable(); + + Assert.That(holdAction.WasReleasedThisFrame(), Is.False); + Assert.That(holdAction.WasCompletedThisFrame(), Is.False); + + holdAction.Enable(); + + Assert.That(holdAction.WasReleasedThisFrame(), Is.False); + Assert.That(holdAction.WasCompletedThisFrame(), Is.False); + + InputSystem.Update(); + + Assert.That(simpleAction.WasReleasedThisFrame(), Is.False); + Assert.That(simpleAction.WasCompletedThisFrame(), Is.False); + Assert.That(holdAction.WasReleasedThisFrame(), Is.False); + Assert.That(holdAction.WasCompletedThisFrame(), Is.False); + + Release(gamepad.buttonSouth); + + Assert.That(simpleAction.WasReleasedThisFrame(), Is.True); + Assert.That(simpleAction.WasCompletedThisFrame(), Is.False); + Assert.That(holdAction.WasReleasedThisFrame(), Is.True); + Assert.That(holdAction.WasCompletedThisFrame(), Is.False); + + simpleAction.Disable(); + holdAction.Disable(); + + Assert.That(simpleAction.WasReleasedThisFrame(), Is.True); + Assert.That(simpleAction.WasCompletedThisFrame(), Is.False); + Assert.That(holdAction.WasReleasedThisFrame(), Is.True); + Assert.That(holdAction.WasCompletedThisFrame(), Is.False); + + simpleAction.Enable(); + holdAction.Enable(); + + Assert.That(simpleAction.WasReleasedThisFrame(), Is.True); + Assert.That(simpleAction.WasCompletedThisFrame(), Is.False); + Assert.That(holdAction.WasReleasedThisFrame(), Is.True); + Assert.That(holdAction.WasCompletedThisFrame(), Is.False); + } + + [Test] + [Category("Actions")] + [TestCase(InputActionType.Value)] + [TestCase(InputActionType.Button)] + [TestCase(InputActionType.PassThrough)] + public void Actions_CanDistinguishCanceledAndCompletedInCurrentFrame(InputActionType actionType) + { + var gamepad = InputSystem.AddDevice(); + + var defaultAction = new InputAction(type: actionType, binding: "/buttonSouth"); + var pressAction = new InputAction(type: actionType, binding: "/buttonSouth", interactions: "press"); + var holdAction = new InputAction(type: actionType, binding: "/buttonSouth", interactions: "hold(duration=0.5)"); + + defaultAction.Enable(); + pressAction.Enable(); + holdAction.Enable(); + + Assert.That(defaultAction.phase, Is.EqualTo(InputActionPhase.Waiting)); + Assert.That(pressAction.phase, Is.EqualTo(InputActionPhase.Waiting)); + Assert.That(holdAction.phase, Is.EqualTo(InputActionPhase.Waiting)); + + using (var defaultTrace = new InputActionTrace(defaultAction)) + using (var pressTrace = new InputActionTrace(pressAction)) + using (var holdTrace = new InputActionTrace(holdAction)) + { + // Press button. Actions should be considered pressed, but the + // hold action should not be considered performed yet. + Press(gamepad.buttonSouth); + + Assert.That(defaultTrace, actionType != InputActionType.PassThrough + ? Started(defaultAction).AndThen(Performed(defaultAction)) + : Performed(defaultAction)); + Assert.That(defaultAction.WasPressedThisFrame(), Is.True); + Assert.That(defaultAction.WasReleasedThisFrame(), Is.False); + Assert.That(defaultAction.WasPerformedThisFrame(), Is.True); + Assert.That(defaultAction.WasCompletedThisFrame(), Is.False); + + Assert.That(pressTrace, Started(pressAction).AndThen(Performed(pressAction))); + Assert.That(pressAction.WasPressedThisFrame(), Is.True); + Assert.That(pressAction.WasReleasedThisFrame(), Is.False); + Assert.That(pressAction.WasPerformedThisFrame(), Is.True); + Assert.That(pressAction.WasCompletedThisFrame(), Is.False); + + Assert.That(holdTrace, Started(holdAction)); + Assert.That(holdAction.WasPressedThisFrame(), Is.True); + Assert.That(holdAction.WasReleasedThisFrame(), Is.False); + Assert.That(holdAction.WasPerformedThisFrame(), Is.False); + Assert.That(holdAction.WasCompletedThisFrame(), Is.False); + + defaultTrace.Clear(); + pressTrace.Clear(); + holdTrace.Clear(); + + // Keep holding button but for less than the hold duration needed. + InputSystem.Update(); + + Assert.That(defaultTrace, Is.Empty); + Assert.That(defaultAction.WasPressedThisFrame(), Is.False); + Assert.That(defaultAction.WasReleasedThisFrame(), Is.False); + Assert.That(defaultAction.WasPerformedThisFrame(), Is.False); + Assert.That(defaultAction.WasCompletedThisFrame(), Is.False); + + Assert.That(pressTrace, Is.Empty); + Assert.That(pressAction.WasPressedThisFrame(), Is.False); + Assert.That(pressAction.WasReleasedThisFrame(), Is.False); + Assert.That(pressAction.WasPerformedThisFrame(), Is.False); + Assert.That(pressAction.WasCompletedThisFrame(), Is.False); + + Assert.That(holdTrace, Is.Empty); + Assert.That(holdAction.WasPressedThisFrame(), Is.False); + Assert.That(holdAction.WasReleasedThisFrame(), Is.False); + Assert.That(holdAction.WasPerformedThisFrame(), Is.False); + Assert.That(holdAction.WasCompletedThisFrame(), Is.False); + + defaultTrace.Clear(); + pressTrace.Clear(); + holdTrace.Clear(); + + // Release button, the actions should cancel. The hold action should not be considered completed + // since it was not held long enough to be performed. + Release(gamepad.buttonSouth); + + Assert.That(defaultTrace, actionType != InputActionType.PassThrough + ? Canceled(defaultAction) + : Performed(defaultAction)); + Assert.That(defaultAction.WasPressedThisFrame(), Is.False); + Assert.That(defaultAction.WasReleasedThisFrame(), Is.True); + Assert.That(defaultAction.WasPerformedThisFrame(), Is.EqualTo(actionType == InputActionType.PassThrough)); + Assert.That(defaultAction.WasCompletedThisFrame(), Is.EqualTo(actionType == InputActionType.Button)); + + Assert.That(pressTrace, Canceled(pressAction)); + Assert.That(pressAction.WasPressedThisFrame(), Is.False); + Assert.That(pressAction.WasReleasedThisFrame(), Is.True); + Assert.That(pressAction.WasPerformedThisFrame(), Is.False); + Assert.That(pressAction.WasCompletedThisFrame(), Is.True); + + Assert.That(holdTrace, Canceled(holdAction)); + Assert.That(holdAction.WasPressedThisFrame(), Is.False); + Assert.That(holdAction.WasReleasedThisFrame(), Is.True); + Assert.That(holdAction.WasPerformedThisFrame(), Is.False); + Assert.That(holdAction.WasCompletedThisFrame(), Is.False); + + defaultTrace.Clear(); + pressTrace.Clear(); + holdTrace.Clear(); + + // Press button again. Same assertions as before. + Press(gamepad.buttonSouth); + + Assert.That(defaultTrace, actionType != InputActionType.PassThrough + ? Started(defaultAction).AndThen(Performed(defaultAction)) + : Performed(defaultAction)); + Assert.That(defaultAction.WasPressedThisFrame(), Is.True); + Assert.That(defaultAction.WasReleasedThisFrame(), Is.False); + Assert.That(defaultAction.WasPerformedThisFrame(), Is.True); + Assert.That(defaultAction.WasCompletedThisFrame(), Is.False); + + Assert.That(pressTrace, Started(pressAction).AndThen(Performed(pressAction))); + Assert.That(pressAction.WasPressedThisFrame(), Is.True); + Assert.That(pressAction.WasReleasedThisFrame(), Is.False); + Assert.That(pressAction.WasPerformedThisFrame(), Is.True); + Assert.That(pressAction.WasCompletedThisFrame(), Is.False); + + Assert.That(holdTrace, Started(holdAction)); + Assert.That(holdAction.WasPressedThisFrame(), Is.True); + Assert.That(holdAction.WasReleasedThisFrame(), Is.False); + Assert.That(holdAction.WasPerformedThisFrame(), Is.False); + Assert.That(holdAction.WasCompletedThisFrame(), Is.False); + + defaultTrace.Clear(); + pressTrace.Clear(); + holdTrace.Clear(); + + // Hold button for long enough. + currentTime += 1; + InputSystem.Update(); + + Assert.That(defaultTrace, Is.Empty); + Assert.That(defaultAction.WasPressedThisFrame(), Is.False); + Assert.That(defaultAction.WasReleasedThisFrame(), Is.False); + Assert.That(defaultAction.WasPerformedThisFrame(), Is.False); + Assert.That(defaultAction.WasCompletedThisFrame(), Is.False); + + Assert.That(pressTrace, Is.Empty); + Assert.That(pressAction.WasPressedThisFrame(), Is.False); + Assert.That(pressAction.WasReleasedThisFrame(), Is.False); + Assert.That(pressAction.WasPerformedThisFrame(), Is.False); + Assert.That(pressAction.WasCompletedThisFrame(), Is.False); + + Assert.That(holdTrace, Performed(holdAction)); + Assert.That(holdAction.WasPressedThisFrame(), Is.False); + Assert.That(holdAction.WasReleasedThisFrame(), Is.False); + Assert.That(holdAction.WasPerformedThisFrame(), Is.True); + Assert.That(holdAction.WasCompletedThisFrame(), Is.False); + + defaultTrace.Clear(); + pressTrace.Clear(); + holdTrace.Clear(); + + // Keep holding button. + InputSystem.Update(); + + Assert.That(defaultTrace, Is.Empty); + Assert.That(defaultAction.WasPressedThisFrame(), Is.False); + Assert.That(defaultAction.WasReleasedThisFrame(), Is.False); + Assert.That(defaultAction.WasPerformedThisFrame(), Is.False); + Assert.That(defaultAction.WasCompletedThisFrame(), Is.False); + + Assert.That(pressTrace, Is.Empty); + Assert.That(pressAction.WasPressedThisFrame(), Is.False); + Assert.That(pressAction.WasReleasedThisFrame(), Is.False); + Assert.That(pressAction.WasPerformedThisFrame(), Is.False); + Assert.That(pressAction.WasCompletedThisFrame(), Is.False); + + Assert.That(holdTrace, Is.Empty); + Assert.That(holdAction.WasPressedThisFrame(), Is.False); + Assert.That(holdAction.WasReleasedThisFrame(), Is.False); + Assert.That(holdAction.WasPerformedThisFrame(), Is.False); + Assert.That(holdAction.WasCompletedThisFrame(), Is.False); + + defaultTrace.Clear(); + pressTrace.Clear(); + holdTrace.Clear(); + + // Release button, the actions should cancel. The hold action should now be considered completed + // since it was held long enough to be performed. + Release(gamepad.buttonSouth); + + Assert.That(defaultTrace, actionType != InputActionType.PassThrough + ? Canceled(defaultAction) + : Performed(defaultAction)); + Assert.That(defaultAction.WasPressedThisFrame(), Is.False); + Assert.That(defaultAction.WasReleasedThisFrame(), Is.True); + Assert.That(defaultAction.WasPerformedThisFrame(), Is.EqualTo(actionType == InputActionType.PassThrough)); + Assert.That(defaultAction.WasCompletedThisFrame(), Is.EqualTo(actionType == InputActionType.Button)); + + Assert.That(pressTrace, Canceled(pressAction)); + Assert.That(pressAction.WasPressedThisFrame(), Is.False); + Assert.That(pressAction.WasReleasedThisFrame(), Is.True); + Assert.That(pressAction.WasPerformedThisFrame(), Is.False); + Assert.That(pressAction.WasCompletedThisFrame(), Is.True); + + Assert.That(holdTrace, Canceled(holdAction)); + Assert.That(holdAction.WasPressedThisFrame(), Is.False); + Assert.That(holdAction.WasReleasedThisFrame(), Is.True); + Assert.That(holdAction.WasPerformedThisFrame(), Is.False); + Assert.That(holdAction.WasCompletedThisFrame(), Is.True); + } + } + [Test] [Category("Actions")] public void Actions_CanReadValueFromAction() @@ -1698,11 +2038,13 @@ public void Actions_CanReadValueFromAction() [Test] [Category("Actions")] - [TestCase(InputActionType.Button)] [TestCase(InputActionType.Value)] - [TestCase(InputActionType.PassThrough)] - [TestCase(InputActionType.Button, "hold(duration=0.5)")] + [TestCase(InputActionType.Value, "press")] + [TestCase(InputActionType.Value, "hold(duration=0.5)")] + [TestCase(InputActionType.Button)] [TestCase(InputActionType.Button, "press")] + [TestCase(InputActionType.Button, "hold(duration=0.5)")] + [TestCase(InputActionType.PassThrough)] public void Actions_CanReadValueFromAction_AsButton(InputActionType actionType, string interactions = null) { // Set global press and release points to known values. @@ -1834,6 +2176,658 @@ public void Actions_CanReadValueFromAction_AsButton(InputActionType actionType, Assert.That(action.WasReleasedThisFrame(), Is.True); } + [Test] + [Category("Actions")] + [TestCase(InputActionType.Value)] + [TestCase(InputActionType.Value, "press")] + [TestCase(InputActionType.Value, "hold(duration=0.5)")] + [TestCase(InputActionType.Button)] + [TestCase(InputActionType.Button, "press")] + [TestCase(InputActionType.Button, "hold(duration=0.5)")] + [TestCase(InputActionType.PassThrough)] + public void Actions_CanReadPerformedFromAction_AsButton(InputActionType actionType, string interactions = null) + { + // This test is structured the same as Actions_CanReadValueFromAction_AsButton above, + // but with additional testing that the phase changes are correct for the given action type and interaction, + // and additionally test functionality of WasPerformedThisFrame() and WasCompletedThisFrame(), which can + // be different than WasPressedThisFrame() and WasReleasedThisFrame(). + + // Set global press and release points to known values. + InputSystem.settings.defaultButtonPressPoint = 0.5f; + InputSystem.settings.buttonReleaseThreshold = 0.8f; // 80% puts the release point at 0.4. + + var gamepad = InputSystem.AddDevice(); + + var action = new InputAction(type: actionType, binding: "/leftTrigger", interactions: interactions); + + var isHold = interactions?.StartsWith("hold") ?? false; + var isPress = interactions?.StartsWith("press") ?? false; + var isButtonLike = (action.type == InputActionType.Value && isPress) || + (action.type == InputActionType.Button && !isHold); + + using (var trace = new InputActionTrace(action)) + { + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Disabled)); + + action.Enable(); + + Assert.That(action.IsPressed(), Is.False); + Assert.That(action.WasPressedThisFrame(), Is.False); + Assert.That(action.WasReleasedThisFrame(), Is.False); + + Assert.That(trace, Is.Empty); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Waiting)); + Assert.That(action.WasPerformedThisFrame(), Is.False); + Assert.That(action.WasCompletedThisFrame(), Is.False); + + // Press such that it stays below press threshold. + Set(gamepad.leftTrigger, 0.25f); + + // W = Waiting, S = Started, P = Performed, C = Canceled + // P/C = Performed/Completed, T = True, F = False + // (* means listeners not invoked) + // | Type | Interaction | Phase Change | P/C | isButtonLike | isHold | + // |--------|-------------|------------------|-----|--------------|--------| + // | Value | Default | W -> S, P, S* | T/F | | | + // | Value | Press | W -> S | F/F | true | | + // | Value | Hold | W (No Change) | F/F | | true | + // | Button | Default | W -> S | F/F | true | | + // | Button | Press | W -> S | F/F | true | | + // | Button | Hold | W (No Change) | F/F | | true | + // | Pass | Default | W -> P | T/F | | | + + Assert.That(action.IsPressed(), Is.False); + Assert.That(action.WasPressedThisFrame(), Is.False); + Assert.That(action.WasReleasedThisFrame(), Is.False); + + if (action.type == InputActionType.Value && interactions == null) + { + Assert.That(trace, Started(action).AndThen(Performed(action))); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Started)); + Assert.That(action.WasPerformedThisFrame(), Is.True); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + else if (isButtonLike) + { + Assert.That(trace, Started(action)); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Started)); + Assert.That(action.WasPerformedThisFrame(), Is.False); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + else if (isHold) + { + Assert.That(trace, Is.Empty); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Waiting)); + Assert.That(action.WasPerformedThisFrame(), Is.False); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + else if (action.type == InputActionType.PassThrough) + { + Assert.That(trace, Performed(action)); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Performed)); + Assert.That(action.WasPerformedThisFrame(), Is.True); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + + trace.Clear(); + + // Press some more such that it crosses the press threshold. + Set(gamepad.leftTrigger, 0.75f); + + // W = Waiting, S = Started, P = Performed, C = Canceled + // P/C = Performed/Completed, T = True, F = False + // (* means listeners not invoked) + // | Type | Interaction | Phase Change | P/C | isButtonLike | isHold | + // |--------|-------------|------------------|-----|--------------|--------| + // | Value | Default | S -> P, S* | T/F | | | + // | Value | Press | S -> P | T/F | true | | + // | Value | Hold | W -> S | F/F | | true | + // | Button | Default | S -> P | T/F | true | | + // | Button | Press | S -> P | T/F | true | | + // | Button | Hold | W -> S | F/F | | true | + // | Pass | Default | P -> P | T/F | | | + + Assert.That(action.IsPressed(), Is.True); + Assert.That(action.WasPressedThisFrame(), Is.True); + Assert.That(action.WasReleasedThisFrame(), Is.False); + + if (action.type == InputActionType.Value && interactions == null) + { + Assert.That(trace, Performed(action)); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Started)); + Assert.That(action.WasPerformedThisFrame(), Is.True); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + else if (isHold) + { + Assert.That(trace, Started(action)); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Started)); + Assert.That(action.WasPerformedThisFrame(), Is.False); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + else + { + Assert.That(trace, Performed(action)); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Performed)); + Assert.That(action.WasPerformedThisFrame(), Is.True); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + + trace.Clear(); + + // Disabling an action at this point should affect IsPressed() but should + // not affect WasPressedThisFrame() and WasReleasedThisFrame(). + action.Disable(); + + Assert.That(action.IsPressed(), Is.False); + Assert.That(action.WasPressedThisFrame(), Is.True); + Assert.That(action.WasReleasedThisFrame(), Is.False); + + Assert.That(trace, Canceled(action)); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Disabled)); + if (action.type == InputActionType.Value && interactions == null) + { + Assert.That(action.WasPerformedThisFrame(), Is.True); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + else if (isHold) + { + Assert.That(action.WasPerformedThisFrame(), Is.False); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + else + { + Assert.That(action.WasPerformedThisFrame(), Is.True); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + + trace.Clear(); + + // Re-enabling it should have no effect on WasPressedThisFrame() and + // WasReleasedThisFrame() either. Also IsPressed() should remain false + // as the button may have been released and the action wouldn't see + // the update while disabled. + action.Enable(); + + Assert.That(action.IsPressed(), Is.False); + Assert.That(action.WasPressedThisFrame(), Is.True); + Assert.That(action.WasReleasedThisFrame(), Is.False); + + Assert.That(trace, Is.Empty); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Waiting)); + if (action.type == InputActionType.Value && interactions == null) + { + Assert.That(action.WasPerformedThisFrame(), Is.True); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + else if (isHold) + { + Assert.That(action.WasPerformedThisFrame(), Is.False); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + else + { + Assert.That(action.WasPerformedThisFrame(), Is.True); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + + trace.Clear(); + + // Advance one frame. + InputSystem.Update(); + + // W = Waiting, S = Started, P = Performed, C = Canceled + // P/C = Performed/Completed, T = True, F = False + // (* means listeners not invoked) + // | Type | Interaction | Phase Change | P/C | isButtonLike | isHold | + // |--------|-------------|------------------|-----|--------------|--------| + // | Value | Default | W -> S, P, S* | T/F | | | + // | Value | Press | W -> S, P | T/F | true | | + // | Value | Hold | W -> S | F/F | | true | + // | Button | Default | W (No Change) | F/F | true | | + // | Button | Press | W (No Change) | F/F | true | | + // | Button | Hold | W (No Change) | F/F | | true | + // | Pass | Default | W (No Change) | F/F | | | + + // Value actions perform an initial state check which flips the press state + // back on. + if (action.type == InputActionType.Value) + { + Assert.That(action.IsPressed(), Is.True); + Assert.That(action.WasPressedThisFrame(), Is.True); + Assert.That(action.WasReleasedThisFrame(), Is.False); + + if (interactions == null) + { + Assert.That(trace, Started(action).AndThen(Performed(action))); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Started)); + Assert.That(action.WasPerformedThisFrame(), Is.True); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + else if (isPress) + { + Assert.That(trace, Started(action).AndThen(Performed(action))); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Performed)); + Assert.That(action.WasPerformedThisFrame(), Is.True); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + else if (isHold) + { + Assert.That(trace, Started(action)); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Started)); + Assert.That(action.WasPerformedThisFrame(), Is.False); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + } + else + { + Assert.That(action.IsPressed(), Is.False); + Assert.That(action.WasPressedThisFrame(), Is.False); + Assert.That(action.WasReleasedThisFrame(), Is.False); + + Assert.That(trace, Is.Empty); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Waiting)); + Assert.That(action.WasPerformedThisFrame(), Is.False); + Assert.That(action.WasCompletedThisFrame(), Is.False); + + trace.Clear(); + + Set(gamepad.leftTrigger, 0.6f); + + // W = Waiting, S = Started, P = Performed, C = Canceled + // P/C = Performed/Completed, T = True, F = False + // | Type | Interaction | Phase Change | P/C | isButtonLike | isHold | + // |--------|-------------|------------------|-----|--------------|--------| + // | Button | Default | W -> S, P | T/F | true | | + // | Button | Press | W -> S, P | T/F | true | | + // | Button | Hold | W -> S | F/F | | true | + // | Pass | Default | W -> P | T/F | | | + + Assert.That(action.IsPressed(), Is.True); + Assert.That(action.WasPressedThisFrame(), Is.True); + Assert.That(action.WasReleasedThisFrame(), Is.False); + + if (isButtonLike) + { + Assert.That(trace, Started(action).AndThen(Performed(action))); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Performed)); + Assert.That(action.WasPerformedThisFrame(), Is.True); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + else if (isHold) + { + Assert.That(trace, Started(action)); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Started)); + Assert.That(action.WasPerformedThisFrame(), Is.False); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + else + { + Assert.That(trace, Performed(action)); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Performed)); + Assert.That(action.WasPerformedThisFrame(), Is.True); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + } + + trace.Clear(); + + // Release a bit but remain above release threshold. + Set(gamepad.leftTrigger, 0.41f); + + // W = Waiting, S = Started, P = Performed, C = Canceled + // P/C = Performed/Completed, T = True, F = False + // (* means listeners not invoked) + // | Type | Interaction | Phase Change | P/C | isButtonLike | isHold | + // |--------|-------------|------------------|-----|--------------|--------| + // | Value | Default | S -> P, S* | T/F | | | + // | Value | Press | P (No Change) | F/F | true | | + // | Value | Hold | S (No Change) | F/F | | true | + // | Button | Default | P (No Change) | F/F | true | | + // | Button | Press | P (No Change) | F/F | true | | + // | Button | Hold | S (No Change) | F/F | | true | + // | Pass | Default | P -> P | T/F | | | + + Assert.That(action.IsPressed(), Is.True); + Assert.That(action.WasPressedThisFrame(), Is.False); + Assert.That(action.WasReleasedThisFrame(), Is.False); + + if (action.type == InputActionType.Value && interactions == null) + { + Assert.That(trace, Performed(action)); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Started)); + Assert.That(action.WasPerformedThisFrame(), Is.True); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + else if (isButtonLike) + { + Assert.That(trace, Is.Empty); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Performed)); + Assert.That(action.WasPerformedThisFrame(), Is.False); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + else if (isHold) + { + Assert.That(trace, Is.Empty); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Started)); + Assert.That(action.WasPerformedThisFrame(), Is.False); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + else + { + Assert.That(trace, Performed(action)); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Performed)); + Assert.That(action.WasPerformedThisFrame(), Is.True); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + + trace.Clear(); + + // Go below release threshold. + Set(gamepad.leftTrigger, 0.2f); + + // W = Waiting, S = Started, P = Performed, C = Canceled + // P/C = Performed/Completed, T = True, F = False + // (* means listeners not invoked) + // | Type | Interaction | Phase Change | P/C | isButtonLike | isHold | + // |--------|-------------|------------------|-----|--------------|--------| + // | Value | Default | S -> P, S* | T/F | | | + // | Value | Press | P -> S | F/T | true | | + // | Value | Hold | S (No Change) | F/F | | true | + // | Button | Default | P -> S | F/T | true | | + // | Button | Press | P -> S | F/T | true | | + // | Button | Hold | S (No Change) | F/F | | true | + // | Pass | Default | P -> P | T/F | | | + + Assert.That(action.IsPressed(), Is.False); + Assert.That(action.WasPressedThisFrame(), Is.False); + Assert.That(action.WasReleasedThisFrame(), Is.True); + + if (action.type == InputActionType.Value && interactions == null) + { + Assert.That(trace, Performed(action)); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Started)); + Assert.That(action.WasPerformedThisFrame(), Is.True); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + else if (isButtonLike) + { + Assert.That(trace, Started(action)); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Started)); + Assert.That(action.WasPerformedThisFrame(), Is.False); + Assert.That(action.WasCompletedThisFrame(), Is.True); + } + else if (isHold) + { + Assert.That(trace, Is.Empty); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Started)); + Assert.That(action.WasPerformedThisFrame(), Is.False); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + else + { + Assert.That(trace, Performed(action)); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Performed)); + Assert.That(action.WasPerformedThisFrame(), Is.True); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + + trace.Clear(); + + // Disabling should not affect WasReleasedThisFrame(). + action.Disable(); + + Assert.That(action.IsPressed(), Is.False); + Assert.That(action.WasPressedThisFrame(), Is.False); + Assert.That(action.WasReleasedThisFrame(), Is.True); + + Assert.That(trace, Canceled(action)); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Disabled)); + if (action.type == InputActionType.Value && interactions == null) + { + Assert.That(action.WasPerformedThisFrame(), Is.True); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + else if (isButtonLike) + { + Assert.That(action.WasPerformedThisFrame(), Is.False); + Assert.That(action.WasCompletedThisFrame(), Is.True); + } + else if (isHold) + { + Assert.That(action.WasPerformedThisFrame(), Is.False); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + else + { + Assert.That(action.WasPerformedThisFrame(), Is.True); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + + trace.Clear(); + + // So should re-enabling. + action.Enable(); + + Assert.That(action.IsPressed(), Is.False); + Assert.That(action.WasPressedThisFrame(), Is.False); + Assert.That(action.WasReleasedThisFrame(), Is.True); + + Assert.That(trace, Is.Empty); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Waiting)); + if (action.type == InputActionType.Value && interactions == null) + { + Assert.That(action.WasPerformedThisFrame(), Is.True); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + else if (isButtonLike) + { + Assert.That(action.WasPerformedThisFrame(), Is.False); + Assert.That(action.WasCompletedThisFrame(), Is.True); + } + else if (isHold) + { + Assert.That(action.WasPerformedThisFrame(), Is.False); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + else + { + Assert.That(action.WasPerformedThisFrame(), Is.True); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + + trace.Clear(); + + // Advance one frame. Should reset WasReleasedThisFrame(). + InputSystem.Update(); + + // W = Waiting, S = Started, P = Performed, C = Canceled + // P/C = Performed/Completed, T = True, F = False + // (* means listeners not invoked) + // | Type | Interaction | Phase Change | P/C | isButtonLike | isHold | + // |--------|-------------|------------------|-----|--------------|--------| + // | Value | Default | W -> S, P, S* | T/F | | | + // | Value | Press | W -> S | F/F | true | | + // | Value | Hold | W (No Change) | F/F | | true | + // | Button | Default | W (No Change) | F/F | true | | + // | Button | Press | W (No Change) | F/F | true | | + // | Button | Hold | W (No Change) | F/F | | true | + // | Pass | Default | W (No Change) | F/F | | | + + Assert.That(action.IsPressed(), Is.False); + Assert.That(action.WasPressedThisFrame(), Is.False); + Assert.That(action.WasReleasedThisFrame(), Is.False); + + if (action.type == InputActionType.Value && interactions == null) + { + Assert.That(trace, Started(action).AndThen(Performed(action))); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Started)); + Assert.That(action.WasPerformedThisFrame(), Is.True); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + else if (action.type == InputActionType.Value && isPress) + { + Assert.That(trace, Started(action)); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Started)); + Assert.That(action.WasPerformedThisFrame(), Is.False); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + else + { + Assert.That(trace, Is.Empty); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Waiting)); + Assert.That(action.WasPerformedThisFrame(), Is.False); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + + trace.Clear(); + + // Press-and-release in same frame. + Set(gamepad.leftTrigger, 0.75f, queueEventOnly: true); + Set(gamepad.leftTrigger, 0.25f); + + // W = Waiting, S = Started, P = Performed, C = Canceled + // P/C = Performed/Completed, T = True, F = False + // (* means listeners not invoked) + // | Type | Interaction | Phase Change | P/C | isButtonLike | isHold | + // |--------|-------------|------------------|-----|--------------|--------| + // | Value | Default | S -> P, S*, P, S*| T/F | | | + // | Value | Press | S -> P, S | T/T | true | | + // | Value | Hold | W -> S | F/F | | true | + // | Button | Default | W -> S, P, S | T/T | true | | + // | Button | Press | W -> S, P, S | T/T | true | | + // | Button | Hold | W -> S | F/F | | true | + // | Pass | Default | W -> P, P | T/F | | | + + Assert.That(action.IsPressed(), Is.False); + Assert.That(action.WasPressedThisFrame(), Is.True); + Assert.That(action.WasReleasedThisFrame(), Is.True); + + if (action.type == InputActionType.Value && interactions == null) + { + Assert.That(trace, Performed(action).AndThen(Performed(action))); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Started)); + Assert.That(action.WasPerformedThisFrame(), Is.True); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + else if (action.type == InputActionType.Value && isPress) + { + Assert.That(trace, Performed(action).AndThen(Started(action))); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Started)); + Assert.That(action.WasPerformedThisFrame(), Is.True); + Assert.That(action.WasCompletedThisFrame(), Is.True); + } + else if (isHold) + { + Assert.That(trace, Started(action)); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Started)); + Assert.That(action.WasPerformedThisFrame(), Is.False); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + else if (action.type == InputActionType.Button && isButtonLike) + { + Assert.That(trace, Started(action).AndThen(Performed(action)).AndThen(Started(action))); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Started)); + Assert.That(action.WasPerformedThisFrame(), Is.True); + Assert.That(action.WasCompletedThisFrame(), Is.True); + } + else + { + Assert.That(trace, Performed(action).AndThen(Performed(action))); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Performed)); + Assert.That(action.WasPerformedThisFrame(), Is.True); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + + trace.Clear(); + + // Advance one frame. + InputSystem.Update(); + + // W = Waiting, S = Started, P = Performed, C = Canceled + // | Type | Interaction | Phase Change | P/C | isButtonLike | isHold | + // |--------|-------------|------------------|-----|--------------|--------| + // | Value | Default | S (No Change) | F/F | | | + // | Value | Press | S (No Change) | F/F | true | | + // | Value | Hold | S (No Change) | F/F | | true | + // | Button | Default | S (No Change) | F/F | true | | + // | Button | Press | S (No Change) | F/F | true | | + // | Button | Hold | S (No Change) | F/F | | true | + // | Pass | Default | P (No Change) | F/F | | | + + Assert.That(action.IsPressed(), Is.False); + Assert.That(action.WasPressedThisFrame(), Is.False); + Assert.That(action.WasReleasedThisFrame(), Is.False); + + if (action.type != InputActionType.PassThrough) + { + Assert.That(trace, Is.Empty); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Started)); + Assert.That(action.WasPerformedThisFrame(), Is.False); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + else + { + Assert.That(trace, Is.Empty); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Performed)); + Assert.That(action.WasPerformedThisFrame(), Is.False); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + + trace.Clear(); + + // Press-and-release-and-press-again in same frame. + Set(gamepad.leftTrigger, 0.75f, queueEventOnly: true); + Set(gamepad.leftTrigger, 0.25f, queueEventOnly: true); + Set(gamepad.leftTrigger, 0.75f); + + // W = Waiting, S = Started, P = Performed, C = Canceled + // (* means listeners not invoked) + // | Type | Interaction | Phase Change | P/C | isButtonLike | isHold | + // |--------|-------------|--------------------------|-----|--------------|--------| + // | Value | Default | S -> P, S*, P, S*, P, S* | T/F | | | + // | Value | Press | S -> P, S, P | T/T | true | | + // | Value | Hold | S (No Change) | F/F | | true | + // | Button | Default | S -> P, S, P | T/T | true | | + // | Button | Press | S -> P, S, P | T/T | true | | + // | Button | Hold | S (No Change) | F/F | | true | + // | Pass | Default | P -> P, P, P | T/F | | | + + Assert.That(action.IsPressed(), Is.True); + Assert.That(action.WasPressedThisFrame(), Is.True); + Assert.That(action.WasReleasedThisFrame(), Is.True); + + if (action.type == InputActionType.Value && interactions == null) + { + Assert.That(trace, Performed(action).AndThen(Performed(action)).AndThen(Performed(action))); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Started)); + Assert.That(action.WasPerformedThisFrame(), Is.True); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + else if (isButtonLike) + { + Assert.That(trace, Performed(action).AndThen(Started(action)).AndThen(Performed(action))); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Performed)); + Assert.That(action.WasPerformedThisFrame(), Is.True); + Assert.That(action.WasCompletedThisFrame(), Is.True); + } + else if (isHold) + { + Assert.That(trace, Is.Empty); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Started)); + Assert.That(action.WasPerformedThisFrame(), Is.False); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + else if (action.type == InputActionType.PassThrough) + { + Assert.That(trace, Performed(action).AndThen(Performed(action)).AndThen(Performed(action))); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Performed)); + Assert.That(action.WasPerformedThisFrame(), Is.True); + Assert.That(action.WasCompletedThisFrame(), Is.False); + } + } + } + [Test] [Category("Actions")] public void Actions_CanReadValueFromAction_InCallback() @@ -1908,46 +2902,139 @@ public unsafe void Actions_CanReadValueFromAction_InCallback_WithoutKnowingValue .With("Right", "/d"); var gamepad = InputSystem.AddDevice(); - var keyboard = InputSystem.AddDevice(); + var keyboard = InputSystem.AddDevice(); + + action.Enable(); + + byte[] receivedValueData = null; + + action.performed += + ctx => + { + Assert.That(receivedValueData, Is.Null); + Assert.That(ctx.valueType, Is.EqualTo(typeof(Vector2))); + Assert.That(ctx.valueSizeInBytes, Is.EqualTo(sizeof(Vector2))); + + var sizeInBytes = ctx.valueSizeInBytes; + receivedValueData = new byte[sizeInBytes]; + fixed(byte* dataPtr = receivedValueData) + { + ctx.ReadValue(dataPtr, sizeInBytes); + } + }; + + InputSystem.QueueStateEvent(gamepad, new GamepadState {leftStick = new Vector2(0.123f, 0.234f)}); + InputSystem.Update(); + + Assert.That(receivedValueData, Has.Length.EqualTo(sizeof(Vector2))); + Assert.That(BitConverter.ToSingle(receivedValueData, 0), + Is.EqualTo(new StickDeadzoneProcessor().Process(new Vector2(0.123f, 0.234f)).x).Within(0.00001)); + Assert.That(BitConverter.ToSingle(receivedValueData, 4), + Is.EqualTo(new StickDeadzoneProcessor().Process(new Vector2(0.123f, 0.234f)).y).Within(0.00001)); + + receivedValueData = null; + + InputSystem.QueueStateEvent(keyboard, new KeyboardState(Key.W, Key.A)); + InputSystem.Update(); + + Assert.That(receivedValueData, Has.Length.EqualTo(sizeof(Vector2))); + Assert.That(BitConverter.ToSingle(receivedValueData, 0), + Is.EqualTo((Vector2.up + Vector2.left).normalized.x).Within(0.00001)); + Assert.That(BitConverter.ToSingle(receivedValueData, 4), + Is.EqualTo((Vector2.up + Vector2.left).normalized.y).Within(0.00001)); + } + + [Test] + [Category("Actions")] + public void Actions_CanReadValueTypeFromAction() + { + var action = new InputAction(); + action.AddBinding("/leftStick"); + action.AddCompositeBinding("Dpad") + .With("Up", "/w") + .With("Down", "/s") + .With("Left", "/a") + .With("Right", "/d"); + + var gamepad = InputSystem.AddDevice(); + var keyboard = InputSystem.AddDevice(); + + action.Enable(); + + action.performed += + ctx => + { + Assert.That(ctx.valueType, Is.EqualTo(typeof(Vector2))); + Assert.That(ctx.action.activeValueType, Is.EqualTo(typeof(Vector2))); + }; + + InputSystem.QueueStateEvent(gamepad, new GamepadState { leftStick = new Vector2(0.123f, 0.234f) }); + InputSystem.Update(); + + Assert.That(action.activeControl, Is.SameAs(gamepad.leftStick)); + Assert.That(action.activeControl.valueType, Is.EqualTo(typeof(Vector2))); + Assert.That(action.activeValueType, Is.EqualTo(typeof(Vector2))); + + Assert.That(action.ReadValue(), + Is.EqualTo(new StickDeadzoneProcessor().Process(new Vector2(0.123f, 0.234f))) + .Using(Vector2EqualityComparer.Instance)); + + InputSystem.QueueStateEvent(keyboard, new KeyboardState(Key.W, Key.A)); + InputSystem.Update(); + + // The active control is one of the two keyboard keys held, which has a value type of float. + // But since the composite has type Vector2, the action's value type is Vector2. + Assert.That(new[] { keyboard.wKey, keyboard.aKey }, Contains.Item(action.activeControl)); + Assert.That(action.activeControl.valueType, Is.EqualTo(typeof(float))); + Assert.That(action.activeValueType, Is.EqualTo(typeof(Vector2))); + + Assert.That(action.ReadValue(), + Is.EqualTo(new StickDeadzoneProcessor().Process((Vector2.up + Vector2.left).normalized)) + .Using(Vector2EqualityComparer.Instance)); + } + + [Test] + [Category("Actions")] + public void Actions_CanReadValueTypeFromAction_WithDynamicCompositeType() + { + var action = new InputAction(); + action.AddCompositeBinding("OneModifier") + .With("Modifier", "/leftTrigger") + .With("Binding", "/leftStick"); + + var gamepad = InputSystem.AddDevice(); action.Enable(); - byte[] receivedValueData = null; - action.performed += ctx => { - Assert.That(receivedValueData, Is.Null); Assert.That(ctx.valueType, Is.EqualTo(typeof(Vector2))); - Assert.That(ctx.valueSizeInBytes, Is.EqualTo(sizeof(Vector2))); - - var sizeInBytes = ctx.valueSizeInBytes; - receivedValueData = new byte[sizeInBytes]; - fixed(byte* dataPtr = receivedValueData) - { - ctx.ReadValue(dataPtr, sizeInBytes); - } + Assert.That(ctx.action.activeValueType, Is.EqualTo(typeof(Vector2))); }; - InputSystem.QueueStateEvent(gamepad, new GamepadState {leftStick = new Vector2(0.123f, 0.234f)}); + InputSystem.QueueStateEvent(gamepad, new GamepadState { leftStick = new Vector2(0.123f, 0.234f) }); InputSystem.Update(); - Assert.That(receivedValueData, Has.Length.EqualTo(sizeof(Vector2))); - Assert.That(BitConverter.ToSingle(receivedValueData, 0), - Is.EqualTo(new StickDeadzoneProcessor().Process(new Vector2(0.123f, 0.234f)).x).Within(0.00001)); - Assert.That(BitConverter.ToSingle(receivedValueData, 4), - Is.EqualTo(new StickDeadzoneProcessor().Process(new Vector2(0.123f, 0.234f)).y).Within(0.00001)); + Assert.That(action.activeControl, Is.Null); + Assert.That(action.activeValueType, Is.Null); - receivedValueData = null; + Assert.That(action.ReadValue(), + Is.EqualTo(new StickDeadzoneProcessor().Process(Vector2.zero)) + .Using(Vector2EqualityComparer.Instance)); - InputSystem.QueueStateEvent(keyboard, new KeyboardState(Key.W, Key.A)); + InputSystem.QueueStateEvent(gamepad, new GamepadState { leftStick = new Vector2(0.123f, 0.234f), leftTrigger = 1f }); InputSystem.Update(); - Assert.That(receivedValueData, Has.Length.EqualTo(sizeof(Vector2))); - Assert.That(BitConverter.ToSingle(receivedValueData, 0), - Is.EqualTo((Vector2.up + Vector2.left).normalized.x).Within(0.00001)); - Assert.That(BitConverter.ToSingle(receivedValueData, 4), - Is.EqualTo((Vector2.up + Vector2.left).normalized.y).Within(0.00001)); + // The active control is the most recent change (left trigger), which has a value type of float. + // But since the composite has evaluated type Vector2, the action's value type is Vector2. + Assert.That(action.activeControl, Is.SameAs(gamepad.leftTrigger)); + Assert.That(action.activeControl.valueType, Is.EqualTo(typeof(float))); + Assert.That(action.activeValueType, Is.EqualTo(typeof(Vector2))); + + Assert.That(action.ReadValue(), + Is.EqualTo(new StickDeadzoneProcessor().Process(new Vector2(0.123f, 0.234f))) + .Using(Vector2EqualityComparer.Instance)); } [Test] @@ -2032,6 +3119,274 @@ public void Actions_CanQueryActiveControl() Assert.That(action.activeControl, Is.SameAs(gamepad.buttonNorth)); } + [Test] + [Category("Actions")] + public void Actions_CanQueryActiveValueType() + { + var gamepad = InputSystem.AddDevice(); + + var action = new InputAction(type: InputActionType.Button); + action.AddBinding(gamepad.buttonSouth); + action.AddBinding(gamepad.buttonNorth); + action.Enable(); + + Assert.That(action.activeControl, Is.Null); + Assert.That(action.activeValueType, Is.Null); + + Press(gamepad.buttonSouth); + + Assert.That(action.activeControl, Is.SameAs(gamepad.buttonSouth)); + Assert.That(action.activeValueType, Is.EqualTo(gamepad.buttonSouth.valueType)); + + Release(gamepad.buttonSouth); + + Assert.That(action.activeControl, Is.Null); + Assert.That(action.activeValueType, Is.Null); + + Press(gamepad.buttonNorth); + + Assert.That(action.activeControl, Is.SameAs(gamepad.buttonNorth)); + Assert.That(action.activeValueType, Is.EqualTo(gamepad.buttonNorth.valueType)); + } + + [Test] + [Category("Actions")] + [TestCase(InputActionType.Value)] + [TestCase(InputActionType.Value, "Scale(factor=2)")] + [TestCase(InputActionType.Button)] + [TestCase(InputActionType.Button, "Scale(factor=2)")] + public void Actions_CanQueryMagnitudeFromAction_WithAxisControl(InputActionType actionType, string processors = null) + { + var gamepad = InputSystem.AddDevice(); + + var action = new InputAction(type: actionType, binding: "/leftTrigger", processors: processors); + + Assert.That(action.activeControl, Is.Null); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Disabled)); + Assert.That(action.ReadValue(), Is.EqualTo(0f)); + Assert.That(action.GetControlMagnitude(), Is.EqualTo(0f)); + + action.Enable(); + + Assert.That(action.activeControl, Is.Null); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Waiting)); + Assert.That(action.ReadValue(), Is.EqualTo(0f)); + Assert.That(action.GetControlMagnitude(), Is.EqualTo(0f)); + + Set(gamepad.leftTrigger, 0.123f); + + const float factor = 2f; + var expectedValue = processors == null ? 0.123f : 0.123f * factor; + + Assert.That(action.activeControl, Is.SameAs(gamepad.leftTrigger)); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Started)); + Assert.That(action.ReadValue(), Is.EqualTo(expectedValue).Within(0.00001)); + Assert.That(action.GetControlMagnitude(), Is.EqualTo(0.123f).Within(0.00001)); + + Set(gamepad.leftTrigger, 0f); + + Assert.That(action.activeControl, Is.Null); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Waiting)); + Assert.That(action.ReadValue(), Is.EqualTo(0f)); + Assert.That(action.GetControlMagnitude(), Is.EqualTo(0f)); + } + + [Test] + [Category("Actions")] + public void Actions_CanQueryMagnitudeFromAction_WithStickControl() + { + var gamepad = InputSystem.AddDevice(); + + var action = new InputAction(binding: "/leftStick"); + + Assert.That(action.activeControl, Is.Null); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Disabled)); + Assert.That(action.ReadValue(), Is.EqualTo(Vector2.zero)); + Assert.That(action.GetControlMagnitude(), Is.EqualTo(0f)); + + action.Enable(); + + Assert.That(action.activeControl, Is.Null); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Waiting)); + Assert.That(action.ReadValue(), Is.EqualTo(Vector2.zero)); + Assert.That(action.GetControlMagnitude(), Is.EqualTo(0f)); + + Set(gamepad.leftStick, new Vector2(0.123f, 0.234f)); + + var expectedValue = new StickDeadzoneProcessor().Process(new Vector2(0.123f, 0.234f)); + + Assert.That(action.activeControl, Is.SameAs(gamepad.leftStick)); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Started)); + Assert.That(action.ReadValue(), Is.EqualTo(expectedValue).Using(Vector2EqualityComparer.Instance)); + Assert.That(action.GetControlMagnitude(), Is.EqualTo(expectedValue.magnitude)); + + Set(gamepad.leftStick, Vector2.zero); + + Assert.That(action.activeControl, Is.Null); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Waiting)); + Assert.That(action.ReadValue(), Is.EqualTo(Vector2.zero)); + Assert.That(action.GetControlMagnitude(), Is.EqualTo(0f)); + } + + [Test] + [Category("Actions")] + [TestCase(InputActionType.Value)] + [TestCase(InputActionType.Value, "Scale(factor=2)")] + public void Actions_CanQueryMagnitudeFromAction_WithCompositeAxisControl(InputActionType actionType, string processors = null) + { + var keyboard = InputSystem.AddDevice(); + + // Adding the Scale processor to the composite binding, not the action, to make sure + // the scaling is only applied once instead of scaling each part binding in addition to scaling the output + // of the Axis composite. + var action = new InputAction(type: actionType); + action.AddCompositeBinding($"Axis(minValue=-5,maxValue=5)", processors: processors) + .With("Negative", "/a") + .With("Positive", "/d"); + + Assert.That(action.activeControl, Is.Null); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Disabled)); + Assert.That(action.ReadValue(), Is.EqualTo(0f)); + Assert.That(action.GetControlMagnitude(), Is.EqualTo(0f)); + + action.Enable(); + + Assert.That(action.activeControl, Is.Null); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Waiting)); + Assert.That(action.ReadValue(), Is.EqualTo(0f)); + Assert.That(action.GetControlMagnitude(), Is.EqualTo(0f)); + + Press(keyboard.dKey); + + const float factor = 2f; + var expectedValue = processors == null ? 5f : 5f * factor; + + Assert.That(action.activeControl, Is.SameAs(keyboard.dKey)); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Started)); + Assert.That(action.ReadValue(), Is.EqualTo(expectedValue).Within(0.00001)); + Assert.That(action.GetControlMagnitude(), Is.EqualTo(1f).Within(0.00001)); + + Release(keyboard.dKey); + Press(keyboard.aKey); + + Assert.That(action.activeControl, Is.SameAs(keyboard.aKey)); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Started)); + Assert.That(action.ReadValue(), Is.EqualTo(-expectedValue).Within(0.00001)); + Assert.That(action.GetControlMagnitude(), Is.EqualTo(1f).Within(0.00001)); + + Release(keyboard.aKey); + + Assert.That(action.activeControl, Is.Null); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Waiting)); + Assert.That(action.ReadValue(), Is.EqualTo(0f)); + Assert.That(action.GetControlMagnitude(), Is.EqualTo(0f)); + } + + [Test] + [Category("Actions")] + [TestCase(InputActionType.Value)] + [TestCase(InputActionType.Value, "ScaleVector2(x=2,y=2)")] + public void Actions_CanQueryMagnitudeFromAction_WithComposite2DVectorControl(InputActionType actionType, string processors = null) + { + var keyboard = InputSystem.AddDevice(); + + // Adding the Scale processor to the composite binding, not the action, to make sure + // the scaling is only applied once instead of scaling each part binding in addition to scaling the output + // of the Axis composite. + var action = new InputAction(type: actionType); + action.AddCompositeBinding("2DVector(mode=1)", processors: processors) // Mode.Digital + .With("Up", "/w") + .With("Down", "/s") + .With("Left", "/a") + .With("Right", "/d"); + + Assert.That(action.activeControl, Is.Null); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Disabled)); + Assert.That(action.ReadValue(), Is.EqualTo(Vector2.zero)); + Assert.That(action.GetControlMagnitude(), Is.EqualTo(0f)); + + action.Enable(); + + Assert.That(action.activeControl, Is.Null); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Waiting)); + Assert.That(action.ReadValue(), Is.EqualTo(Vector2.zero)); + Assert.That(action.GetControlMagnitude(), Is.EqualTo(0f)); + + Press(keyboard.sKey); + + const float factor = 2f; + var expectedValue = processors == null ? Vector2.down : Vector2.down * factor; + + Assert.That(action.activeControl, Is.SameAs(keyboard.sKey)); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Started)); + Assert.That(action.ReadValue(), Is.EqualTo(expectedValue).Using(Vector2EqualityComparer.Instance)); + Assert.That(action.GetControlMagnitude(), Is.EqualTo(1f).Within(0.00001)); + + Press(keyboard.dKey); + + expectedValue = processors == null ? new Vector2(1f, -1f) : new Vector2(1f, -1f) * factor; + + Assert.That(action.activeControl, Is.SameAs(keyboard.dKey)); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Started)); + Assert.That(action.ReadValue(), Is.EqualTo(expectedValue).Using(Vector2EqualityComparer.Instance)); + Assert.That(action.GetControlMagnitude(), Is.EqualTo(new Vector2(1f, -1f).magnitude).Within(0.00001)); + + Release(keyboard.dKey); + Release(keyboard.sKey); + + Assert.That(action.activeControl, Is.Null); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Waiting)); + Assert.That(action.ReadValue(), Is.EqualTo(Vector2.zero)); + Assert.That(action.GetControlMagnitude(), Is.EqualTo(0f)); + } + + [Test] + [Category("Actions")] + public void Actions_CanQueryMagnitudeFromAction_WithQuaternionControl_ReturnsInvalidMagnitude() + { + var sensor = InputSystem.AddDevice(); + + var action = new InputAction(binding: "/attitude"); + + // Verify that the default value is not Quaternion.identity but instead a zero quaternion. + // When the control changes to the default value, the phase changes back to Waiting, + // and the magnitude is explicitly cleared. + Assert.That(sensor.attitude.ReadDefaultValue(), Is.EqualTo(default(Quaternion))); + + Assert.That(action.activeControl, Is.Null); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Disabled)); + Assert.That(action.ReadValue(), Is.EqualTo(default(Quaternion))); + Assert.That(action.GetControlMagnitude(), Is.EqualTo(0f)); + + action.Enable(); + + Assert.That(action.activeControl, Is.Null); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Waiting)); + Assert.That(action.ReadValue(), Is.EqualTo(default(Quaternion))); + Assert.That(action.GetControlMagnitude(), Is.EqualTo(0f)); + + Set(sensor.attitude, Quaternion.Euler(30f, 60f, 45f)); + + Assert.That(action.activeControl, Is.SameAs(sensor.attitude)); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Started)); + Assert.That(action.ReadValue(), Is.EqualTo(Quaternion.Euler(30f, 60f, 45f)).Using(QuaternionEqualityComparer.Instance)); + Assert.That(action.GetControlMagnitude(), Is.EqualTo(-1f)); + + Set(sensor.attitude, Quaternion.identity); + + Assert.That(action.activeControl, Is.SameAs(sensor.attitude)); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Started)); + Assert.That(action.ReadValue(), Is.EqualTo(Quaternion.identity)); + Assert.That(action.GetControlMagnitude(), Is.EqualTo(-1f)); + + Set(sensor.attitude, default(Quaternion)); + + Assert.That(action.activeControl, Is.Null); + Assert.That(action.phase, Is.EqualTo(InputActionPhase.Waiting)); + Assert.That(action.ReadValue(), Is.EqualTo(default(Quaternion))); + Assert.That(action.GetControlMagnitude(), Is.EqualTo(0f)); + } + [Test] [Category("Actions")] public void Actions_ResettingDevice_CancelsOngoingActionsThatAreDrivenByIt() @@ -2738,35 +4093,45 @@ public void Actions_WithMultipleBoundControls_CanHandleButtonPressesAndReleases( Assert.That(action.IsPressed(), Is.False); Assert.That(action.WasPressedThisFrame(), Is.False); + Assert.That(action.WasPerformedThisFrame(), Is.False); Assert.That(action.WasReleasedThisFrame(), Is.False); + Assert.That(action.WasCompletedThisFrame(), Is.False); Assert.That(action.activeControl, Is.Null); Set(gamepad.leftTrigger, 1f); Assert.That(action.IsPressed(), Is.True); Assert.That(action.WasPressedThisFrame(), Is.True); + Assert.That(action.WasPerformedThisFrame(), Is.True); Assert.That(action.WasReleasedThisFrame(), Is.False); + Assert.That(action.WasCompletedThisFrame(), Is.False); Assert.That(action.activeControl, Is.SameAs(gamepad.leftTrigger)); Set(gamepad.rightTrigger, 0.6f); Assert.That(action.IsPressed(), Is.True); Assert.That(action.WasPressedThisFrame(), Is.False); + Assert.That(action.WasPerformedThisFrame(), Is.False); Assert.That(action.WasReleasedThisFrame(), Is.False); + Assert.That(action.WasCompletedThisFrame(), Is.False); Assert.That(action.activeControl, Is.SameAs(gamepad.leftTrigger)); Set(gamepad.leftTrigger, 0f); Assert.That(action.IsPressed(), Is.True); Assert.That(action.WasPressedThisFrame(), Is.False); + Assert.That(action.WasPerformedThisFrame(), Is.True); Assert.That(action.WasReleasedThisFrame(), Is.False); + Assert.That(action.WasCompletedThisFrame(), Is.False); Assert.That(action.activeControl, Is.SameAs(gamepad.rightTrigger)); Set(gamepad.rightTrigger, 0f); Assert.That(action.IsPressed(), Is.False); Assert.That(action.WasPressedThisFrame(), Is.False); + Assert.That(action.WasPerformedThisFrame(), Is.False); Assert.That(action.WasReleasedThisFrame(), Is.True); + Assert.That(action.WasCompletedThisFrame(), Is.False); Assert.That(action.activeControl, Is.Null); } @@ -3615,6 +4980,80 @@ public void Actions_CanConvertAssetToAndFromJson() Assert.That(asset.controlSchemes[1].deviceRequirements[2].isOR, Is.True); } + static string MinimalJson(string name = null) + { + if (name != null) + return "{\n \"name\": \"" + name + "\",\n \"maps\": [],\n \"controlSchemes\": []\n}"; + return "{\n \"maps\": [],\n \"controlSchemes\": []\n}"; + } + + [Test] + [Category("Actions")] + public void Actions_NameIsSetToNameFromJson_IfCreatedFromJsonWithName() + { + // When constructed from JSON containing name, ScriptableObject.name is set based on name property + const string name = "My Actions"; + var json = MinimalJson(name); + var asset = InputActionAsset.FromJson(json); + var assetName = asset.name; + ScriptableObject.Destroy(asset); + Assert.That(asset.name, Is.EqualTo(name)); + } + + [Test] + [Category("Actions")] + public void Actions_NameIsSetToEmptyString_IfCreatedFromJsonWithoutName() + { + // When constructed from JSON without a name, ScriptableObject.name is set to empty string. + var json = MinimalJson(); + var asset = InputActionAsset.FromJson(json); + var name = asset.name; + ScriptableObject.Destroy(asset); + Assert.That(asset.name, Is.EqualTo(string.Empty)); + } + + [Test] + [Category("Actions")] + public void Actions_NameInJsonIsSetToObjectName_IfCreatedFromObjectWithGivenName() + { + // When serializing JSON from object with a given name, name is preserved in JSON. + var json = MinimalJson("Your Actions"); + var asset = InputActionAsset.FromJson(json); + var content = asset.ToJson(); + ScriptableObject.Destroy(asset); + Assert.That(content, Is.EqualTo(json)); + } + + [Test] + [Category("Actions")] + public void Actions_NameInJsonIsSetToEmptyString_IfCreatedFromObjectWithEmptyName() + { + // When serializing JSON from object empty string as given name, name property is set to empty string. + var asset = InputActionAsset.FromJson(MinimalJson()); + asset.name = string.Empty; // null is not allowed when converting to JSON + var content = asset.ToJson(); + var expected = MinimalJson(string.Empty); + ScriptableObject.Destroy(asset); + Assert.That(content, Is.EqualTo(expected)); + } + + [Test] + [Category("Actions")] + public void Actions_NameInJsonIsSetToEmptyString_IfCreatedFromObjectWithNullName() + { + // When serializing JSON from object without a given name, Unity forces the name to be an empty string. + // Basically Unity prevents us from doing serialization an omit optional members in a convenient way. + // Hence this test just verifies this behavior since its expected. + // Hence its not possible in an easy way to provide bidirectional transformation to/from JSON. + // Also note that any additional user augmentation in JSON is currently not supported. + var asset = InputActionAsset.FromJson(MinimalJson()); + asset.name = null; + var content = asset.ToJson(); + var expected = MinimalJson(string.Empty); + ScriptableObject.Destroy(asset); + Assert.That(content, Is.EqualTo(expected)); + } + [Test] [Category("Actions")] public void Actions_CanQueryAllEnabledActions() @@ -9166,38 +10605,40 @@ public void Actions_OnActionWithMultipleBindings_ControlWithHighestActuationIsTr Set(gamepad.leftTrigger, 1f); - Assert.That(buttonAction.WasPerformedThisFrame()); + Assert.That(buttonAction.WasPerformedThisFrame(), Is.True); Assert.That(buttonAction.activeControl, Is.SameAs(gamepad.leftTrigger)); - Assert.That(passThroughAction.WasPerformedThisFrame()); + Assert.That(passThroughAction.WasPerformedThisFrame(), Is.True); Assert.That(passThroughAction.activeControl, Is.SameAs(gamepad.leftTrigger)); Set(gamepad.rightTrigger, 0.5f); - Assert.That(!buttonAction.WasPerformedThisFrame()); + Assert.That(buttonAction.WasPerformedThisFrame(), Is.False); Assert.That(buttonAction.activeControl, Is.SameAs(gamepad.leftTrigger)); - Assert.That(passThroughAction.WasPerformedThisFrame()); + Assert.That(passThroughAction.WasPerformedThisFrame(), Is.True); Assert.That(passThroughAction.activeControl, Is.SameAs(gamepad.rightTrigger)); Set(gamepad.leftTrigger, 0f); - Assert.That(!buttonAction.WasPerformedThisFrame()); - Assert.That(!buttonAction.WasReleasedThisFrame()); + Assert.That(buttonAction.WasPerformedThisFrame(), Is.False); + Assert.That(buttonAction.WasReleasedThisFrame(), Is.False); + Assert.That(buttonAction.WasCompletedThisFrame(), Is.False); Assert.That(buttonAction.activeControl, Is.SameAs(gamepad.rightTrigger)); - Assert.That(passThroughAction.WasPerformedThisFrame()); + Assert.That(passThroughAction.WasPerformedThisFrame(), Is.True); Assert.That(passThroughAction.activeControl, Is.SameAs(gamepad.leftTrigger)); Set(gamepad.rightTrigger, 0.6f); - Assert.That(!buttonAction.WasPerformedThisFrame()); + Assert.That(buttonAction.WasPerformedThisFrame(), Is.False); Assert.That(buttonAction.activeControl, Is.SameAs(gamepad.rightTrigger)); - Assert.That(passThroughAction.WasPerformedThisFrame()); + Assert.That(passThroughAction.WasPerformedThisFrame(), Is.True); Assert.That(passThroughAction.activeControl, Is.SameAs(gamepad.rightTrigger)); Set(gamepad.rightTrigger, 0f); - Assert.That(buttonAction.WasReleasedThisFrame()); + Assert.That(buttonAction.WasReleasedThisFrame(), Is.True); + Assert.That(buttonAction.WasCompletedThisFrame(), Is.True); Assert.That(buttonAction.activeControl, Is.Null); - Assert.That(passThroughAction.WasPerformedThisFrame()); + Assert.That(passThroughAction.WasPerformedThisFrame(), Is.True); Assert.That(passThroughAction.activeControl, Is.SameAs(gamepad.rightTrigger)); } @@ -10556,4 +11997,36 @@ public void TODO_Actions_ReResolvingBindings_DoesNotAllocate_IfXXX() { Assert.Fail(); } + + // Validate OnAfterDeserialize() completely disables ActionMap + // https://jira.unity3d.com/browse/ISXB-737 + [Test] + [Category("Actions")] + public void Actions_ActionMapDisabledDuringOnAfterSerialization() + { + var map = new InputActionMap("MyMap"); + var action = map.AddAction("MyAction"); + action.AddCompositeBinding("2DVector") + .With("Up", "/w") + .With("Down", "/s") + .With("Left", "/a") + .With("Right", "/d"); + + map.Enable(); + + Assert.That(map.enabled, Is.True); + Assert.That(map.FindAction("MyAction", true).enabled, Is.True); + Assert.Throws(() => map.AddAction("Something")); + + // Calling this directly is contrived (and not supported usage) but it should + // effectively cover this regression scenario. + map.OnAfterDeserialize(); + + Assert.That(map.enabled, Is.False); + + map.Enable(); + + Assert.That(map.enabled, Is.True); + Assert.That(map.FindAction("MyAction", true).enabled, Is.True); + } } diff --git a/Assets/Tests/InputSystem/CoreTests_Devices.cs b/Assets/Tests/InputSystem/CoreTests_Devices.cs index 8ce948bbf2..0408664175 100644 --- a/Assets/Tests/InputSystem/CoreTests_Devices.cs +++ b/Assets/Tests/InputSystem/CoreTests_Devices.cs @@ -5194,6 +5194,55 @@ void DeviceChangeCallback(InputDevice device, InputDeviceChange change) #pragma warning restore CS0162 } + [Test] + [Category("Devices")] + // This test validates that when InputSettings.BackgroundBehavior.ResetAndDisableAllDevices is selected, + // events are not available to process once the app regains focus. + // Essentially, only the relevant input events are processed. + public void Devices_CanSkipProcessingEventsWhileInBackground() + { + InputSystem.runInBackground = true; + InputSystem.settings.backgroundBehavior = InputSettings.BackgroundBehavior.ResetAndDisableAllDevices; + + var time = 0; + var gamepad = InputSystem.AddDevice(); + var pressAction = new InputAction("Press", binding: "/buttonSouth"); + var performedCount = 0; + + pressAction.performed += ctx => + { + performedCount++; + }; + pressAction.Enable(); + + InputSystem.Update(); + Assert.That(gamepad.canRunInBackground, Is.False); + + Press(gamepad.buttonSouth, time: time++); + Assert.That(performedCount, Is.EqualTo(1)); + + // Lose focus + runtime.PlayerFocusLost(); + Assert.That(gamepad.enabled, Is.False); + + // Queue an event while in the background. We don't want to see this event to be processed once focus + // is regained. If there is, the callback will be triggered again. + Press(gamepad.buttonSouth, queueEventOnly: true, time: time++); + + // Run update to try process events accordingly while in the background + InputSystem.Update(); + + // Gain focus + runtime.PlayerFocusGained(); + + // Run update to try process events accordingly once focus is gained + InputSystem.Update(); + + Assert.That(gamepad.enabled, Is.True); + // Confirm that callback was not triggered again once focus was regained + Assert.That(performedCount, Is.EqualTo(1)); + } + [Test] [Category("Devices")] public void Devices_CanMarkDeviceAsBeingAbleToRunInBackground_ThroughIOCTL() diff --git a/Assets/Tests/InputSystem/CoreTests_Editor.cs b/Assets/Tests/InputSystem/CoreTests_Editor.cs index 5b3bf5ce2a..0a74266c6b 100644 --- a/Assets/Tests/InputSystem/CoreTests_Editor.cs +++ b/Assets/Tests/InputSystem/CoreTests_Editor.cs @@ -10,13 +10,10 @@ using System.Text; using NUnit.Framework; using UnityEditor; -using UnityEngine.Scripting; -using UnityEditor.IMGUI.Controls; using UnityEngine; using UnityEngine.InputSystem; using UnityEngine.InputSystem.Composites; using UnityEngine.InputSystem.Controls; -using UnityEngine.InputSystem.DualShock; using UnityEngine.InputSystem.Editor; using UnityEngine.InputSystem.Interactions; using UnityEngine.InputSystem.Layouts; @@ -30,6 +27,30 @@ #pragma warning disable CS0649 partial class CoreTests { + // It seems we're getting instabilities on the farm from using EditorGUIUtility.systemCopyBuffer directly in tests. + // Ideally, we'd have a mocking library to just work around that but well, we don't. So this provides a solution + // locally to tests. + private class FakeSystemCopyBuffer : IDisposable + { + private string m_Contents; + private readonly Action m_OldSet; + private readonly Func m_OldGet; + + public FakeSystemCopyBuffer() + { + m_OldGet = EditorHelpers.GetSystemCopyBufferContents; + m_OldSet = EditorHelpers.SetSystemCopyBufferContents; + EditorHelpers.SetSystemCopyBufferContents = s => m_Contents = s; + EditorHelpers.GetSystemCopyBufferContents = () => m_Contents; + } + + public void Dispose() + { + EditorHelpers.SetSystemCopyBufferContents = m_OldSet; + EditorHelpers.GetSystemCopyBufferContents = m_OldGet; + } + } + [Serializable] internal struct PackageJson { @@ -474,14 +495,13 @@ public void Editor_InputAsset_CanAddAndRemoveElementThroughSerialization() var binding3Id = map.bindings[2].id; var obj = new SerializedObject(asset); - var maps = obj.FindProperty("m_ActionMaps"); - InputActionSerializationHelpers.AddElement(maps, "new map", 0); + InputActionTreeView.AddElement(maps, "new map", 0); var actions = obj.FindProperty("m_ActionMaps").GetArrayElementAtIndex(1).FindPropertyRelative("m_Actions"); var bindings = obj.FindProperty("m_ActionMaps").GetArrayElementAtIndex(1).FindPropertyRelative("m_Bindings"); - InputActionSerializationHelpers.AddElement(actions, "new action", 1); - InputActionSerializationHelpers.AddElement(bindings, "new binding", 1); + InputActionTreeView.AddElement(actions, "new action", 1); + InputActionTreeView.AddElement(bindings, "new binding", 1); obj.ApplyModifiedPropertiesWithoutUndo(); @@ -744,34 +764,71 @@ public void Editor_InputAsset_CanReplaceBindingGroupThroughSerialization() Assert.That(map.bindings[0].groups, Is.EqualTo("")); } - [Test] - [Category("Editor")] - public void Editor_InputActionAssetManager_CanMoveAssetOnDisk() + struct AssetFileTestConstants { - const string kAssetPath = "Assets/DirectoryBeforeRename/InputAsset." + InputActionAsset.Extension; - const string kAssetPathAfterMove = "Assets/DirectoryAfterRename/InputAsset." + InputActionAsset.Extension; - const string kDefaultContents = "{}"; + public const string kOriginalAssetName = "zzMyInputActions"; + public const string kOriginalDirectory = "zzStartingDirectory"; - AssetDatabase.CreateFolder("Assets", "DirectoryBeforeRename"); - File.WriteAllText(kAssetPath, kDefaultContents); - AssetDatabase.ImportAsset(kAssetPath); + public const string kNewAssetName = "NEWactions"; + public const string kNewDirectory = "NewDirectory"; - var asset = AssetDatabase.LoadAssetAtPath(kAssetPath); - Assert.NotNull(asset, "Could not load asset: " + kAssetPath); + public const string kOriginalAssetPath = "Assets/" + kOriginalDirectory + "/" + kOriginalAssetName + "." + InputActionAsset.Extension; + public const string kOriginalAssetContents = "{\"name\": \"" + kOriginalAssetName + "\",\"maps\": [],\"controlSchemes\": []}"; + } - var inputActionAssetManager = new InputActionAssetManager(asset); - inputActionAssetManager.Initialize(); - inputActionAssetManager.onDirtyChanged = (bool dirty) => {}; + [Test] + [TestCase("Assets/" + AssetFileTestConstants.kOriginalDirectory + "/" + AssetFileTestConstants.kNewAssetName + "." + InputActionAsset.Extension, AssetFileTestConstants.kNewAssetName, false)] // Move - Same directory but new filename - expect changed name + [TestCase("Assets/" + AssetFileTestConstants.kNewDirectory + "/" + AssetFileTestConstants.kNewAssetName + "." + InputActionAsset.Extension, AssetFileTestConstants.kNewAssetName, false)] // Move - New directory and new filename - expect changed name + [TestCase("Assets/" + AssetFileTestConstants.kNewDirectory + "/" + AssetFileTestConstants.kOriginalAssetName + "." + InputActionAsset.Extension, AssetFileTestConstants.kOriginalAssetName, false)] // Move - New directory but same filename - expect original name + [TestCase("Assets/" + AssetFileTestConstants.kOriginalDirectory + "/" + AssetFileTestConstants.kNewAssetName + "." + InputActionAsset.Extension, AssetFileTestConstants.kNewAssetName, true)] // Copy - Same directory but new filename - expect changed name + [TestCase("Assets/" + AssetFileTestConstants.kNewDirectory + "/" + AssetFileTestConstants.kNewAssetName + "." + InputActionAsset.Extension, AssetFileTestConstants.kNewAssetName, true)] // Copy - New directory and new filename - expect changed name + [TestCase("Assets/" + AssetFileTestConstants.kNewDirectory + "/" + AssetFileTestConstants.kOriginalAssetName + "." + InputActionAsset.Extension, AssetFileTestConstants.kOriginalAssetName, true)] // Copy - New directory but same filename - expect original name + [Category("Editor")] + public void Editor_InputActions_AssetFileUpdatedAfterMoveOrCopy(string newAssetPath, string expectedAssetName, bool executeCopy) + { + try + { + AssetDatabase.CreateFolder("Assets", AssetFileTestConstants.kOriginalDirectory); + AssetDatabase.CreateFolder("Assets", AssetFileTestConstants.kNewDirectory); - FileUtil.MoveFileOrDirectory("Assets/DirectoryBeforeRename", "Assets/DirectoryAfterRename"); - AssetDatabase.Refresh(); + File.WriteAllText(AssetFileTestConstants.kOriginalAssetPath, AssetFileTestConstants.kOriginalAssetContents); + AssetDatabase.ImportAsset(AssetFileTestConstants.kOriginalAssetPath); - Assert.DoesNotThrow(() => inputActionAssetManager.SaveChangesToAsset()); + var asset = AssetDatabase.LoadAssetAtPath(AssetFileTestConstants.kOriginalAssetPath); + Assert.NotNull(asset, "Could not load asset: " + AssetFileTestConstants.kOriginalAssetPath); + + try + { + if (executeCopy) + { + AssetDatabase.CopyAsset(AssetFileTestConstants.kOriginalAssetPath, newAssetPath); + AssetDatabase.Refresh(); + } + else AssetDatabase.MoveAsset(AssetFileTestConstants.kOriginalAssetPath, newAssetPath); - var fileContents = File.ReadAllText(kAssetPathAfterMove); - Assert.AreNotEqual(kDefaultContents, fileContents, "Expected file contents to have been modified after SaveChangesToAsset was called."); + var newAsset = ScriptableObject.CreateInstance(); + var fileContents = File.ReadAllText(newAssetPath); + newAsset.LoadFromJson(fileContents); - AssetDatabase.DeleteAsset("Assets/DirectoryAfterRename"); + Assert.That(newAsset.name, Is.EqualTo(expectedAssetName)); + } + finally + { + AssetDatabase.DeleteAsset(AssetFileTestConstants.kOriginalAssetPath); + AssetDatabase.DeleteAsset(newAssetPath); + } + } + finally + { + const string kOriginalPath = "Assets/" + AssetFileTestConstants.kOriginalDirectory; + const string kNewPath = "Assets/" + AssetFileTestConstants.kNewDirectory; + + FileUtil.DeleteFileOrDirectory(kOriginalPath); + FileUtil.DeleteFileOrDirectory(kOriginalPath + ".meta"); + FileUtil.DeleteFileOrDirectory(kNewPath); + FileUtil.DeleteFileOrDirectory(kNewPath + ".meta"); + AssetDatabase.Refresh(); + } } private class MonoBehaviourWithEmbeddedAction : MonoBehaviour @@ -1101,7 +1158,7 @@ public void Editor_ActionTree_CanCopyPasteActionMap() tree.Reload(); tree.SelectItem("map1"); - using (new EditorHelpers.FakeSystemCopyBuffer()) + using (new FakeSystemCopyBuffer()) { tree.CopySelectedItemsToClipboard(); Assert.That(EditorHelpers.GetSystemCopyBufferContents(), Does.StartWith(InputActionTreeView.k_CopyPasteMarker)); @@ -1154,7 +1211,7 @@ public void Editor_ActionTree_CanCopyPasteAction_IntoSameActionMap() tree.Reload(); tree.SelectItem(tree.FindItemByPropertyPath("m_ActionMaps.Array.data[0].m_Actions.Array.data[1]")); - using (new EditorHelpers.FakeSystemCopyBuffer()) + using (new FakeSystemCopyBuffer()) { tree.CopySelectedItemsToClipboard(); Assert.That(EditorHelpers.GetSystemCopyBufferContents(), Does.StartWith(InputActionTreeView.k_CopyPasteMarker)); @@ -1191,7 +1248,7 @@ public void Editor_ActionTree_CanCopyPasteAction_IntoDifferentActionMap() }; tree.Reload(); - using (new EditorHelpers.FakeSystemCopyBuffer()) + using (new FakeSystemCopyBuffer()) { tree.SelectItem(tree.FindItemByPropertyPath("m_ActionMaps.Array.data[0].m_Actions.Array.data[0]")); tree.CopySelectedItemsToClipboard(); @@ -1231,7 +1288,7 @@ public void Editor_ActionTree_CanCopyPasteBinding_IntoSameAction() }; tree.Reload(); - using (new EditorHelpers.FakeSystemCopyBuffer()) + using (new FakeSystemCopyBuffer()) { tree.SelectItem(tree.FindItemByPropertyPath("m_ActionMaps.Array.data[0].m_Bindings.Array.data[0]")); tree.CopySelectedItemsToClipboard(); @@ -1265,7 +1322,7 @@ public void Editor_ActionTree_CanCopyPasteBinding_IntoDifferentAction() }; tree.Reload(); - using (new EditorHelpers.FakeSystemCopyBuffer()) + using (new FakeSystemCopyBuffer()) { tree.SelectItem(tree.FindItemByPropertyPath("m_ActionMaps.Array.data[0].m_Bindings.Array.data[0]")); tree.CopySelectedItemsToClipboard(); @@ -1319,7 +1376,7 @@ public void Editor_ActionTree_CanCopyPasteBinding_IntoDifferentAsset() }; tree2.Reload(); - using (new EditorHelpers.FakeSystemCopyBuffer()) + using (new FakeSystemCopyBuffer()) { // Copy /leftStick binging from first asset. tree1.SelectItem(tree1.FindItemByPropertyPath("m_ActionMaps.Array.data[0].m_Bindings.Array.data[0]")); @@ -1383,7 +1440,7 @@ public void Editor_ActionTree_CannotCopyPasteBinding_IntoActionMap() }; tree.Reload(); - using (new EditorHelpers.FakeSystemCopyBuffer()) + using (new FakeSystemCopyBuffer()) { tree.SelectItem(tree.FindItemByPropertyPath("m_ActionMaps.Array.data[0].m_Bindings.Array.data[0]")); selectionChanged = false; @@ -1429,7 +1486,7 @@ public void Editor_ActionTree_CanCopyPasteCompositeBinding_IntoSameAction() }; tree.Reload(); - using (new EditorHelpers.FakeSystemCopyBuffer()) + using (new FakeSystemCopyBuffer()) { tree.SelectItem(tree.FindItemByPropertyPath("m_ActionMaps.Array.data[0].m_Bindings.Array.data[1]")); selectionChanged = false; @@ -1488,7 +1545,7 @@ public void Editor_ActionTree_CanCopyPasteCompositeBinding_IntoDifferentAction() }; tree.Reload(); - using (new EditorHelpers.FakeSystemCopyBuffer()) + using (new FakeSystemCopyBuffer()) { tree.SelectItem(tree.FindItemByPropertyPath("m_ActionMaps.Array.data[0].m_Bindings.Array.data[1]")); selectionChanged = false; @@ -1549,7 +1606,7 @@ public void Editor_ActionTree_CanCopyPastePartOfCompositeBinding_IntoSameComposi }; tree.Reload(); - using (new EditorHelpers.FakeSystemCopyBuffer()) + using (new FakeSystemCopyBuffer()) { tree.SelectItem(tree.FindItemByPropertyPath("m_ActionMaps.Array.data[0].m_Bindings.Array.data[1]")); tree.CopySelectedItemsToClipboard(); @@ -1610,7 +1667,7 @@ public void Editor_ActionTree_CanCopyPastePartOfCompositeBinding_IntoDifferentCo }; tree.Reload(); - using (new EditorHelpers.FakeSystemCopyBuffer()) + using (new FakeSystemCopyBuffer()) { tree.SelectItem(tree.FindItemByPropertyPath("m_ActionMaps.Array.data[0].m_Bindings.Array.data[2]")); tree.CopySelectedItemsToClipboard(); @@ -1680,7 +1737,7 @@ public void Editor_ActionTree_CanCutAndPasteAction() }; tree.Reload(); - using (new EditorHelpers.FakeSystemCopyBuffer()) + using (new FakeSystemCopyBuffer()) { tree.SelectItem("map1/action1"); selectionChanged = false; @@ -1742,7 +1799,7 @@ public void Editor_ActionTree_CanCutAndPasteAction_WithControlSchemeFilterActive }; tree.SetItemSearchFilterAndReload("g:scheme1"); - using (new EditorHelpers.FakeSystemCopyBuffer()) + using (new FakeSystemCopyBuffer()) { tree.SelectItem("map/action1"); tree.HandleCopyPasteCommandEvent(EditorGUIUtility.CommandEvent(InputActionTreeView.k_CutCommand)); @@ -1781,7 +1838,7 @@ public void Editor_ActionTree_CanCopyPasteCompositeBinding_WithControlSchemes() tree.Reload(); tree.bindingGroupForNewBindings = "scheme2"; - using (new EditorHelpers.FakeSystemCopyBuffer()) + using (new FakeSystemCopyBuffer()) { tree.SelectItem(tree.FindItemByPropertyPath("m_ActionMaps.Array.data[0].m_Bindings.Array.data[0]")); tree.CopySelectedItemsToClipboard(); @@ -2833,18 +2890,26 @@ public void Editor_WhenRunUpdatesInEditModeIsEnabled_InputActionsTriggerInEditMo Assert.That(action.ReadValue(), Is.EqualTo(0.75f).Within(0.00001f)); } + private static void DisableProjectWideActions() + { +#if UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS + // If the system has project-wide input actions they will also trigger enable/disable via + // play mode change triggers above. Hence we adjust extra variable to compensate of + // state allocated by project-wide actions. + if (InputSystem.actions) + { + Assert.That(InputActionState.s_GlobalState.globalList.length, Is.EqualTo(1)); + InputSystem.actions.Disable(); + InputActionState.DestroyAllActionMapStates(); + } +#endif + } + [Test] [Category("Editor")] public void Editor_LeavingPlayMode_DestroysAllActionStates() { -#if UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS - // Exclude project-wide actions from this test - // With Project-wide Actions `InputSystem.actions`, we begin with some initial ActionState - // Disabling Project-wide actions so that we begin from zero. - Assert.That(InputActionState.s_GlobalState.globalList.length, Is.EqualTo(1)); - InputSystem.actions?.Disable(); - InputActionState.DestroyAllActionMapStates(); -#endif + DisableProjectWideActions(); // Initial state Assert.That(InputActionState.s_GlobalState.globalList.length, Is.EqualTo(0)); @@ -2855,6 +2920,8 @@ public void Editor_LeavingPlayMode_DestroysAllActionStates() InputSystem.OnPlayModeChange(PlayModeStateChange.ExitingEditMode); InputSystem.OnPlayModeChange(PlayModeStateChange.EnteredPlayMode); + DisableProjectWideActions(); + var action = new InputAction(binding: "/buttonSouth"); action.Enable(); diff --git a/Assets/Tests/InputSystem/CoreTests_ProjectWideActions.cs b/Assets/Tests/InputSystem/CoreTests_ProjectWideActions.cs index 5ead638bbc..93fea59859 100644 --- a/Assets/Tests/InputSystem/CoreTests_ProjectWideActions.cs +++ b/Assets/Tests/InputSystem/CoreTests_ProjectWideActions.cs @@ -1,216 +1,144 @@ #if UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; using NUnit.Framework; -using UnityEditor; -using UnityEngine; using UnityEngine.InputSystem; +using UnityEngine.TestTools; #if UNITY_EDITOR +using System.IO; +using UnityEditor; +using UnityEngine; using UnityEngine.InputSystem.Editor; -#endif +#endif // UNITY_EDITOR -internal partial class CoreTests -{ - const string TestCategory = "ProjectWideActions"; - const string TestAssetPath = "Assets/TestInputManager.asset"; - string m_TemplateAssetPath; +// Note that editor edit mode behavior is tested in a dedicated test suite in editor test assembly. +// +// Note that play-mode and player tests both use a dedicated asset setup via build hooks so that the +// editor build configuration for preloaded Project-wide Input Actions asset may be temporarily replaced. +// Note that the play mode tests in this file rely on an asset stored in a random file to avoid any +// collisions with assets that may have been created by the user. These are automatically removed on +// test termination. -#if UNITY_EDITOR - const int initialActionCount = 2; - const int initialMapCount = 1; -#else - const int initialActionCount = 19; - const int initialMapCount = 2; -#endif +internal class ProjectWideActionsBuildSetup : IPrebuildSetup, IPostBuildCleanup +{ + private const string kAssetPath = "Assets/ProjectWideInputActionAssetForPlayModeTesting.inputactions"; + private const string kCounterAssetPath = "Assets/ProjectWideInputActionAssetForPlayModeTesting.counter"; + #if UNITY_EDITOR + private const string kSavedActionsObject = ProjectWideActionsBuildProvider.EditorBuildSettingsActionsConfigKey + ".testbackup"; + #endif - [SetUp] - public override void Setup() + private static void CreateAndAssignProjectWideTestAsset() { - // @TODO: Currently we can only inject the TestActionsAsset in PlayMode tests. - // It would be nice to be able to inject it as a Preloaded asset into the Player tests so - // we don't need different tests for the player. - // This also means these tests are dependant on the content of InputManager.asset not being changed. #if UNITY_EDITOR - // This asset takes the place of ProjectSettings/InputManager.asset for the sake of testing, as we don't - // really want to go changing that asset in every test. - // This is used as a backing for `InputSystem.actions` in PlayMode tests. - var testAsset = ScriptableObject.CreateInstance(); - AssetDatabase.CreateAsset(testAsset, TestAssetPath); - - // Create a template `InputActionAsset` containing some test actions. - // This will then be used to populate the initially empty `TestActionsAsset` when it is first acessed. - var templateActions = ScriptableObject.CreateInstance(); - templateActions.name = "TestAsset"; - var map = templateActions.AddActionMap("InitialActionMapOne"); - map.AddAction("InitialActionOne"); - map.AddAction("InitialActionTwo"); - - m_TemplateAssetPath = Path.Combine(Environment.CurrentDirectory, "Assets/ProjectWideActionsTemplate.inputactions"); - File.WriteAllText(m_TemplateAssetPath, templateActions.ToJson()); - - ProjectWideActionsAsset.SetAssetPaths(m_TemplateAssetPath, TestAssetPath); + // Preserve a backup of actual user configuration + var userAsset = ProjectWideActionsBuildProvider.actionsToIncludeInPlayerBuild; + if (userAsset != null) + EditorBuildSettings.AddConfigObject(name: kSavedActionsObject, obj: userAsset, overwrite: true); + else + EditorBuildSettings.RemoveConfigObject(name: kSavedActionsObject); + + // Create temporary asset and assign as setting + var asset = ProjectWideActionsAsset.CreateDefaultAssetAtPath(kAssetPath); + ProjectWideActionsBuildProvider.actionsToIncludeInPlayerBuild = asset; #endif - - base.Setup(); } - [TearDown] - public override void TearDown() + private static void CleanupProjectWideTestAsset() { #if UNITY_EDITOR - ProjectWideActionsAsset.Reset(); + var testAsset = ProjectWideActionsBuildProvider.actionsToIncludeInPlayerBuild; - if (File.Exists(m_TemplateAssetPath)) - File.Delete(m_TemplateAssetPath); + // Restore users initial config and remove from settings + if (EditorBuildSettings.TryGetConfigObject(name: kSavedActionsObject, out InputActionAsset userAsset)) + EditorBuildSettings.RemoveConfigObject(name: kSavedActionsObject); + ProjectWideActionsBuildProvider.actionsToIncludeInPlayerBuild = userAsset; - AssetDatabase.DeleteAsset(TestAssetPath); + // Remove temporary asset + var path = AssetDatabase.GetAssetPath(testAsset); + if (File.Exists(path)) + AssetDatabase.DeleteAsset(path); #endif - - base.TearDown(); } -#if UNITY_EDITOR - [Test] - [Category(TestCategory)] - public void ProjectWideActionsAsset_TemplateAssetIsInstalledOnFirstUse() - { - var asset = ProjectWideActionsAsset.GetOrCreate(); + // Runs before player build or before play-mode tests run, not to confuse with SetUp(). + // Runs before [OneTimeSetUp] and before [SetUp] + #region IPrebuildSetup + public void Setup() { CreateAndAssignProjectWideTestAsset(); } + #endregion + + // Runs after player build, not to confuse with TearDown() + // IMPORTANT: Does not run after editor play-mode tests if running with a filter (bug?), + // but do run as expected after filtered player test builds. + // Unclear if this is an issue in UTF or something wrong with this test. + // A workaround is provided via OneTimeTearDown() below. + // Seems to work fine when running all tests. + #region IPostBuildCleanup + public void Cleanup() { CleanupProjectWideTestAsset(); } + #endregion +} - Assert.That(asset, Is.Not.Null); - Assert.That(asset.actionMaps.Count, Is.EqualTo(initialMapCount)); - Assert.That(asset.actionMaps[0].actions.Count, Is.EqualTo(initialActionCount)); - Assert.That(asset.actionMaps[0].actions[0].name, Is.EqualTo("InitialActionOne")); - } +[TestFixture] +[PrebuildSetup(typeof(ProjectWideActionsBuildSetup))] +[PostBuildCleanup(typeof(ProjectWideActionsBuildSetup))] +internal class ProjectWideActionsTests : CoreTestsFixture +{ + const string TestCategory = "ProjectWideActions"; - [Test] + [Test(Description = "Verifies that attempting to assign InputSystem.actions while in play-mode throws an exception.")] [Category(TestCategory)] - public void ProjectWideActionsAsset_CanModifySaveAndLoadAsset() + public void ProjectWideActions_ThrowsException_WhenAssignedInPlayMode() { - var asset = ProjectWideActionsAsset.GetOrCreate(); - - Assert.That(asset, Is.Not.Null); - Assert.That(asset.actionMaps.Count, Is.EqualTo(initialMapCount)); - Assert.That(asset.actionMaps[0].actions.Count, Is.EqualTo(initialActionCount)); - Assert.That(asset.actionMaps[0].actions[0].name, Is.EqualTo("InitialActionOne")); - - asset.Disable(); // Cannot modify active actions - - // Add more actions - asset.actionMaps[0].AddAction("ActionTwo"); - asset.actionMaps[0].AddAction("ActionThree"); - - // Modify existing - asset.actionMaps[0].actions[0].Rename("FirstAction"); - - // Add another map - asset.AddActionMap("ActionMapTwo").AddAction("AnotherAction"); - - // Save - AssetDatabase.SaveAssets(); - - // Reload - asset = ProjectWideActionsAsset.GetOrCreate(); - - Assert.That(asset, Is.Not.Null); - Assert.That(asset.actionMaps.Count, Is.EqualTo(initialMapCount + 1)); - Assert.That(asset.actionMaps[0].actions.Count, Is.EqualTo(initialActionCount + 2)); - Assert.That(asset.actionMaps[1].actions.Count, Is.EqualTo(1)); - Assert.That(asset.actionMaps[0].actions[0].name, Is.EqualTo("FirstAction")); - Assert.That(asset.actionMaps[1].actions[0].name, Is.EqualTo("AnotherAction")); + Assert.Throws(() => InputSystem.actions = null); } -#endif - - [Test] + [Test(Description = "Verifies that when entering play-mode InputSystem.actions is automatically assigned based on editor build configuration.")] [Category(TestCategory)] - public void ProjectWideActions_AreEnabledByDefault() + public void ProjectWideActions_IsAutomaticallyAssignedFromPersistedAsset_WhenRunningInPlayer() { + // Regardless if editor play-mode or standalone player build we should always have project-wide input actions + // asset for the scenario setup, derived from editor build settings or preloaded assets. Assert.That(InputSystem.actions, Is.Not.Null); - Assert.That(InputSystem.actions.enabled, Is.True); + + // In editor play-mode we may as well verify that the asset has the expected name + #if UNITY_EDITOR + var expectedName = InputActionImporter.NameFromAssetPath(AssetDatabase.GetAssetPath(InputSystem.actions)); + Assert.That(InputSystem.actions.name, Is.EqualTo(expectedName)); + #endif } [Test] [Category(TestCategory)] - public void ProjectWideActions_ContainsTemplateActions() + public void ProjectWideActions_AreEnabled_WhenEnteringPlayMode() { Assert.That(InputSystem.actions, Is.Not.Null); - Assert.That(InputSystem.actions.actionMaps.Count, Is.EqualTo(initialMapCount)); - -#if UNITY_EDITOR - Assert.That(InputSystem.actions.actionMaps[0].actions.Count, Is.EqualTo(initialActionCount)); - Assert.That(InputSystem.actions.actionMaps[0].actions[0].name, Is.EqualTo("InitialActionOne")); -#else - Assert.That(InputSystem.actions.actionMaps[0].actions.Count, Is.EqualTo(9)); - Assert.That(InputSystem.actions.actionMaps[0].actions[0].name, Is.EqualTo("Move")); -#endif + Assert.That(InputSystem.actions.enabled, Is.True); } [Test] [Category(TestCategory)] public void ProjectWideActions_AppearInEnabledActions() { + // Assert that project-wide actions get enabled by default + var actionCount = 19; var enabledActions = InputSystem.ListEnabledActions(); - Assert.That(enabledActions, Has.Count.EqualTo(initialActionCount)); + Assert.That(enabledActions, Has.Count.EqualTo(actionCount)); - // Add more actions also work + // Adding more actions also work var action = new InputAction(name: "standaloneAction"); action.Enable(); enabledActions = InputSystem.ListEnabledActions(); - Assert.That(enabledActions, Has.Count.EqualTo(initialActionCount + 1)); + Assert.That(enabledActions, Has.Count.EqualTo(actionCount + 1)); Assert.That(enabledActions, Has.Exactly(1).SameAs(action)); // Disabling works - InputSystem.actions?.Disable(); + InputSystem.actions.Disable(); enabledActions = InputSystem.ListEnabledActions(); Assert.That(enabledActions, Has.Count.EqualTo(1)); Assert.That(enabledActions, Has.Exactly(1).SameAs(action)); - } - - [Test] - [Category(TestCategory)] - public void ProjectWideActions_CanReplaceExistingActions() - { - // Initial State - Assert.That(InputSystem.actions, Is.Not.Null); - Assert.That(InputSystem.actions.enabled, Is.True); - var enabledActions = InputSystem.ListEnabledActions(); - Assert.That(enabledActions, Has.Count.EqualTo(initialActionCount)); - - // Build new asset - var asset = ScriptableObject.CreateInstance(); - var map1 = new InputActionMap("replacedMap1"); - var map2 = new InputActionMap("replacedMap2"); - var action1 = map1.AddAction("replacedAction1", InputActionType.Button); - var action2 = map1.AddAction("replacedAction2", InputActionType.Button); - var action3 = map1.AddAction("replacedAction3", InputActionType.Button); - var action4 = map2.AddAction("replacedAction4", InputActionType.Button); - - action1.AddBinding("/buttonSouth"); - action2.AddBinding("/buttonWest"); - action3.AddBinding("/buttonNorth"); - action4.AddBinding("/buttonEast"); - asset.AddActionMap(map1); - asset.AddActionMap(map2); - - // Replace project-wide actions - InputSystem.actions = asset; - - // State after replacing - Assert.That(InputSystem.actions, Is.Not.Null); - Assert.That(InputSystem.actions.enabled, Is.True); - enabledActions = InputSystem.ListEnabledActions(); - Assert.That(enabledActions, Has.Count.EqualTo(4)); - Assert.That(InputSystem.actions.actionMaps.Count, Is.EqualTo(2)); - Assert.That(InputSystem.actions.actionMaps[0].actions.Count, Is.EqualTo(3)); - Assert.That(InputSystem.actions.actionMaps[0].actions[0].name, Is.EqualTo("replacedAction1")); - Assert.That(InputSystem.actions.actionMaps[1].actions.Count, Is.EqualTo(1)); - Assert.That(InputSystem.actions.actionMaps[1].actions[0].name, Is.EqualTo("replacedAction4")); + // TODO Modifying the actions object after being assigned should also enable newly added actions? } } diff --git a/Assets/Tests/InputSystem/Plugins/InputForUITests.cs b/Assets/Tests/InputSystem/Plugins/InputForUITests.cs index 9d746269a1..5b849e77f5 100644 --- a/Assets/Tests/InputSystem/Plugins/InputForUITests.cs +++ b/Assets/Tests/InputSystem/Plugins/InputForUITests.cs @@ -5,14 +5,22 @@ using UnityEngine.InputForUI; using UnityEngine.InputSystem; using UnityEngine.InputSystem.Plugins.InputForUI; +using UnityEngine.TestTools; using Event = UnityEngine.InputForUI.Event; using EventProvider = UnityEngine.InputForUI.EventProvider; +// Note that these tests do not verify InputForUI default bindings at all. +// It only verifies integration with Project-wide Input Actions. +// Note that with current design and fixture, testing play-mode integration without Project-wide Input Actions +// would require a separate assembly, or potentially e.g. delete all actions to prevent matching. +// // These tests are not meant to test the InputForUI module itself, but rather the integration between the InputForUI // module and the InputSystem package. // Be aware that these tests don't account for events dispatched by the InputEventPartialProvider. Those events are // already tested in the Input Manager provider. // Also, the internals to test InputEventPartialProvider are not exposed publicly, so we can't test them here. +[PrebuildSetup(typeof(ProjectWideActionsBuildSetup))] +[PostBuildCleanup(typeof(ProjectWideActionsBuildSetup))] public class InputForUITests : InputTestFixture { readonly List m_InputForUIEvents = new List(); @@ -23,8 +31,10 @@ public override void Setup() { base.Setup(); - var defaultActions = new DefaultInputActions(); - defaultActions.Enable(); + // Test assumes a compatible project-wide action configuration exist for UI + // See CoreTests_ProjectWideActions for how its setup via build plugins. + Assert.That(InputSystem.actions, Is.Not.Null, + "Test is invalid since Project-wide Input System actions have not been setup for play-mode test environment"); m_InputSystemProvider = new InputSystemProvider(); EventProvider.SetMockProvider(m_InputSystemProvider); diff --git a/Assets/Tests/InputSystem/Plugins/UITests.cs b/Assets/Tests/InputSystem/Plugins/UITests.cs index 93958357d5..5fe8377f3d 100644 --- a/Assets/Tests/InputSystem/Plugins/UITests.cs +++ b/Assets/Tests/InputSystem/Plugins/UITests.cs @@ -2952,6 +2952,7 @@ public void UI_WhenDisablingInputModule_ActionsAreNotDisabledIfTheyWereNotEnable // https://fogbugz.unity3d.com/f/cases/1371332/ [UnityTest] [Category("UI")] + [Ignore("Causes next test to fail in player")] public IEnumerator UI_WhenAssigningInputModuleActionAsset_OldInputsAreDisconnected_AndNewInputsAreConnected() { var mouse1 = InputSystem.AddDevice(); diff --git a/Assets/Tests/Samples/InGameHintsTests.cs b/Assets/Tests/Samples/InGameHintsTests.cs index 4de7302ad2..83b0b379f5 100644 --- a/Assets/Tests/Samples/InGameHintsTests.cs +++ b/Assets/Tests/Samples/InGameHintsTests.cs @@ -35,7 +35,8 @@ public IEnumerator Samples_InGameHints_ShowControlsAccordingToCurrentlyUsedDevic var player = new GameObject(); player.SetActive(false); // Avoid PlayerInput grabbing devices before we have its configuration in place. var playerInput = player.AddComponent(); - playerInput.actions = new InGameHintsActions().asset; + var inGameHintsActions = new InGameHintsActions(); + playerInput.actions = inGameHintsActions.asset; playerInput.defaultActionMap = "Gameplay"; playerInput.defaultControlScheme = "Keyboard&Mouse"; @@ -75,5 +76,8 @@ public IEnumerator Samples_InGameHints_ShowControlsAccordingToCurrentlyUsedDevic Assert.That(text.text, Does.StartWith("Press B ")); #endif + + // Disable before destruction to avoid asset + inGameHintsActions.Disable(); } } diff --git a/Docs/SVG Source/ConceptsOverview.svg b/Docs/SVG Source/ConceptsOverview.svg index 69a78459b3..f8c412d801 100644 --- a/Docs/SVG Source/ConceptsOverview.svg +++ b/Docs/SVG Source/ConceptsOverview.svg @@ -10,7 +10,7 @@ sodipodi:docname="ConceptsOverview.svg" inkscape:version="1.3 (0e150ed, 2023-07-21)" xml:space="preserve" - inkscape:export-filename="ConceptsOverview.png" + inkscape:export-filename="../../Packages/com.unity.inputsystem/Documentation~/Images/ConceptsOverview.png" inkscape:export-xdpi="96" inkscape:export-ydpi="96" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" @@ -328,48 +328,48 @@ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.6667px;font-family:Consolas, Monospace;-inkscape-font-specification:'Consolas, Monospace';direction:ltr;white-space:pre;shape-inside:url(#rect1640);display:inline;fill:#000000">if (if (jumpjump.IsPressed()) .IsPressed()) { { // your code // your code } } Action ReferenceYour Action Code` based on the currently active control that is driving the action. + - [`InputAction.GetControlMagnitude`](xref:UnityEngine.InputSystem.InputAction.GetControlMagnitude) returns the current amount of actuation of the control that is driving the action. + - [`InputAction.WasCompletedThisFrame`](xref:UnityEngine.InputSystem.InputAction.WasCompletedThisFrame) returns `true` on the frame that the action stopped being in the performed phase. This allows for similar functionality to [`WasPressedThisFrame`](xref:UnityEngine.InputSystem.InputAction.WasPressedThisFrame)/[`WasReleasedThisFrame`](xref:UnityEngine.InputSystem.InputAction.WasReleasedThisFrame) when paired with [`WasPerformedThisFrame`](xref:UnityEngine.InputSystem.InputAction.WasPerformedThisFrame) except it is directly based on the interactions driving the action. For example, you can use it to distinguish between the button being released or whether it was released after being held for long enough to perform when using the Hold interaction. +- Added Copy, Paste and Cut support for Action Maps, Actions and Bindings via context menu and key command shortcuts. +- Added Dual Sense Edge controller to be mapped to the same layout as the Dual Sense controller +- Added drag and drop support in the Input Action Asset Editor for Action Maps, Actions and Bindings. +- UI Toolkit input action editor now supports showing the derived bindings. +- Device filtering support for control schemes in the UI-Toolkit Input Asset Editor. +- Added right-click (context) menu support for empty areas below the Action Maps/Actions lists in the Project Settings Input Action Editor and Asset Input Action Editor. +- Added text to show which action map asset was used to create each action in the Input Debug window. + +### Fixed +- Fixed syntax of code examples in API documentation for [`AxisComposite`](xref:UnityEngine.InputSystem.Composites.AxisComposite). +- Fixed missing confirmation popup when deleting a control scheme. +- Fixed support for menu bar/customisable keyboard shortcuts used when interacting with Actions and Action Maps. +- Fixed add bindings button to support left button click. +- Fixed icon for adding bindings and composites button. +- Fixed Documentation~/filter.yml GlobalNamespace rule removing all API documentation. +- Fixed `Destroy may not be called from edit mode` error [ISXB-695](https://issuetracker.unity3d.com/product/unity/issues/guid/ISXB-695) +- Fixed possible exceptions thrown when deleting and adding Action Maps. +- Fixed selection not changing when right-clicking an Action Map or Action in the Project Settings Input Actions Editor. +- Fixed right-click context menus throwing errors when dealing with multiple Input Actions Editor windows. +- Fixed potential race condition on access to GCHandle in DefferedResolutionOfBindings and halved number of calls to GCHandle resolution [ISXB-726](https://issuetracker.unity3d.com/product/unity/issues/guid/ISXB-726) +- Fixed issue where composite part dropdown manipulates binding path and leaves composite part field unchanged. +- Fixed lingering highlight effect on Save Asset button after clicking. +- Fixed missing name in window title for Input Action assets. +- Fixed showing action properties view when there were no actions. +- Fixed "Listen" functionality for selecting an input sometimes expecting the wrong input type. +- Fixed console errors that can be produced when opening input package settings from the Inspector. +- Fixed InputManager.asset file growing in size on each Reset call. +- Fixed Opening InputDebugger throws 'Action map must have state at this point' error. +- Fixed Cut/Paste behaviour to match Editor - Cut items will now be cleared from clipboard after pasting. +- Improved window layout to avoid elements being hidden (both the Input Actions in Project Settings, and standalone Input Actions Editor windows). +- Fixed InputAction asset appearing dirty after rename [ISXB-749](https://issuetracker.unity3d.com/product/unity/issues/guid/ISXB-749). +- Fixed Error logged when InputActionsEditor window opened without a valid asset. +- Fixed ArgumentNullExceptions thrown when deleting items quickly in the UITK Editor. +- Fixed Project Settings header title styling for Input Actions editor. +- Fixed Input Actions Editor losing reference to current ControlScheme upon entering Play Mode [ISXB-770](https://issuetracker.unity3d.com/product/unity/issues/guid/ISXB-770). +- Fixed Save shortcut (ctrl/cmd + S by default) not saving changes in Input Actions Editor windows. [ISXB-659](https://issuetracker.unity3d.com/product/unity/issues/guid/ISXB-659). +- Fixed headers in InputActionsEditor windows becoming squashed when there is a large number of Action Maps/Actions. +- Fixed duplication of project wide input actions when loading/unloading scenes. +- Fixed an issue where UI Toolkit based editor would not close itself if the associated asset would be deleted (To mimic IMGUI Input Action Editor behavior). +- Fixed a regression in IMGUI Input Action Editor where editor would auto-save on focus lost even when the auto-save toggle was disabled. +- Fixed an issue where UI Toolkit based editor would not properly track tentative changes associated with a moved asset file. +- Fixed an issue where selection state of UI Toolkit editor state would not be preserved when associated with a new serialized copy of the asset. +- Fixed an issue where any exceptions throw from within UI Toolkit event queue would only log the error message and not the full exception stack trace, making debugging more difficult. +- Fixed an issue where UI Toolkit Input Actions Editor wouldn't provide a correct modification state when coming back from domain reload. +- Fixed an issue in the Input Actions Editor window where entries being cut would be deleted instantly and not after being pasted. +- Fixed an issue where preloaded InputActionAsset objects added by a Unity developer could accidentally be selected as the project-wide actions asset instead of the configured asset in built players. +- Fixed a compile-time warning: `warning CS0109: The member 'UnityRemoteTestScript.camera' does not hide an accessible member. The new keyword is not required.` showing up in the Console window when building a player including the Input System Unity Remote sample. +- Fixed an issue where the InputActionAsset editor window would remove the unsaved changes asterisk when cancelling the window. [ISXB-797](https://issuetracker.unity3d.com/product/unity/issues/guid/ISXB-797). +- Fixed an issue in the Input Actions Editor window where deleting items unfolded other actions or the selection switched unintended. +- Fixed Composite types missing in context menu when "Any" ControlType selected. [ISXB-769](https://issuetracker.unity3d.com/product/unity/issues/guid/ISXB-769). +- Fixed 3D Vector and 1D Axis binding dropdown usage in Input Actions Editor throwing NotImplementedExceptions. +- Fixed several missing tooltips from the Action/Binding Properties pane in Input Actions Editor. +- Fixed an issue in the InputActionAsset Editor where ControlType wasn't updated when ActionType changed. +- Fixed an issue in the InputActionAsset Editor where Canceling ControlScheme changes didn't reset the values in the UI. +- Fixed an issue where newly created action map names were not editable. +- Fixed an issue where having unsaved changes in `InputActionsEditorWindow` would be discarded when entering play-mode (or triggering domain reload in general). +- Fixed an issue where a `InputActionsEditorWindow` would not find an existing open editor window if the editor was open during a domain reload and then the asset was opened from the Project Explorer. +- Fixed a visual glitch in the InputActionAsset Editor when scrolling the Actions list with a rename in progress. [ISXB-748](https://issuetracker.unity3d.com/product/unity/issues/guid/ISXB-748) +- Fixed ProjectWideActions template so Previous/Next Actions are Button instead of Axis. +- Fixed an issue in the Input Action Editor window where entries being cut would be deleted instantly and not after being pasted. +- Fixed an issue in the Input Action Editor window where deleting items unfolded other actions or the selection switched unintended. +- Fixed an issue where InputActionAsset validation where not triggered for Project-wide input actions when the project-wide asset was edited in a regular windowed Input Action Asset editor window. +- Fixed incorrect documentation in InputSystem.actions and InputSystem.onActionsChanged property API contract. +- Fixed an issue where `InputSystem.actions` could be incorrectly evaluated if the associated asset was deleted. + ## [1.8.0-pre.2] - 2023-11-09 ### Changed @@ -47,7 +130,7 @@ however, it has to be formatted properly to pass verification tests. - Fixed case ISX-1436 (UI TK Input Action Asset Editor - Error deleting Bindings with DeleteKey on Windows). - Fixed issue with UI Toolkit based Input Action Editor not restoring it's selected items after Domain Reload. - Fixed the [`GetHapticCapabilitiesCommand`](xref:UnityEngine.InputSystem.XR.Haptics.GetHapticCapabilitiesCommand) always failing to execute due to a mismatch in the size in bytes of the payload and the size expected by XR devices. Changed [`HapticCapabilities`](xref:UnityEngine.InputSystem.XR.Haptics.HapticCapabilities) to include all properties returned by the XR input subsystem. This makes Input System match the functionality provided by the [XR](https://docs.unity3d.com/Manual/com.unity.modules.xr.html) module's [`InputDevice.TryGetHapticCapabilities`](https://docs.unity3d.com/ScriptReference/XR.InputDevice.TryGetHapticCapabilities.html) and [`HapticCapabilities`](https://docs.unity3d.com/ScriptReference/XR.HapticCapabilities.html). - +- Fixed issue where deleting a binding in the Input Action Editor would usually result in an unexpected item being selected next. ## [1.8.0-pre.1] - 2023-09-04 diff --git a/Packages/com.unity.inputsystem/Documentation~/ActionAssets.md b/Packages/com.unity.inputsystem/Documentation~/ActionAssets.md index be9f5fef55..def2c2e5e5 100644 --- a/Packages/com.unity.inputsystem/Documentation~/ActionAssets.md +++ b/Packages/com.unity.inputsystem/Documentation~/ActionAssets.md @@ -3,23 +3,17 @@ uid: input-system-action-assets --- # Input Action Assets -* [Creating Action Assets](#creating-input-action-assets) -* [Editing Action Assets](#editing-input-action-assets) -* [Using Action Assets](#using-input-action-assets) +- [Creating Input Action Assets](#creating-input-action-assets) +- [Editing Input Action Assets](#editing-input-action-assets) +- [Using Input Action Assets](#using-input-action-assets) +- [Type-safe C# API Generation](#type-safe-c-api-generation) An Input Action Asset is an Asset which contains a set of [Input Actions](Actions.md) definitions and their associated [Bindings](ActionBindings.md) and [Control Schemes](ActionBindings.md#control-schemes). These Assets have the `.inputactions` file extension and are stored in a plain JSON format. -### Why use an Input Action Asset instead of configuring actions in the Project Settings window? +The input system creates an Action Asset when you set up the [default project-wide actions](ProjectWideActions.md), but you can also create new Action Assets directly in the Project window. -Input Action Assets contain the same type of data that you see in the input settings in the Project Settings window, but instead of stored as part of your project settings, they are contained in an asset. +For most common scenarios, you do not need to use more than one Input Action Asset. It is usually simpler to configure your project-wide action definition in the Project Settings window. -For most common scenarios, you do not need to use an Input Action Asset. It is usually simpler to configure your project-wide action definition in the Project Settings window. - -Input Action Assets exist because, in earlier versions of the Input System package, they were the _only_ way to configure actions. Now that you can configure actions in the Project Settings window, creating Action Assets is a largely redundant workflow, but it still exists for backwards-compatibility. - -#### Type-safe C# API Generation - -Input Action Assets have a feature that is not present for project-wide actions, which is that you can **generate a C# class** from your action definitions, which allow you to refer to your actions in a type-safe manner from code. This means you can avoid looking up your actions by string. This is one reason you might choose to use an Action Asset instead of the project-wide actions defined in the Project Settings window. See below for more information on this. ## Creating Input Action Assets @@ -34,6 +28,11 @@ The Actions Editor which opens is identical to the [Actions Editor in the Projec ## Using Input Action Assets + +## Type-safe C# API Generation + +Input Action Assets allow you to **generate a C# class** from your action definitions, which allow you to refer to your actions in a type-safe manner from code. This means you can avoid looking up your actions by string. + ### Auto-generating script code for Actions One of the most convenient ways to work with `.inputactions` Assets in scripts is to automatically generate a C# wrapper class for them. This removes the need to manually look up Actions and Action Maps using their names, and also provides an easier way to set up callbacks. @@ -118,4 +117,4 @@ void Start() } ``` -> __Note:__ This default actions asset is entirely separate from the default actions that appear in the project-wide actions in the Project Settings window, and should also be considered outdated and redundant. +> __Note:__ This default actions asset is older than, and entirely separate from the [default project-wide actions](ProjectWideActions.md). It is a legacy asset that remains included in the package for backward compatibility. diff --git a/Packages/com.unity.inputsystem/Documentation~/ActionBindings.md b/Packages/com.unity.inputsystem/Documentation~/ActionBindings.md index cff6b0199e..9c164e2439 100644 --- a/Packages/com.unity.inputsystem/Documentation~/ActionBindings.md +++ b/Packages/com.unity.inputsystem/Documentation~/ActionBindings.md @@ -29,7 +29,15 @@ uid: input-system-action-bindings * [Conflicting inputs](#conflicting-inputs) * [Initial state check](#initial-state-check) -An [`InputBinding`](../api/UnityEngine.InputSystem.InputBinding.html) represents a connection between an [Action](Actions.md) and one or more [Controls](Controls.md) identified by a [Control path](Controls.md#control-paths). An Action can have an arbitrary number of Bindings pointed at it. Multiple Bindings can reference the same Control. +An [`InputBinding`](../api/UnityEngine.InputSystem.InputBinding.html) represents a connection between an [Action](Actions.md) and one or more [Controls](Controls.md) identified by a [Control path](Controls.md#control-paths). For example, the **right trigger** of a gamepad (a control) might be bound to an an action named "accelerate", so that pulling the right trigger causes a car to accelerate in your game. + +You can add multiple bindings to an action, which is generally useful for supporting multiple types of input device. For example, in the default set of actions, the "Move" action has a binding to the left gamepad stick and the WSAD keys, which means input through any of these bindings will perform the action. + +You can also bind multiple controls from the same device to an action. For example, both the left and right trigger of a gamepad could be mapped to the same action, so that pulling either trigger has the same result in your game. + +![The default "move" action with its multiple bindings highlighted](./Images/ActionWithMultipleBindings.png)
+_The default "Move" action in the Actions Editor window, displaying the multiple bindings associated with it._ + Each Binding has the following properties: @@ -519,7 +527,7 @@ playerInput.actions["move"] ### Setting parameters -A Binding may, either through itself or through its associated Action, lead to [processor](Processors.md), [interaction](Interactions.md), and/or [composite](#composite-bindings) objects being created. These objects can have parameters you can configure through in the [Binding properties view](ActionsEditor.md#editing-bindings) of the Action editor or through the API. This configuration will give parameters their default value. +A Binding may, either through itself or through its associated Action, lead to [processor](Processors.md), [interaction](Interactions.md), and/or [composite](#composite-bindings) objects being created. These objects can have parameters you can configure through in the [Binding properties view](ActionsEditor.md#bindings) of the Action editor or through the API. This configuration will give parameters their default value. ```CSharp // Create an action with a "Hold" interaction on it. diff --git a/Packages/com.unity.inputsystem/Documentation~/Actions.md b/Packages/com.unity.inputsystem/Documentation~/Actions.md index c652bc1c43..780d0e2ddc 100644 --- a/Packages/com.unity.inputsystem/Documentation~/Actions.md +++ b/Packages/com.unity.inputsystem/Documentation~/Actions.md @@ -18,19 +18,22 @@ You can then get a reference to this action in your code, and check its value, o Actions also make it simpler to create a system that lets your players [customize their bindings at runtime](ActionBindings.md#interactive-rebinding), which is a common requirement for games. ->**Note** ->Actions are a runtime only feature. You can't use them in `EditorWindow` code. - ->__Note__: It is possible to read input without using Actions and Bindings by directly reading specific device controls. This is less flexible, but can be quicker to implement for certain situations. Read more about [directly reading devices from script](Workflow-Direct.md). +>**Notes:** +> - Actions are a runtime only feature. You can't use them in [Editor window code](https://docs.unity3d.com/ScriptReference/EditorWindow.html). +> +> - You can read input without using Actions and Bindings by directly reading specific device controls. This is less flexible, but can be quicker to implement for certain situations. Read more about [directly reading devices from script](Workflow-Direct.md). +> +> - Although you can reorder actions in this window, the ordering is for visual convenience only, and does not affect the order in which the actions are triggered in your code. If multiple actions are performed in the same frame, the order in which they are reported by the input system is undefined. To avoid problems, you should not write code that assumes they will be reported in a particular order. +>
  ## Overview -When scripting with Actions in the Input System, there are number of important classes you can use, which are described here: +When scripting with Actions in the Input System, there are number of important API you can use, which are described here: -|Class|Description| +|API name|Description| |-----|-----------| -|`InputSystem.actions`|A reference to the set of actions configured in the [Input Actions editor](ActionsEditor.md). | +|[`InputSystem.actions`](../api/UnityEngine.InputSystem.InputSystem.html)|A reference to the set of actions assigned as the [project-wide Actions](./ProjectWideActions.md).| |[`InputActionMap`](../api/UnityEngine.InputSystem.InputActionMap.html)|A named collection of Actions. The API equivalent to an entry in the "Action Maps" column of the [Input Actions editor](ActionsEditor.md).| |[`InputAction`](../api/UnityEngine.InputSystem.InputAction.html)|A named Action that can return the current value of the controls that it is bound to, or can trigger callbacks in response to input. The API equivalent to an entry in the "Actions" column of the [Input Actions editor](ActionsEditor.md).| |[`InputBinding`](../api/UnityEngine.InputSystem.InputBinding.html)|The relationship between an Action and the specific device controls for which it receives input. For more information about Bindings and how to use them, see [Action Bindings](ActionBindings.md).| @@ -43,11 +46,7 @@ Each Action Map has a name ([`InputActionMap.name`](../api/UnityEngine.InputSyst The simplest way to create actions is to use the [Input Actions editor](ActionsEditor.md) in the Project Settings window. This is the primary recommended workflow and suitable for most scenarios. -However, because the input system API is very open, there are many other ways to create actions which may suit less common scenarios. For example: - -- You can create [Input Actions assets](ActionAssets.md) which define a set of action data similar to that defined in Project Settings, but is instead stored in a self-contained asset (this is an outdated workflow but is still supported). -- You can manually load Actions from JSON data. -- You can create Actions entirely in code, including setting up the bindings. +However, because the input system API is very open, there are many other ways to create actions which may suit less common scenarios. For example, by loading actions from JSON data, or creating actions entirely in code. ### Creating Actions using the Action editor @@ -59,18 +58,11 @@ For information on how to create and edit Input Actions in the editor, see the [ # Other ways to create Actions -The simplest way to create actions is to use the [Input Actions editor](ActionsEditor.md) as described above. However, because the Input System package API is open and flexible, you can create actions using alternative techniques. These alternatives might be more suitable if you developing something unusual or want to customize your project beyond the standard workflow. - -### Creating Actions in Input Action Assets - -You can create actions that are stored in an Asset instead of in your Project Settings, by creating an [Action Asset](ActionAssets.md). This workflow used to be the main workflow in previous versions of the Input System package, but has been superseded by the [Input Actions editor](ActionsEditor.md) in the Project Settings window, which provides a simpler workflow. - -However it is still possible to create [Action Assets](ActionAssets.md) which contain a complete set of Action Maps, Actions and Bindings, and use those instead of the project-wide Actions that are defined in the Project Settings window. - +The simplest way to create actions is to use the [Input Actions editor](ActionsEditor.md) to configure a set of actions in an asset, as described above. However, because the Input System package API is open and flexible, you can create actions using alternative techniques. These alternatives might be more suitable if you want to customize your project beyond the standard workflow. ### Creating Actions by declaring them in MonoBehaviours -As an alternative workflow, you can declare individual [Input Action](../api/UnityEngine.InputSystem.InputAction.html) and [Input Action Maps](../api/UnityEngine.InputSystem.InputActionMap.html) as fields directly inside `MonoBehaviour` components, like this: +As an alternative workflow, you can declare individual [Input Action](../api/UnityEngine.InputSystem.InputAction.html) and [Input Action Maps](../api/UnityEngine.InputSystem.InputActionMap.html) as fields directly inside `MonoBehaviour` components. ```CSharp using UnityEngine; @@ -85,12 +77,10 @@ public class ExampleScript : MonoBehaviour The result is similar to using an Actions defined in the Input Actions editor, except the Actions are defined in the GameObject's properties and saved as Scene or Prefab data, instead of in a dedicated Asset. -When you embed actions in a MonoBehaviour and assign that MonoBehaviour to a GameObject, the GameObject's Inspector window displays an interface similar to the Actions Asset window, which allows you to set up the bindings for those actions. For example: +When you embed actions like this, by defining serialized InputAction fields in a MonoBehaviour, the GameObject's Inspector window displays an interface similar to the Actions column of the [Actions Editor](./ActionsEditor.md), which allows you to set up the bindings for those actions. For example: ![MyBehavior Inspector](Images/Workflow-EmbeddedActionsInspector.png) -The visual editors work similarly to the [Input Actions editor](ActionsEditor.md). - * To add or remove Actions or Bindings, click the Add (+) or Remove (-) icon in the header. * To edit Bindings, double-click them.
* To edit Actions, double-click them in an Action Map, or click the gear icon on individual Action properties.
@@ -98,36 +88,7 @@ The visual editors work similarly to the [Input Actions editor](ActionsEditor.md Unlike the project-wide actions in the Project Settings window, you must manually enable and disable Actions and Action Maps that are embedded in MonoBehaviour components. -```CSharp -public class MyBehavior : MonoBehaviour -{ - // ... - - void Awake() - { - fireAction.performed += OnFire; - lookAction.performed += OnLook; - - gameplayActions["fire"].performed += OnFire; - } - - void OnEnable() - { - fireAction.Enable(); - lookAction.Enable(); - - gameplayActions.Enable(); - } - - void OnDisable() - { - fireAction.Disable(); - lookAction.Disable(); - - gameplayActions.Disable(); - } -} -``` +When you use this workflow, the serialised action configurations are stored with the parent GameObject as part of the scene, opposite to being serialised with an Action Asset. This can be useful if you want to bundle the control bindings and behaviour together in a single monobehaviour or prefab, so it can be distributed together. However, this can also make it harder to organize your full set of control bindings if they are distributed across multiple prefabs or scenes. ### Loading Actions from JSON @@ -174,7 +135,13 @@ Any action that you create in this way during Play mode do not persist in the In ## Enabling actions -Actions defined in the [Input Actions editor](ActionsEditor.md) are enabled by default and ready to use. For actions defined elsewhere, such as in your own code or in Action Assets, they begin in a disabled state, and you must enable them before they will respond to input. You can enable them individually, or as a group by enabling the Action Map which contains them. +Actions have an **enabled** state, meaning you can enable or disable them to suit different situations. + +If you have an Action Asset assigned as [project-wide](./ProjectWideActions.md), the actions it contains are enabled by default and ready to use. + +For actions defined elsewhere, such as in an Action Asset not assigned as project-wide, or defined your own code, they begin in a disabled state, and you must enable them before they will respond to input. + +You can enable actions individually, or as a group by enabling the Action Map which contains them. ```CSharp // Enable a single action. diff --git a/Packages/com.unity.inputsystem/Documentation~/ActionsEditor.md b/Packages/com.unity.inputsystem/Documentation~/ActionsEditor.md index 19b1ac53dc..2ce6caa193 100644 --- a/Packages/com.unity.inputsystem/Documentation~/ActionsEditor.md +++ b/Packages/com.unity.inputsystem/Documentation~/ActionsEditor.md @@ -1,29 +1,31 @@ --- uid: input-system-configuring-input --- -# Configuring Input +# Configuring Input with the Actions Editor -The **Input Actions Editor** allows you to configure [Input Actions](Actions.md) and their associated [Bindings](ActionBindings.md) and [Control Schemes](ActionBindings.md#control-schemes). +The **Input Actions Editor** allows you to edit [Action Assets](ActionAssets.md), which contain a saved configuration of [Input Actions](Actions.md) and their associated [Bindings](ActionBindings.md). -Open the Input Actions settings by going to **Edit** > **Project Settings** > **Input System Package** > **Input Actions** +It allows you to group collections of Actions into [Action Maps](ActionsEditor.html#configure-action-maps), which represent different input scenarios in your project (such as UI navigation, gameplay, etc.) -![image alt text](./Images/ProjectSettingsInputActions.png) -*The Input Actions editor in the Project Settings window* +It also alows you to define [Control Schemes](ActionBindings.md#control-schemes) which are a way to enable or disable a set of devices, or respond to which type of device is being used. This is often useful if you want to customise your UI based on whether your users are using mouse, keyboard, or gamepad as their chosen input. -The Input Action editor is divided into three panels (marked A, B & C above). +### Action Assets and Project-Wide Actions -### The default Actions +The typical workflow for most projects is to have a single Action Asset, which is assigned as the **project-wide actions**. If you have not yet created and assigned an Actions Asset as the project-wide actions, the recommended workflow is to do this first. Read more about [project-wide actions](ProjectWideActions.md). -The Input System comes pre-configured with some default Actions such as "Move", "Jump", and more, which suit many common app and game scenarios. They are configured to read input most types of input controller such as Keyboard, Mouse, Gamepad, Touchscreen and XR. +### Opening the Actions Editor -When you first open the Input Actions Editor, you can see the default action maps and actions displayed. +The **Input Actions Editor** is an editor window displayed when you open an Action Asset by double-clicking it. -These default actions mean that in many cases, you can start scripting with the Input System without any configuration by referring to the names of the default actions that are already configured for you. You can also rename and reconfigure the default actions, or delete these default configurations to suit your needs. +It is also displayed in the Project Settings window under **Edit** > **Project Settings** > **Input System Package** if you have an Action Asset assigned as project-wide. -If you’d like to delete all the default actions so that you can start from an empty configuration, you don’t need to delete the individual actions one-by-one. You can delete the default Action Maps, which deletes all the Actions contained in those maps in one go. +![image alt text](./Images/ActionsEditorCallout.png) +*The Input Actions editor, displaying the default actions* ### The Actions Editor panels +The Input Actions editor is divided into three panels (marked A, B & C above). + |Name|Description| |-|-| |**(A) Action Maps**|Displays the list of currently defined Action Maps. Each Action Map is a collection of Actions that you can enable or disable together as a group.| @@ -43,17 +45,48 @@ If you’d like to delete all the default actions so that you can start from an * To rename an existing Action, either long-click the name, or right-click the Action Map and select __Rename__ from the context menu. * To delete an existing Action, either right-click it and select __Delete__ from the context menu. * To duplicate an existing Action, either right-click it and select __Duplicate__ from the context menu. +* + + +## Action type and Control type If you select an Action, you can edit its properties in the right-hand pane of the window: ![Action Properties](Images/ActionProperties.png) -### Editing Bindings +#### Action Type + +The Action Type setting allows to to select between **Button**, **Value** or **PassThrough**. + +These options relate to whether this action should represent a discrete on/off button-style interaction or a value that can change over time while the control is being used. + +For device controls such as keyboard keys, mouse clicks, or gamepad buttons, select **Button**. For device controls such as mouse movement, a joystick or gamepad stick, or device orientation that provide continuously changing input over a period of time, select **Value**. + +The Button and Value types of action also provides data about the action such as whether it has started and stopped, and conflict resolution in situations where multiple bindings are mapped to the same action. + +The third option, **PassThrough**, is also a value type, and as such is suitable for the same types of device controls as value. The difference is that actions set to PassThrough only provide basic information about the values incoming from the device controls bound to it, and does not provide the extra data relating to the phase of the action, nor does it perform conflict resolution in the case of multiple controls mapped to the same action. + +For more detail about how these types work, see [action types](RespondingToActions.html#action-types) and [default interactions](Interactions.html#default-interaction). + +#### Control Type + +The Control Type setting allows you to select the type of control expected by the action. This limits the controls shown when setting up bindings in the UI and also limits which contols can be bound interactively to the action. + +For example, if you select **2D axis**, only those controls that can supply a 2D vector as value are available as options for the binding control path. + +There are more specific control types available which futher filter the available bindings, such as "Stick", "Dpad" or "Touch". If you select one of these control types, the list of available controls is further limited to only those controls of those specific types when you select a binding for your action (see directly below). + +### Bindings * To add a new Binding, select the Add (+) icon on the action you want to add it to, and select the binding type from the menu that appears. * To delete an existing Binding, either right-click it and select __Delete__ from the context menu. * To duplicate an existing Binding, either right-click it and select __Duplicate__ from the context menu. +You can add multiple bindings to an action, which is generally useful for supporting multiple types of input device. For example, in the default set of actions, the "Move" action has a binding to the left gamepad stick and the WSAD keys, which means input through any of these bindings will perform the action. + +![The default "move" action with its multiple bindings highlighted](./Images/ActionWithMultipleBindings.png)
+_The default "Move" action in the Actions Editor window, displaying the multiple bindings associated with it._ + If you select a Binding, you can edit its properties in the right-hand pane of the window: ![Binding Properties](Images/BindingProperties.png) diff --git a/Packages/com.unity.inputsystem/Documentation~/Concepts.md b/Packages/com.unity.inputsystem/Documentation~/Concepts.md index 49399f36eb..b36cd4fcb0 100644 --- a/Packages/com.unity.inputsystem/Documentation~/Concepts.md +++ b/Packages/com.unity.inputsystem/Documentation~/Concepts.md @@ -13,6 +13,7 @@ This page introduces the basic concepts that relate to working with the Input Sy |[**Input Device**](SupportedDevices.html)| Often referred to just as a "**device**" within the context of input. A physical piece of hardware, such as a keyboard, gamepad, mouse, or touchscreen which allows the user to send input into Unity.| |[**Control**](Controls.html)|The separate individual parts of an input device which each send input values into Unity. For example, a gamepad’s **controls** comprise multiple buttons, sticks and triggers, and a mouse’s controls include the two X and Y sensors on the underside, and the various buttons and scroll wheels on the top side.| |[**Action**](Actions.html)| Actions are a high-level concept that describe individual things that a user might want to do in your game or app, such as "Jump" within a game, or "Select" in an on-screen UI. They are things a user can do in your game or app as a result of input, regardless of what device or control they use to perform it. Actions generally have conceptual names that you choose to suit your project, and should usually be verbs. For example "Run", "Jump" "Crouch", "Use", "Start", "Quit".| -|**Action Map**| Action Maps allow you to organise Actions into groups which represent specific situations where a set of actions make sense together. You can simultaneously enable or disable all Actions in an action map, so it is useful to group Actions in Action Maps by the context in which they are relevant. For example, you might have one action map for controlling a player, and another for interacting with your game's UI.| +|[**Action Map**](ActionsEditor.html#configure-action-maps) | Action Maps allow you to organise Actions into groups which represent specific situations where a set of actions make sense together. You can simultaneously enable or disable all Actions in an action map, so it is useful to group Actions in Action Maps by the context in which they are relevant. For example, you might have one action map for controlling a player, and another for interacting with your game's UI.| |[**Binding**](ActionBindings.html)| A connection defined between an **Action** and specific device controls. For example, your "Move" action might have bindings to the arrow keys and WSAD keys on the keyboard, and the left stick on a joypad, and the primary 2D axis on a VR controller. Multiple bindings like this means your game can accept cross-platform input. | -|**Action Reference**| A reference in your script to an Input Action. Once you have a reference to an action, you can either read the current value or state of the action (also known as "polling"), or set up a callback to call your own method when actions are performed.| +|[**Your Action Code**](RespondingToActions.md)| The part of your script which is executed based on the actions you have configured. In your code, you can use references to actions to either read the current value or state of the action (also known as "polling"), or set up a callback to call your own method when actions are performed.| +|[**Action Asset**](ActionAssets.md) | An asset type which contains a saved configuration of Action Maps, Actions and Bindings. You can specify one Action Asset in your project as the [project-wide actions](ProjectWideActions.md), which allows you to easily reference those actions in code by using [`InputSystem.actions`](../api/UnityEngine.InputSystem.InputSystem.html). | diff --git a/Packages/com.unity.inputsystem/Documentation~/Devices.md b/Packages/com.unity.inputsystem/Documentation~/Devices.md index a6e070a9b2..53d87bba7a 100644 --- a/Packages/com.unity.inputsystem/Documentation~/Devices.md +++ b/Packages/com.unity.inputsystem/Documentation~/Devices.md @@ -183,7 +183,7 @@ If the application is configured to run while in the background (that is, not ha If the application is configured this way to keep running while in the background, the player loop and thus the Input System, too, will keep running even when the application does not have focus. What happens with respect to input then depends on two factors: 1. On the ability of individual devices to receive input while the application is not running in the foreground. This is only supported by a small subset of devices and platforms. VR devices ([`TrackedDevice`](../api/UnityEngine.InputSystem.TrackedDevice.html)) such as HMDs and VR controllers generally support this.

To find out whether a specific device supports this, you can query the [`InputDevice.canRunInBackground`](../api/UnityEngine.InputSystem.InputDevice.html#UnityEngine_InputSystem_InputDevice_canRunInBackground) property. This property can also be forced to true or false via a Device's [layout](Layouts.md#control-items). -2. On two settings you can find in the project-wide [Input Settings](Settings.md). Specifically, [`InputSettings.backgroundBehavior`](../api/UnityEngine.InputSystem.InputSettings.html#UnityEngine_InputSystem_InputSettings_backgroundBehavior):
![Background Behavior Setting](Images/BackgroundBehavior.png)
and [`InputSettings.editorInputBehaviorInPlayMode`](../api/UnityEngine.InputSystem.InputSettings.html#UnityEngine_InputSystem_InputSettings_editorInputBehaviorInPlayMode):
![Play Mode Input Behavior](Images/PlayModeInputBehavior.png)
The table below shows a detailed breakdown of how input behaviors vary based on these two settings and in relation to the `Run In Background` player setting in Unity. +2. On two settings you can find in the project-wide [Input Settings](Settings.md). Specifically, [`InputSettings.backgroundBehavior`](../api/UnityEngine.InputSystem.InputSettings.html#UnityEngine_InputSystem_InputSettings_backgroundBehavior) and [`InputSettings.editorInputBehaviorInPlayMode`](../api/UnityEngine.InputSystem.InputSettings.html#UnityEngine_InputSystem_InputSettings_editorInputBehaviorInPlayMode). The table below shows a detailed breakdown of how input behaviors vary based on these two settings and in relation to the `Run In Background` player setting in Unity. >__Note__: [`InputDevice.canRunInBackground`](../api/UnityEngine.InputSystem.InputDevice.html#UnityEngine_InputSystem_InputDevice_canRunInBackground) is overridden by the editor in certain situations (see table below). In general, the value of the property does not have to be the same between the editor and the player and depends on the specific platform and device. diff --git a/Packages/com.unity.inputsystem/Documentation~/HowDoI.md b/Packages/com.unity.inputsystem/Documentation~/HowDoI.md index 0c0e462dbf..d0490f0546 100644 --- a/Packages/com.unity.inputsystem/Documentation~/HowDoI.md +++ b/Packages/com.unity.inputsystem/Documentation~/HowDoI.md @@ -5,6 +5,13 @@ uid: input-system-how-do-i A collection of frequently asked questions, and where to find their answers in the documentation. +> **Note:** +> +> If you're new to the Input System and have landed on this page looking for documentation, it's best to read the [QuickStart Guide](QuickStartGuide.md), and the [Concepts](Concepts.md) and [Workflows](Workflows.md) pages, so that you can make sure you're choosing the best workflow for your project's input requirements. +> +> This is because there are a number of different ways to read input using the Input System, and many of the answers on this page give you the quickest but least flexible solution, and may not be suitable for a project with more complex requirements. + + How do I...? - [check if a specific key or button was pressed this frame?](../api/UnityEngine.InputSystem.Controls.ButtonControl.html#UnityEngine_InputSystem_Controls_ButtonControl_wasPressedThisFrame) diff --git a/Packages/com.unity.inputsystem/Documentation~/Images/ActionWithMultipleBindings.png b/Packages/com.unity.inputsystem/Documentation~/Images/ActionWithMultipleBindings.png new file mode 100644 index 0000000000..5f48995f45 Binary files /dev/null and b/Packages/com.unity.inputsystem/Documentation~/Images/ActionWithMultipleBindings.png differ diff --git a/Packages/com.unity.inputsystem/Documentation~/Images/ActionsEditor.png b/Packages/com.unity.inputsystem/Documentation~/Images/ActionsEditor.png new file mode 100644 index 0000000000..c8108790d6 Binary files /dev/null and b/Packages/com.unity.inputsystem/Documentation~/Images/ActionsEditor.png differ diff --git a/Packages/com.unity.inputsystem/Documentation~/Images/ActionsEditorCallout.png b/Packages/com.unity.inputsystem/Documentation~/Images/ActionsEditorCallout.png new file mode 100644 index 0000000000..d33ac792c4 Binary files /dev/null and b/Packages/com.unity.inputsystem/Documentation~/Images/ActionsEditorCallout.png differ diff --git a/Packages/com.unity.inputsystem/Documentation~/Images/Add2DVectorComposite.png b/Packages/com.unity.inputsystem/Documentation~/Images/Add2DVectorComposite.png index 8e89ffaae9..e2fefab19a 100644 Binary files a/Packages/com.unity.inputsystem/Documentation~/Images/Add2DVectorComposite.png and b/Packages/com.unity.inputsystem/Documentation~/Images/Add2DVectorComposite.png differ diff --git a/Packages/com.unity.inputsystem/Documentation~/Images/AddDevicesNotListedInSupportedDevices.png b/Packages/com.unity.inputsystem/Documentation~/Images/AddDevicesNotListedInSupportedDevices.png index aeeac2dd5c..2a16926e77 100644 Binary files a/Packages/com.unity.inputsystem/Documentation~/Images/AddDevicesNotListedInSupportedDevices.png and b/Packages/com.unity.inputsystem/Documentation~/Images/AddDevicesNotListedInSupportedDevices.png differ diff --git a/Packages/com.unity.inputsystem/Documentation~/Images/AddSupportedDevice.png b/Packages/com.unity.inputsystem/Documentation~/Images/AddSupportedDevice.png deleted file mode 100644 index 7fab7c2864..0000000000 Binary files a/Packages/com.unity.inputsystem/Documentation~/Images/AddSupportedDevice.png and /dev/null differ diff --git a/Packages/com.unity.inputsystem/Documentation~/Images/BackgroundBehavior.png b/Packages/com.unity.inputsystem/Documentation~/Images/BackgroundBehavior.png deleted file mode 100644 index 6a6e32a256..0000000000 Binary files a/Packages/com.unity.inputsystem/Documentation~/Images/BackgroundBehavior.png and /dev/null differ diff --git a/Packages/com.unity.inputsystem/Documentation~/Images/ConceptsOverview.png b/Packages/com.unity.inputsystem/Documentation~/Images/ConceptsOverview.png index 03a2670411..752734180d 100644 Binary files a/Packages/com.unity.inputsystem/Documentation~/Images/ConceptsOverview.png and b/Packages/com.unity.inputsystem/Documentation~/Images/ConceptsOverview.png differ diff --git a/Packages/com.unity.inputsystem/Documentation~/Images/CreateSettingsAsset.png b/Packages/com.unity.inputsystem/Documentation~/Images/CreateSettingsAsset.png new file mode 100644 index 0000000000..7b86203b03 Binary files /dev/null and b/Packages/com.unity.inputsystem/Documentation~/Images/CreateSettingsAsset.png differ diff --git a/Packages/com.unity.inputsystem/Documentation~/Images/FireActionInputAsset.png b/Packages/com.unity.inputsystem/Documentation~/Images/FireActionInputAsset.png deleted file mode 100644 index 612c38bc78..0000000000 Binary files a/Packages/com.unity.inputsystem/Documentation~/Images/FireActionInputAsset.png and /dev/null differ diff --git a/Packages/com.unity.inputsystem/Documentation~/Images/FireActionInputAssetInspector.png b/Packages/com.unity.inputsystem/Documentation~/Images/FireActionInputAssetInspector.png index 8cb1543b4a..8a7189f54a 100644 Binary files a/Packages/com.unity.inputsystem/Documentation~/Images/FireActionInputAssetInspector.png and b/Packages/com.unity.inputsystem/Documentation~/Images/FireActionInputAssetInspector.png differ diff --git a/Packages/com.unity.inputsystem/Documentation~/Images/FireActionOldInputManager.png b/Packages/com.unity.inputsystem/Documentation~/Images/FireActionOldInputManager.png deleted file mode 100644 index 1f53531b42..0000000000 Binary files a/Packages/com.unity.inputsystem/Documentation~/Images/FireActionOldInputManager.png and /dev/null differ diff --git a/Packages/com.unity.inputsystem/Documentation~/Images/InputActionsSettingsMoreMenu.png b/Packages/com.unity.inputsystem/Documentation~/Images/InputActionsSettingsMoreMenu.png new file mode 100644 index 0000000000..08194b05bc Binary files /dev/null and b/Packages/com.unity.inputsystem/Documentation~/Images/InputActionsSettingsMoreMenu.png differ diff --git a/Packages/com.unity.inputsystem/Documentation~/Images/InputSettings.png b/Packages/com.unity.inputsystem/Documentation~/Images/InputSettings.png index 19917f47b6..6ba72a2713 100644 Binary files a/Packages/com.unity.inputsystem/Documentation~/Images/InputSettings.png and b/Packages/com.unity.inputsystem/Documentation~/Images/InputSettings.png differ diff --git a/Packages/com.unity.inputsystem/Documentation~/Images/InputSettingsNoProjectWideAsset.png b/Packages/com.unity.inputsystem/Documentation~/Images/InputSettingsNoProjectWideAsset.png new file mode 100644 index 0000000000..2ceee3b8c5 Binary files /dev/null and b/Packages/com.unity.inputsystem/Documentation~/Images/InputSettingsNoProjectWideAsset.png differ diff --git a/Packages/com.unity.inputsystem/Documentation~/Images/InputSystemActionsAsset.png b/Packages/com.unity.inputsystem/Documentation~/Images/InputSystemActionsAsset.png new file mode 100644 index 0000000000..6d75588105 Binary files /dev/null and b/Packages/com.unity.inputsystem/Documentation~/Images/InputSystemActionsAsset.png differ diff --git a/Packages/com.unity.inputsystem/Documentation~/Images/MyComponentFireAction.png b/Packages/com.unity.inputsystem/Documentation~/Images/MyComponentFireAction.png deleted file mode 100644 index 7c0c2cc17a..0000000000 Binary files a/Packages/com.unity.inputsystem/Documentation~/Images/MyComponentFireAction.png and /dev/null differ diff --git a/Packages/com.unity.inputsystem/Documentation~/Images/MyPlayerActionEvents.png b/Packages/com.unity.inputsystem/Documentation~/Images/MyPlayerActionEvents.png index 23b025a27d..77ecbe70a4 100644 Binary files a/Packages/com.unity.inputsystem/Documentation~/Images/MyPlayerActionEvents.png and b/Packages/com.unity.inputsystem/Documentation~/Images/MyPlayerActionEvents.png differ diff --git a/Packages/com.unity.inputsystem/Documentation~/Images/PlayModeInputBehavior.png b/Packages/com.unity.inputsystem/Documentation~/Images/PlayModeInputBehavior.png deleted file mode 100644 index 5fd8ac9b93..0000000000 Binary files a/Packages/com.unity.inputsystem/Documentation~/Images/PlayModeInputBehavior.png and /dev/null differ diff --git a/Packages/com.unity.inputsystem/Documentation~/Images/PlayerInput.png b/Packages/com.unity.inputsystem/Documentation~/Images/PlayerInput.png index dcb726e0b5..108fd1d5ca 100644 Binary files a/Packages/com.unity.inputsystem/Documentation~/Images/PlayerInput.png and b/Packages/com.unity.inputsystem/Documentation~/Images/PlayerInput.png differ diff --git a/Packages/com.unity.inputsystem/Documentation~/Images/PlayerInputNotificationBehaviors.png b/Packages/com.unity.inputsystem/Documentation~/Images/PlayerInputNotificationBehaviors.png index 8093421852..6e52ef0c50 100644 Binary files a/Packages/com.unity.inputsystem/Documentation~/Images/PlayerInputNotificationBehaviors.png and b/Packages/com.unity.inputsystem/Documentation~/Images/PlayerInputNotificationBehaviors.png differ diff --git a/Packages/com.unity.inputsystem/Documentation~/Images/PlayerInputUserDeviceDebug.png b/Packages/com.unity.inputsystem/Documentation~/Images/PlayerInputUserDeviceDebug.png new file mode 100644 index 0000000000..6baa04229b Binary files /dev/null and b/Packages/com.unity.inputsystem/Documentation~/Images/PlayerInputUserDeviceDebug.png differ diff --git a/Packages/com.unity.inputsystem/Documentation~/Images/ProjectSettingsInputActions.png b/Packages/com.unity.inputsystem/Documentation~/Images/ProjectSettingsInputActions.png deleted file mode 100644 index 203a76cc23..0000000000 Binary files a/Packages/com.unity.inputsystem/Documentation~/Images/ProjectSettingsInputActions.png and /dev/null differ diff --git a/Packages/com.unity.inputsystem/Documentation~/Images/ProjectSettingsInputActionsSimpleShot.png b/Packages/com.unity.inputsystem/Documentation~/Images/ProjectSettingsInputActionsSimpleShot.png index 05ccb6f951..8fc7c50fb8 100644 Binary files a/Packages/com.unity.inputsystem/Documentation~/Images/ProjectSettingsInputActionsSimpleShot.png and b/Packages/com.unity.inputsystem/Documentation~/Images/ProjectSettingsInputActionsSimpleShot.png differ diff --git a/Packages/com.unity.inputsystem/Documentation~/Images/ProjectSettingsInputActionsUIActionMap.png b/Packages/com.unity.inputsystem/Documentation~/Images/ProjectSettingsInputActionsUIActionMap.png new file mode 100644 index 0000000000..2d9f7bda4d Binary files /dev/null and b/Packages/com.unity.inputsystem/Documentation~/Images/ProjectSettingsInputActionsUIActionMap.png differ diff --git a/Packages/com.unity.inputsystem/Documentation~/Images/SupportedDevices.png b/Packages/com.unity.inputsystem/Documentation~/Images/SupportedDevices.png index 016c500679..4251a7c22c 100644 Binary files a/Packages/com.unity.inputsystem/Documentation~/Images/SupportedDevices.png and b/Packages/com.unity.inputsystem/Documentation~/Images/SupportedDevices.png differ diff --git a/Packages/com.unity.inputsystem/Documentation~/Images/UpdateMode.png b/Packages/com.unity.inputsystem/Documentation~/Images/UpdateMode.png deleted file mode 100644 index e4c142a64a..0000000000 Binary files a/Packages/com.unity.inputsystem/Documentation~/Images/UpdateMode.png and /dev/null differ diff --git a/Packages/com.unity.inputsystem/Documentation~/Images/Workflow-EmbeddedActionsInspector.png b/Packages/com.unity.inputsystem/Documentation~/Images/Workflow-EmbeddedActionsInspector.png index 474b686494..8d32fc9b88 100644 Binary files a/Packages/com.unity.inputsystem/Documentation~/Images/Workflow-EmbeddedActionsInspector.png and b/Packages/com.unity.inputsystem/Documentation~/Images/Workflow-EmbeddedActionsInspector.png differ diff --git a/Packages/com.unity.inputsystem/Documentation~/Images/iOSSettings.png b/Packages/com.unity.inputsystem/Documentation~/Images/iOSSettings.png deleted file mode 100644 index 71dabd764d..0000000000 Binary files a/Packages/com.unity.inputsystem/Documentation~/Images/iOSSettings.png and /dev/null differ diff --git a/Packages/com.unity.inputsystem/Documentation~/Interactions.md b/Packages/com.unity.inputsystem/Documentation~/Interactions.md index 4698dd985c..56689942a1 100644 --- a/Packages/com.unity.inputsystem/Documentation~/Interactions.md +++ b/Packages/com.unity.inputsystem/Documentation~/Interactions.md @@ -35,7 +35,7 @@ An Interaction has a set of distinct phases it can go through in response to rec |`Waiting`|The Interaction is waiting for input.| |`Started`|The Interaction has been started (that is, it received some of its expected input), but is not complete yet.| |`Performed`|The Interaction is complete.| -|`Canceled`|The Interaction was interrupted and aborted. For example, the user pressed and then released a button before the minimum time required for a [hold Interaction](#hold) to complete.| +|`Canceled`|The Interaction was interrupted and aborted. For example, the user pressed and then released a button before the minimum time required for a [hold Interaction](#hold) to complete.| Not every Interaction triggers every phase, and the pattern in which specific Interactions trigger phases depends on the Interaction type. @@ -104,7 +104,7 @@ You can install Interactions on [Bindings](ActionBindings.md) or [Actions](Actio When you create Bindings for your [Actions](Actions.md), you can choose to add Interactions to the Bindings. -If you're using [project-wide actions](ActionsEditor.md), or [Input Action Assets](ActionAssets.md), you can add any Interaction to your Bindings in the Input Action editor. Once you [created some Bindings](ActionsEditor.md#editing-bindings), select the Binding you want to add Interactions to, so that the right pane of the window shows the properties for that Binding. Next, click on the plus icon on the __Interactions__ foldout to open a list of all available Interactions types. Choose an Interaction type to add an Interaction instance of that type. The Interaction now appears in the __Interactions__ foldout. If the Interaction has any parameters, you can now edit them here as well: +If you're using [project-wide actions](ActionsEditor.md), or [Input Action Assets](ActionAssets.md), you can add any Interaction to your Bindings in the Input Action editor. Once you [created some Bindings](ActionsEditor.md#bindings), select the Binding you want to add Interactions to, so that the right pane of the window shows the properties for that Binding. Next, click on the plus icon on the __Interactions__ foldout to open a list of all available Interactions types. Choose an Interaction type to add an Interaction instance of that type. The Interaction now appears in the __Interactions__ foldout. If the Interaction has any parameters, you can now edit them here as well: ![Binding Processors](Images/BindingProcessors.png) @@ -163,7 +163,7 @@ If you haven't specifically added an Interaction to a Binding or its Action, the |__Callback__|[`InputActionType.Value`](RespondingToActions.md#value)|[`InputActionType.Button`](RespondingToActions.md#button)|[`InputActionType.PassThrough`](RespondingToActions.md#pass-through)| |-----------|-------------|------------|-----------------| -|[`started`](../api/UnityEngine.InputSystem.InputAction.html#UnityEngine_InputSystem_InputAction_started)|Control(s) changed value away from the default value.|Button started being pressed but has not necessarily crossed the press threshold yet.|First Control actuation after Action was enabled.| +|[`started`](../api/UnityEngine.InputSystem.InputAction.html#UnityEngine_InputSystem_InputAction_started)|Control(s) changed value away from the default value.|Button started being pressed but has not necessarily crossed the press threshold yet.|not used| |[`performed`](../api/UnityEngine.InputSystem.InputAction.html#UnityEngine_InputSystem_InputAction_performed)|Control(s) changed value.|Button was pressed to at least the button [press threshold](../api/UnityEngine.InputSystem.InputSettings.html#UnityEngine_InputSystem_InputSettings_defaultButtonPressPoint).|Control changed value.| |[`canceled`](../api/UnityEngine.InputSystem.InputAction.html#UnityEngine_InputSystem_InputAction_canceled)|Control(s) are no longer actuated.|Button was released. If the button was pressed above the press threshold, the button has now fallen to or below the [release threshold](../api/UnityEngine.InputSystem.InputSettings.html#UnityEngine_InputSystem_InputSettings_buttonReleaseThreshold). If the button was never fully pressed, the button is now back to completely unpressed.|Action is disabled.| diff --git a/Packages/com.unity.inputsystem/Documentation~/Migration.md b/Packages/com.unity.inputsystem/Documentation~/Migration.md index 75bc10dcd2..67a6fd01f2 100644 --- a/Packages/com.unity.inputsystem/Documentation~/Migration.md +++ b/Packages/com.unity.inputsystem/Documentation~/Migration.md @@ -1,13 +1,21 @@ --- uid: input-system-migration --- -# Migrating from the old input system +# Migrating from the old Input Manager -This guide provides a list of APIs in `UnityEngine.Input` (and other related APIs in `UnityEngine`) and their corresponding APIs in the new Input System. Not all APIs have a corresponding version in the new API yet. +This page is provided to help you match input-related API from Unity's old, built-in input (known as the [Input Manager](https://docs.unity3d.com/Manual/class-InputManager.html)) to the corresponding API in the new Input System package. ->__Note__: All of the new APIs are in the `UnityEngine.InputSystem` namespace. The namespace is omitted here for brevity. `UnityEngine.InputSystem` is referenced in full for easy disambiguation. +## Read the introductory documentation first -Note that it is possible to have code for the old and the new input system at the same time using conditional compilation. When the new input system is enabled in the player preferences (see [here](./Installation.md#enabling-the-new-input-backends)), the `ENABLE_INPUT_SYSTEM` preprocessor directive is available. +If you're new to the Input System package and have landed on this page looking for documentation, it's best to read the [QuickStart Guide](QuickStartGuide.md), and the [Concepts](Concepts.md) and [Workflows](Workflows.md) pages from the introduction section of the documentation, so that you can make sure you're choosing the best workflow for your project's input requirements. + +This is because there are a number of different ways to read input using the Input System, and many of the directly corresponding API methods on this page might give you the quickest but least flexible solution, and may not be suitable for a project with more complex requirements. + +### Which system is enabled? + +When installing the new Input System, Unity prompts you to enable the new input system and disable the old one. You can change this setting at any time later, by going to **Edit > Project Settings > Player > Other Settings > Active Input Handling**, [as described here](./Installation.md#enabling-the-new-input-backends). + +There are scripting symbols defined which allow you to use conditional compilation based on which system is enabled, as shown in the example below. ```CSharp #if ENABLE_INPUT_SYSTEM @@ -17,25 +25,19 @@ Note that it is possible to have code for the old and the new input system at th #if ENABLE_LEGACY_INPUT_MANAGER // Old input backends are enabled. #endif - - // NOTE: Both can be true at the same time as it is possible to select "Both" - // under "Active Input Handling". ``` -## [`UnityEngine.Input`](https://docs.unity3d.com/ScriptReference/Input.html) +> **Note:** It is possible to have both systems enabled at the same time, in which case both sets of code in the example above above will be active. -### [`UnityEngine.Input.acceleration`](https://docs.unity3d.com/ScriptReference/Input-acceleration.html) +## List of corresponding API in the old Input Manager new Input System package -Use [`Accelerometer.current.acceleration.ReadValue()`](../api/UnityEngine.InputSystem.Accelerometer.html). +All of the new APIs listed below are in the `UnityEngine.InputSystem` namespace. The namespace is omitted here for brevity. `UnityEngine.InputSystem` is referenced in full for easy disambiguation. -### [`UnityEngine.Input.accelerationEventCount`](https://docs.unity3d.com/ScriptReference/Input-accelerationEventCount.html) - -See [`UnityEngine.Input.accelerationEvents`](#accelerationEvents). - -### [`UnityEngine.Input.accelerationEvents`](https://docs.unity3d.com/ScriptReference/Input-accelerationEvents.html) - -Acceleration events aren't made available separately from other input events. The following code traces all input events on the [`Accelerometer.current`](../api/UnityEngine.InputSystem.Accelerometer.html) device. +|Input Manager (Old)|Input System (New)| +|--|--| +[`Input.acceleration`](https://docs.unity3d.com/ScriptReference/Input-acceleration.html)|[`Accelerometer.current.acceleration.ReadValue()`](../api/UnityEngine.InputSystem.Accelerometer.html). +[`Input.accelerationEventCount`](https://docs.unity3d.com/ScriptReference/Input-accelerationEventCount.html)
[`Input.accelerationEvents`](https://docs.unity3d.com/ScriptReference/Input-accelerationEvents.html)|Acceleration events aren't made available separately from other input events. The following code traces all input events on the [`Accelerometer.current`](../api/UnityEngine.InputSystem.Accelerometer.html) device. ```CSharp private InputEventTrace trace; @@ -56,39 +58,17 @@ Acceleration events aren't made available separately from other input events. Th trace.Clear(); } ``` - -### [`UnityEngine.Input.anyKey`](https://docs.unity3d.com/ScriptReference/Input-anyKey.html) - -Use [`InputSystem.onAnyButtonPress`](../api/UnityEngine.InputSystem.InputSystem.html#UnityEngine_InputSystem_InputSystem_onAnyButtonPress). - -```CSharp -InputSystem.onAnyButtonPress - .CallOnce(ctrl => Debug.Log($"Button {ctrl} pressed!")); -``` - -### [`UnityEngine.Input.anyKeyDown`](https://docs.unity3d.com/ScriptReference/Input-anyKeyDown.html) - -Use [`Keyboard.current.anyKey.wasUpdatedThisFrame`](../api/UnityEngine.InputSystem.Keyboard.html) - -### [`UnityEngine.Input.backButtonLeavesApp`](https://docs.unity3d.com/ScriptReference/Input-backButtonLeavesApp.html) - -No corresponding API yet. - -### [`UnityEngine.Input.compass`](https://docs.unity3d.com/ScriptReference/Input-compass.html) - -No corresponding API yet. - -### [`UnityEngine.Input.compensateSensors`](https://docs.unity3d.com/ScriptReference/Input-compensateSensors.html) - -Use [`InputSystem.settings.compensateForScreenOrientation`](../api/UnityEngine.InputSystem.InputSettings.html#UnityEngine_InputSystem_InputSettings_compensateForScreenOrientation). - -### [`UnityEngine.Input.compositionCursorPos`](https://docs.unity3d.com/ScriptReference/Input-compositionCursorPos.html) - -Use [`Keyboard.current.SetIMECursorPosition(myPosition)`](../api/UnityEngine.InputSystem.Keyboard.html#UnityEngine_InputSystem_Keyboard_SetIMECursorPosition_UnityEngine_Vector2_). - -### [`UnityEngine.Input.compositionString`](https://docs.unity3d.com/ScriptReference/Input-compositionString.html) - -Subscribe to the [`Keyboard.onIMECompositionChange`](../api/UnityEngine.InputSystem.Keyboard.html#UnityEngine_InputSystem_Keyboard_onIMECompositionChange) event: +|Input Manager (Old)|Input System (New)| +|--|--| +[`Input.anyKey`](https://docs.unity3d.com/ScriptReference/Input-anyKey.html)|[`InputSystem.onAnyButtonPress`](../api/UnityEngine.InputSystem.InputSystem.html#UnityEngine_InputSystem_InputSystem_onAnyButtonPress)
Example:
`InputSystem.onAnyButtonPress.CallOnce(ctrl => Debug.Log($"Button {ctrl} pressed!"));` +|Input Manager (Old)|Input System (New)| +|--|--| +[`Input.anyKeyDown`](https://docs.unity3d.com/ScriptReference/Input-anyKeyDown.html)|[`Keyboard.current.anyKey.wasUpdatedThisFrame`](../api/UnityEngine.InputSystem.Keyboard.html) +[`Input.backButtonLeavesApp`](https://docs.unity3d.com/ScriptReference/Input-backButtonLeavesApp.html)|No corresponding API yet. +[`Input.compass`](https://docs.unity3d.com/ScriptReference/Input-compass.html)|No corresponding API yet. +[`Input.compensateSensors`](https://docs.unity3d.com/ScriptReference/Input-compensateSensors.html)|[`InputSystem.settings.compensateForScreenOrientation`](../api/UnityEngine.InputSystem.InputSettings.html#UnityEngine_InputSystem_InputSettings_compensateForScreenOrientation). +[`Input.compositionCursorPos`](https://docs.unity3d.com/ScriptReference/Input-compositionCursorPos.html)|[`Keyboard.current.SetIMECursorPosition(myPosition)`](../api/UnityEngine.InputSystem.Keyboard.html#UnityEngine_InputSystem_Keyboard_SetIMECursorPosition_UnityEngine_Vector2_) +[`Input.compositionString`](https://docs.unity3d.com/ScriptReference/Input-compositionString.html)|Subscribe to the [`Keyboard.onIMECompositionChange`](../api/UnityEngine.InputSystem.Keyboard.html#UnityEngine_InputSystem_Keyboard_onIMECompositionChange) event: ```CSharp var compositionString = ""; @@ -97,288 +77,37 @@ Subscribe to the [`Keyboard.onIMECompositionChange`](../api/UnityEngine.InputSys compositionString = composition.ToString(); }; ``` - -### [`UnityEngine.Input.deviceOrientation`](https://docs.unity3d.com/ScriptReference/Input-deviceOrientation.html) - -No corresponding API yet. - -### [`UnityEngine.Input.gyro`](https://docs.unity3d.com/ScriptReference/Input-gyro.html) - -The `UnityEngine.Gyroscope` class is replaced by multiple separate sensor Devices in the new Input System: - -* [`Gyroscope`](../api/UnityEngine.InputSystem.Gyroscope.html) to measure angular velocity. -* [`GravitySensor`](../api/UnityEngine.InputSystem.GravitySensor.html) to measure the direction of gravity. -* [`AttitudeSensor`](../api/UnityEngine.InputSystem.AttitudeSensor.html) to measure the orientation of the device. -* [`Accelerometer`](../api/UnityEngine.InputSystem.Accelerometer.html) to measure the total acceleration applied to the device. -* [`LinearAccelerationSensor`](../api/UnityEngine.InputSystem.LinearAccelerationSensor.html) to measure acceleration applied to the device, compensating for gravity. - -### [`UnityEngine.Input.gyro.attitude`](https://docs.unity3d.com/ScriptReference/Gyroscope-attitude.html) - -Use [`AttitudeSensor.current.orientation.ReadValue()`](../api/UnityEngine.InputSystem.AttitudeSensor.html). - -### [`UnityEngine.Input.gyro.enabled`](https://docs.unity3d.com/ScriptReference/Gyroscope-enabled.html) - -``` -// Get: -Gyroscope.current.enabled - -// Set: -InputSystem.EnableDevice(Gyroscope.current); -InputSystem.DisableDevice(Gyroscope.current); -``` - ->__Note__: The new Input System replaces `UnityEngine.Gyroscope` with multiple separate sensor devices. Substitute [`Gyroscope`](../api/UnityEngine.InputSystem.Gyroscope.html) with other sensors in the sample as needed. See [`UnityEngine.Input.gyro`](#gyro) section for details. - -### [`UnityEngine.Input.gyro.gravity`](https://docs.unity3d.com/ScriptReference/Gyroscope-gravity.html) - -Use [`GravitySensor.current.gravity.ReadValue()`](../api/UnityEngine.InputSystem.GravitySensor.html). - -### [`UnityEngine.Input.gyro.rotationRate`](https://docs.unity3d.com/ScriptReference/Gyroscope-rotationRate.html) - -Use [`Gyroscope.current.angularVelocity.ReadValue()`](../api/UnityEngine.InputSystem.Gyroscope.html). - -### [`UnityEngine.Input.gyro.rotationRateUnbiased`](https://docs.unity3d.com/ScriptReference/Gyroscope-rotationRateUnbiased.html) - -No corresponding API yet. - -### [`UnityEngine.Input.gyro.updateInterval`](https://docs.unity3d.com/ScriptReference/Gyroscope-updateInterval.html) - -Use [`Sensor.samplingFrequency`](../api/UnityEngine.InputSystem.Sensor.html#UnityEngine_InputSystem_Sensor_samplingFrequency): - -``` -Gyroscope.current.samplingFrequency = 1.0f / updateInterval; -``` - ->__Note__: ->* [`samplingFrequency`](../api/UnityEngine.InputSystem.Sensor.html#UnityEngine_InputSystem_Sensor_samplingFrequency) is in Hz, not in seconds as [`updateInterval`](https://docs.unity3d.com/ScriptReference/Gyroscope-updateInterval.html), so you need to divide 1 by the value. ->* The new Input System replaces `UnityEngine.Gyroscope` with multiple separate sensor devices. Substitute [`Gyroscope`](../api/UnityEngine.InputSystem.Gyroscope.html) with other sensors in the sample as needed. See [`UnityEngine.Input.gyro`](#gyro) for details. - -### [`UnityEngine.Input.gyro.userAcceleration`](https://docs.unity3d.com/ScriptReference/Gyroscope-userAcceleration.html) - -Use [`LinearAccelerationSensor.current.acceleration.acceleration.ReadValue()`](../api/UnityEngine.InputSystem.LinearAccelerationSensor.html). - -### [`UnityEngine.Input.imeCompositionMode`](https://docs.unity3d.com/ScriptReference/Input-imeCompositionMode.html) - -No corresponding API yet. - -### [`UnityEngine.Input.imeIsSelected`](https://docs.unity3d.com/ScriptReference/Input-imeIsSelected.html) - -``` -// Get: -Keyboard.current.imeSelected - -// Set: -Keyboard.current.SetIMEEnabled(true); -``` - -### [`UnityEngine.Input.inputString`](https://docs.unity3d.com/ScriptReference/Input-inputString.html) - -Subscribe to the [`Keyboard.onTextInput`](../api/UnityEngine.InputSystem.Keyboard.html#UnityEngine_InputSystem_Keyboard_onTextInput) event: - -``` -Keyboard.current.onTextInput += - character => /* ... */; -``` - -### [`UnityEngine.Input.location`](https://docs.unity3d.com/ScriptReference/Input-location.html) - -No corresponding API yet. - -### [`UnityEngine.Input.mousePosition`](https://docs.unity3d.com/ScriptReference/Input-mousePosition.html) - -Use [`Mouse.current.position.ReadValue()`](../api/UnityEngine.InputSystem.Mouse.html). - ->__Note__: Mouse simulation from touch isn't implemented yet. - -### [`UnityEngine.Input.mousePresent`](https://docs.unity3d.com/ScriptReference/Input-mousePresent.html) - -Use [`Mouse.current != null`](../api/UnityEngine.InputSystem.Mouse.html#UnityEngine_InputSystem_Mouse_current). - -### [`UnityEngine.Input.multiTouchEnabled`](https://docs.unity3d.com/ScriptReference/Input-multiTouchEnabled.html) - -No corresponding API yet. - -### [`UnityEngine.Input.simulateMouseWithTouches`](https://docs.unity3d.com/ScriptReference/Input-multiTouchEnabled.html) - -No corresponding API yet. - -### [`UnityEngine.Input.stylusTouchSupported`](https://docs.unity3d.com/ScriptReference/Input-stylusTouchSupported.html) - -No corresponding API yet. - -### [`UnityEngine.Input.touchCount`](https://docs.unity3d.com/ScriptReference/Input-touchCount.html) - -Use [`InputSystem.EnhancedTouch.Touch.activeTouches.Count`](../api/UnityEngine.InputSystem.EnhancedTouch.Touch.html#UnityEngine_InputSystem_EnhancedTouch_Touch_activeTouches) - ->__Note__: Enable enhanced touch support first by calling [`InputSystem.EnhancedTouchSupport.Enable()`](../api/UnityEngine.InputSystem.EnhancedTouch.EnhancedTouchSupport.html#UnityEngine_InputSystem_EnhancedTouch_EnhancedTouchSupport_Enable). - -### [`UnityEngine.Input.touches`](https://docs.unity3d.com/ScriptReference/Input-touches.html) - -Use [`InputSystem.EnhancedTouch.Touch.activeTouches`](../api/UnityEngine.InputSystem.EnhancedTouch.Touch.html#UnityEngine_InputSystem_EnhancedTouch_Touch_activeTouches). - ->__Note__: Enable enhanced touch support first by calling [`InputSystem.EnhancedTouch.Enable()`](../api/UnityEngine.InputSystem.EnhancedTouch.EnhancedTouchSupport.html#UnityEngine_InputSystem_EnhancedTouch_EnhancedTouchSupport_Enable). - -### [`UnityEngine.Input.touchPressureSupported`](https://docs.unity3d.com/ScriptReference/Input-touchPressureSupported.html) - -No corresponding API yet. - -### [`UnityEngine.Input.touchSupported`](https://docs.unity3d.com/ScriptReference/Input-touchSupported.html) - -Use [`Touchscreen.current != null`](../api/UnityEngine.InputSystem.Touchscreen.html#UnityEngine_InputSystem_Touchscreen_current). - -### [`UnityEngine.Input.GetAccelerationEvent`](https://docs.unity3d.com/ScriptReference/Input.GetAccelerationEvent.html) - -See [`UnityEngine.Input.accelerationEvents`](#accelerationEvents). - -### [`UnityEngine.Input.GetAxis`](https://docs.unity3d.com/ScriptReference/Input.GetAxis.html) - -[//]: # (TODO: we should probably reference PlayerInput here in addition to or instead of the manual action setups described here) - -There is no global setup that corresponds exactly to virtual axis setups in the old __Input Manager__ settings. Instead, you can create sets of [Input Actions](Actions.md) as independent Assets, or put them directly on your C# components. - -For example, if you want to recreate the following axis configuration: - -![Fire1 Action in Old Input Manager](./Images/FireActionOldInputManager.png) - -#### Option A: Put Input Actions on your component - -1. Declare one or more fields of type [`InputAction`](../api/UnityEngine.InputSystem.InputAction.html). - - ``` - public class MyComponent : MonoBehaviour - { - public InputAction fireAction; - ``` - -2. Configure a response to the Action. - ``` - void Awake() - { - fireAction.performed += ctx => Fire(); - } - - void Fire() - { - //... - } - ``` -3. Put the component on a `GameObject`. You can now configure Bindings in the Inspector window. Click the plus sign on the Bindings list to add Bindings, and double-click the Bindings to pick Controls to bind to. - - ![MyComponent fireAction](./Images/MyComponentFireAction.png) -4. Enable and disable the Action as needed. - ``` - void OnEnable() - { - fireAction.Enable(); - } - - void OnDisable() - { - fireAction.Disable(); - } - ``` - -#### Option B: Create an Input Action Asset - -1. Create an Input Action Asset (right-click in the Project browser and select __Create > Input Actions__). Give the Asset a name. -2. Double-click the Asset to open the Input Actions editor window. -3. In the __Action Maps__ column, click the plus sign to add a new Action Map. -4. Double-click the __New Action Map__ name to rename the set. Use a descriptive name, such as *gameplay*. -5. In the __Actions__ column, click the plus sign to add a new Action. -6. Double-click the Action to give it a name. -7. Add Bindings to the Action. To do this, click the plus sign on the Action and choose a Binding type from the list. -8. Select the Binding and click on the __Path__ button in the right column to pick Controls to bind to. -9. Click __Save Asset__. Your Input Action editor should now look like this: - - ![MyControls.inputactions](./Images/FireActionInputAsset.png) - -10. Check the __Generate C# Wrapper Class__ checkbox in the Inspector window for the Asset, then click __Apply__. Your Inspector should now look like this: - - ![MyControls.inputactions](./Images/FireActionInputAssetInspector.png) - -11. Add an instance of the generated C# wrapper class to your component. - ``` - public class MyComponent : MonoBehaviour - { - MyControls controls; - ``` - -12. Create the instance and hook up a response to the fire Action. - - ``` - public void Awake() - { - controls = new MyControls(); - controls.gameplay.fire.performed += ctx => Fire(); - } - ``` -13. Enable and disable the Action as appropriate. - ``` - public void OnEnable() - { - controls.Enable(); - } - - public void OnDisable() - { - controls.Disable(); - } - ``` - -#### Hints - -- To force button-like behavior on the control referenced in a Binding, add a [press Interaction](Interactions.md#press) to it. -- You can access the Control that triggered an Action from the callback. Through it, you can also query its current value. - ``` - fireAction.performed += - ctx => - { - var control = ctx.control; // Grab control. - var value = ctx.GetValue(); // Read value from control. - - // Can do control-specific checks. - var button = control as ButtonControl; - if (button != null && button.wasPressedThisFrame) - /* ... */; - } - ``` - -### [`UnityEngine.Input.GetAxisRaw`](https://docs.unity3d.com/ScriptReference/Input.GetAxisRaw.html) - -Not directly applicable. You can use [`InputControl<>.ReadUnprocessedValue()`](../api/UnityEngine.InputSystem.InputControl-1.html#UnityEngine_InputSystem_InputControl_1_ReadUnprocessedValue) to read unprocessed values from any control. - -### [`UnityEngine.Input.GetButton`](https://docs.unity3d.com/ScriptReference/Input.GetButton.html) - -Use [`InputAction.IsPressed`](../api/UnityEngine.InputSystem.InputAction.html#UnityEngine_InputSystem_InputAction_IsPressed_). - -```CSharp -if (playerInput.actions["fire"].IsPressed() && Time.time - m_LastFireTime >= kFireRate) - Fire(); -``` - -### [`UnityEngine.input.GetButtonDown`](https://docs.unity3d.com/ScriptReference/Input.GetButtonDown.html) - -Use [`InputAction.WasPressedThisFrame`](../api/UnityEngine.InputSystem.InputAction.html#UnityEngine_InputSystem_InputAction_WasPressedThisFrame_). - -```CSharp -if (playerInput.actions["fire"].WasPressedThisFrame()) - Fire(); -``` - -### [`UnityEngine.input.GetButtonUp`](https://docs.unity3d.com/ScriptReference/Input.GetButtonUp.html) - -Use [`InputAction.WasReleasedThisFrame`](../api/UnityEngine.InputSystem.InputAction.html#UnityEngine_InputSystem_InputAction_WasReleasedThisFrame_). - -```CSharp -if (playerInput.actions["fire"].WasReleasedThisFrame()) - StopFiring(); -``` - -### [`UnityEngine.Input.GetJoystickNames`](https://docs.unity3d.com/ScriptReference/Input.GetJoystickNames.html) - -There is no API that corresponds to this exactly. - -Here are various ways to discover connected Devices: +|Input Manager (Old)|Input System (New)| +|--|--| +[`Input.deviceOrientation`](https://docs.unity3d.com/ScriptReference/Input-deviceOrientation.html)|No corresponding API yet. +[`Input.gyro`](https://docs.unity3d.com/ScriptReference/Input-gyro.html)|The `UnityEngine.Gyroscope` class is replaced by multiple separate sensor Devices in the new Input System:
[`Gyroscope`](../api/UnityEngine.InputSystem.Gyroscope.html) to measure angular velocity.
[`GravitySensor`](../api/UnityEngine.InputSystem.GravitySensor.html) to measure the direction of gravity.
[`AttitudeSensor`](../api/UnityEngine.InputSystem.AttitudeSensor.html) to measure the orientation of the device.
[`Accelerometer`](../api/UnityEngine.InputSystem.Accelerometer.html) to measure the total acceleration applied to the device.
[`LinearAccelerationSensor`](../api/UnityEngine.InputSystem.LinearAccelerationSensor.html) to measure acceleration applied to the device, compensating for gravity. +[`Input.gyro.attitude`](https://docs.unity3d.com/ScriptReference/Gyroscope-attitude.html)|[`AttitudeSensor.current.orientation.ReadValue()`](../api/UnityEngine.InputSystem.AttitudeSensor.html). +[`Input.gyro.enabled`](https://docs.unity3d.com/ScriptReference/Gyroscope-enabled.html)|Get: `Gyroscope.current.enabled`
Set:
`InputSystem.EnableDevice(Gyroscope.current);`
`InputSystem.DisableDevice(Gyroscope.current);`

__Note__: The new Input System replaces `UnityEngine.Gyroscope` with multiple separate sensor devices. Substitute [`Gyroscope`](../api/UnityEngine.InputSystem.Gyroscope.html) with other sensors in the sample as needed. See the notes for `Input.gyro` above for details. +[`Input.gyro.gravity`](https://docs.unity3d.com/ScriptReference/Gyroscope-gravity.html)|[`GravitySensor.current.gravity.ReadValue()`](../api/UnityEngine.InputSystem.GravitySensor.html) +[`Input.gyro.rotationRate`](https://docs.unity3d.com/ScriptReference/Gyroscope-rotationRate.html)|[`Gyroscope.current.angularVelocity.ReadValue()`](../api/UnityEngine.InputSystem.Gyroscope.html). +[`Input.gyro.rotationRateUnbiased`](https://docs.unity3d.com/ScriptReference/Gyroscope-rotationRateUnbiased.html)|No corresponding API yet. +[`Input.gyro.updateInterval`](https://docs.unity3d.com/ScriptReference/Gyroscope-updateInterval.html)|[`Sensor.samplingFrequency`](../api/UnityEngine.InputSystem.Sensor.html#UnityEngine_InputSystem_Sensor_samplingFrequency)
Example:
`Gyroscope.current.samplingFrequency = 1.0f / updateInterval;`

__Notes__:
[`samplingFrequency`](../api/UnityEngine.InputSystem.Sensor.html#UnityEngine_InputSystem_Sensor_samplingFrequency) is in Hz, not in seconds as [`updateInterval`](https://docs.unity3d.com/ScriptReference/Gyroscope-updateInterval.html), so you need to divide 1 by the value.

The new Input System replaces `UnityEngine.Gyroscope` with multiple separate sensor devices. Substitute [`Gyroscope`](../api/UnityEngine.InputSystem.Gyroscope.html) with other sensors in the sample as needed. See the notes for `Input.gyro` above for details. +[`Input.gyro.userAcceleration`](https://docs.unity3d.com/ScriptReference/Gyroscope-userAcceleration.html)|[`LinearAccelerationSensor.current.acceleration.acceleration.ReadValue()`](../api/UnityEngine.InputSystem.LinearAccelerationSensor.html) +[`Input.imeCompositionMode`](https://docs.unity3d.com/ScriptReference/Input-imeCompositionMode.html)|No corresponding API yet. +[`Input.imeIsSelected`](https://docs.unity3d.com/ScriptReference/Input-imeIsSelected.html)|Get: `Keyboard.current.imeSelected`
Set: `Keyboard.current.SetIMEEnabled(true);` +[`Input.inputString`](https://docs.unity3d.com/ScriptReference/Input-inputString.html)|Subscribe to the [`Keyboard.onTextInput`](../api/UnityEngine.InputSystem.Keyboard.html#UnityEngine_InputSystem_Keyboard_onTextInput) event:
`Keyboard.current.onTextInput += character => /* ... */;` +[`Input.location`](https://docs.unity3d.com/ScriptReference/Input-location.html)|No corresponding API yet. +[`Input.mousePosition`](https://docs.unity3d.com/ScriptReference/Input-mousePosition.html)|[`Mouse.current.position.ReadValue()`](../api/UnityEngine.InputSystem.Mouse.html)
__Note__: Mouse simulation from touch isn't implemented yet. +[`Input.mousePresent`](https://docs.unity3d.com/ScriptReference/Input-mousePresent.html)|[`Mouse.current != null`](../api/UnityEngine.InputSystem.Mouse.html#UnityEngine_InputSystem_Mouse_current). +[`Input.multiTouchEnabled`](https://docs.unity3d.com/ScriptReference/Input-multiTouchEnabled.html)|No corresponding API yet. +[`Input.simulateMouseWithTouches`](https://docs.unity3d.com/ScriptReference/Input-multiTouchEnabled.html)|No corresponding API yet. +[`Input.stylusTouchSupported`](https://docs.unity3d.com/ScriptReference/Input-stylusTouchSupported.html)|No corresponding API yet. +[`Input.touchCount`](https://docs.unity3d.com/ScriptReference/Input-touchCount.html)|[`InputSystem.EnhancedTouch.Touch.activeTouches.Count`](../api/UnityEngine.InputSystem.EnhancedTouch.Touch.html#UnityEngine_InputSystem_EnhancedTouch_Touch_activeTouches)
__Note__: Enable enhanced touch support first by calling [`InputSystem.EnhancedTouchSupport.Enable()`](../api/UnityEngine.InputSystem.EnhancedTouch.EnhancedTouchSupport.html#UnityEngine_InputSystem_EnhancedTouch_EnhancedTouchSupport_Enable) +[`Input.touches`](https://docs.unity3d.com/ScriptReference/Input-touches.html)|[`InputSystem.EnhancedTouch.Touch.activeTouches`](../api/UnityEngine.InputSystem.EnhancedTouch.Touch.html#UnityEngine_InputSystem_EnhancedTouch_Touch_activeTouches)
__Note__: Enable enhanced touch support first by calling [`InputSystem.EnhancedTouch.Enable()`](../api/UnityEngine.InputSystem.EnhancedTouch.EnhancedTouchSupport.html#UnityEngine_InputSystem_EnhancedTouch_EnhancedTouchSupport_Enable) +[`Input.touchPressureSupported`](https://docs.unity3d.com/ScriptReference/Input-touchPressureSupported.html)|No corresponding API yet. +[`Input.touchSupported`](https://docs.unity3d.com/ScriptReference/Input-touchSupported.html)|[`Touchscreen.current != null`](../api/UnityEngine.InputSystem.Touchscreen.html#UnityEngine_InputSystem_Touchscreen_current) +[`Input.GetAccelerationEvent`](https://docs.unity3d.com/ScriptReference/Input.GetAccelerationEvent.html)|See notes for `Input.accelerationEvents` above. +[`Input.GetAxis`](https://docs.unity3d.com/ScriptReference/Input.GetAxis.html)|Set up an action as a 1D or 2D axis in the Actions Editor, then use [`InputAction.ReadValue`](../api/UnityEngine.InputSystem.InputAction.html#UnityEngine_InputSystem_InputAction_ReadValue__1) to read the value or 2D vector from the axis. There are some default built-in axis actions. See the [Quickstart Guide](QuickStartGuide.md) to get started quickly. +[`Input.GetAxisRaw`](https://docs.unity3d.com/ScriptReference/Input.GetAxisRaw.html)|Not directly applicable. You can use [`InputControl<>.ReadUnprocessedValue()`](../api/UnityEngine.InputSystem.InputControl-1.html#UnityEngine_InputSystem_InputControl_1_ReadUnprocessedValue) to read unprocessed values from any control. +[`Input.GetButton`](https://docs.unity3d.com/ScriptReference/Input.GetButton.html)|[`InputAction.IsPressed`](../api/UnityEngine.InputSystem.InputAction.html#UnityEngine_InputSystem_InputAction_IsPressed_) +|[`Input.GetButtonDown`](https://docs.unity3d.com/ScriptReference/Input.GetButtonDown.html)|[`InputAction.WasPressedThisFrame`](../api/UnityEngine.InputSystem.InputAction.html#UnityEngine_InputSystem_InputAction_WasPressedThisFrame_) +[`Input.GetButtonUp`](https://docs.unity3d.com/ScriptReference/Input.GetButtonUp.html)|[`InputAction.WasReleasedThisFrame`](../api/UnityEngine.InputSystem.InputAction.html#UnityEngine_InputSystem_InputAction_WasReleasedThisFrame_) +[`Input.GetJoystickNames`](https://docs.unity3d.com/ScriptReference/Input.GetJoystickNames.html)|There is no API that corresponds to this exactly. Here are various ways to discover connected Devices: ``` // Query a list of all connected Devices (does not allocate; read-only access). @@ -405,10 +134,9 @@ for (var i = 0; i < devices.Count; ++i) } } ``` - -### [`UnityEngine.Input.GetKey`](https://docs.unity3d.com/ScriptReference/Input.GetKey.html) - -Use [`ButtonControl.isPressed`](../api/UnityEngine.InputSystem.Controls.ButtonControl.html#UnityEngine_InputSystem_Controls_ButtonControl_isPressed) on the corresponding key: +|Input Manager (Old)|Input System (New)| +|--|--| +[`Input.GetKey`](https://docs.unity3d.com/ScriptReference/Input.GetKey.html)|[`ButtonControl.isPressed`](../api/UnityEngine.InputSystem.Controls.ButtonControl.html#UnityEngine_InputSystem_Controls_ButtonControl_isPressed) on the corresponding key: ``` // Using KeyControl property directly. @@ -424,9 +152,9 @@ Keyboard.current[Key.Space].isPressed >__Note__: The Input System identifies keys by physical layout, not according to the current language mapping of the keyboard. To query the name of the key according to the language mapping, use [`KeyControl.displayName`](../api/UnityEngine.InputSystem.InputControl.html#UnityEngine_InputSystem_InputControl_displayName). -### [`UnityEngine.Input.GetKeyDown`](https://docs.unity3d.com/ScriptReference/Input.GetKeyDown.html) - -Use [`ButtonControl.wasPressedThisFrame`](../api/UnityEngine.InputSystem.Controls.ButtonControl.html#UnityEngine_InputSystem_Controls_ButtonControl_wasPressedThisFrame) on the corresponding key: +|Input Manager (Old)|Input System (New)| +|--|--| +[`Input.GetKeyDown`](https://docs.unity3d.com/ScriptReference/Input.GetKeyDown.html)|Use [`ButtonControl.wasPressedThisFrame`](../api/UnityEngine.InputSystem.Controls.ButtonControl.html#UnityEngine_InputSystem_Controls_ButtonControl_wasPressedThisFrame) on the corresponding key: ``` // Using KeyControl property directly. @@ -442,9 +170,9 @@ Keyboard.current[Key.Space].wasPressedThisFrame >__Note__: The Input System identifies keys by physical layout, not according to the current language mapping of the keyboard. To query the name of the key according to the language mapping, use [`KeyControl.displayName`](../api/UnityEngine.InputSystem.InputControl.html#UnityEngine_InputSystem_InputControl_displayName). -### [`UnityEngine.Input.GetKeyUp`](https://docs.unity3d.com/ScriptReference/Input.GetKeyUp.html) - -Use [`ButtonControl.wasReleasedThisFrame`](../api/UnityEngine.InputSystem.Controls.ButtonControl.html#UnityEngine_InputSystem_Controls_ButtonControl_wasReleasedThisFrame) on the corresponding key: +|Input Manager (Old)|Input System (New)| +|--|--| +[`Input.GetKeyUp`](https://docs.unity3d.com/ScriptReference/Input.GetKeyUp.html)|Use [`ButtonControl.wasReleasedThisFrame`](../api/UnityEngine.InputSystem.Controls.ButtonControl.html#UnityEngine_InputSystem_Controls_ButtonControl_wasReleasedThisFrame) on the corresponding key: ``` // Using KeyControl property directly. @@ -460,9 +188,9 @@ Keyboard.current[Key.Space].wasReleasedThisFrame >__Note__: The Input System identifies keys by physical layout, not according to the current language mapping of the keyboard. To query the name of the key according to the language mapping, use [`KeyControl.displayName`](../api/UnityEngine.InputSystem.InputControl.html#UnityEngine_InputSystem_InputControl_displayName). -### [`UnityEngine.Input.GetMouseButton`](https://docs.unity3d.com/ScriptReference/Input.GetMouseButton.html) - -Use [`ButtonControl.isPressed`](../api/UnityEngine.InputSystem.Controls.ButtonControl.html#UnityEngine_InputSystem_Controls_ButtonControl_isPressed) on the corresponding mouse button: +|Input Manager (Old)|Input System (New)| +|--|--| +[`Input.GetMouseButton`](https://docs.unity3d.com/ScriptReference/Input.GetMouseButton.html)|Use [`ButtonControl.isPressed`](../api/UnityEngine.InputSystem.Controls.ButtonControl.html#UnityEngine_InputSystem_Controls_ButtonControl_isPressed) on the corresponding mouse button: ``` Mouse.current.leftButton.isPressed @@ -481,20 +209,18 @@ for (var i = 0; i < controls.Count; ++i) // Or look up controls by name. ((ButtonControl)Mouse.current["leftButton"]).isPressed ``` - -### [`UnityEngine.Input.GetMouseButtonDown`](https://docs.unity3d.com/ScriptReference/Input.GetMouseButtonDown.html) - -Use [`ButtonControl.wasPressedThisFrame`](../api/UnityEngine.InputSystem.Controls.ButtonControl.html#UnityEngine_InputSystem_Controls_ButtonControl_wasPressedThisFrame) on the corresponding mouse button: +|Input Manager (Old)|Input System (New)| +|--|--| +[`Input.GetMouseButtonDown`](https://docs.unity3d.com/ScriptReference/Input.GetMouseButtonDown.html)|Use [`ButtonControl.wasPressedThisFrame`](../api/UnityEngine.InputSystem.Controls.ButtonControl.html#UnityEngine_InputSystem_Controls_ButtonControl_wasPressedThisFrame) on the corresponding mouse button: ``` Mouse.current.leftButton.wasPressedThisFrame Mouse.current.rightButton.wasPressedThisFrame Mouse.current.middleButton.wasPressedThisFrame ``` - -### [`UnityEngine.Input.GetMouseButtonUp`](https://docs.unity3d.com/ScriptReference/Input.GetMouseButtonUp.html) - -Use [`ButtonControl.wasReleasedThisFrame`](../api/UnityEngine.InputSystem.Controls.ButtonControl.html#UnityEngine_InputSystem_Controls_ButtonControl_wasReleasedThisFrame) on the corresponding mouse button: +|Input Manager (Old)|Input System (New)| +|--|--| +[`Input.GetMouseButtonUp`](https://docs.unity3d.com/ScriptReference/Input.GetMouseButtonUp.html)|Use [`ButtonControl.wasReleasedThisFrame`](../api/UnityEngine.InputSystem.Controls.ButtonControl.html#UnityEngine_InputSystem_Controls_ButtonControl_wasReleasedThisFrame) on the corresponding mouse button: ``` Mouse.current.leftButton.wasReleasedThisFrame @@ -502,20 +228,8 @@ Mouse.current.rightButton.wasReleasedThisFrame Mouse.current.middleButton.wasReleasedThisFrame ``` -### [`UnityEngine.Input.GetTouch`](https://docs.unity3d.com/ScriptReference/Input.GetTouch.html) - -Use [`InputSystem.EnhancedTouch.Touch.activeTouches[i]`](../api/UnityEngine.InputSystem.EnhancedTouch.Touch.html#UnityEngine_InputSystem_EnhancedTouch_Touch_activeTouches) - ->__Note__: Enable enhanced touch support first by calling [`InputSystem.EnhancedTouch.Enable()`](../api/UnityEngine.InputSystem.EnhancedTouch.EnhancedTouchSupport.html#UnityEngine_InputSystem_EnhancedTouch_EnhancedTouchSupport_Enable). - -### [`UnityEngine.Input.IsJoystickPreconfigured`](https://docs.unity3d.com/ScriptReference/Input.IsJoystickPreconfigured.html) - -Not needed. Devices which derive from [`Gamepad`](../api/UnityEngine.InputSystem.Gamepad.html) always correctly implement the mapping of axes and buttons to the corresponding [`InputControl`](../api/UnityEngine.InputSystem.InputControl.html) members of the [`Gamepad`](../api/UnityEngine.InputSystem.Gamepad.html) class. - -### [`UnityEngine.Input.ResetInputAxes`](https://docs.unity3d.com/ScriptReference/Input.ResetInputAxes.html) - -Not directly applicable. - -## [`UnityEngine.TouchScreenKeyboard`](https://docs.unity3d.com/ScriptReference/TouchScreenKeyboard.html) - -No corresponding API yet. Use `TouchScreenKeyboard` for now. +|Input Manager (Old)|Input System (New)| +|--|--| +[`Input.GetTouch`](https://docs.unity3d.com/ScriptReference/Input.GetTouch.html)|Use [`InputSystem.EnhancedTouch.Touch.activeTouches[i]`](../api/UnityEngine.InputSystem.EnhancedTouch.Touch.html#UnityEngine_InputSystem_EnhancedTouch_Touch_activeTouches)
__Note__: Enable enhanced touch support first by calling [`InputSystem.EnhancedTouch.Enable()`](../api/UnityEngine.InputSystem.EnhancedTouch.EnhancedTouchSupport.html#UnityEngine_InputSystem_EnhancedTouch_EnhancedTouchSupport_Enable). +[`Input.IsJoystickPreconfigured`](https://docs.unity3d.com/ScriptReference/Input.IsJoystickPreconfigured.html)|Not needed. Devices which derive from [`Gamepad`](../api/UnityEngine.InputSystem.Gamepad.html) always correctly implement the mapping of axes and buttons to the corresponding [`InputControl`](../api/UnityEngine.InputSystem.InputControl.html) members of the [`Gamepad`](../api/UnityEngine.InputSystem.Gamepad.html) class. [`Input.ResetInputAxes`](https://docs.unity3d.com/ScriptReference/Input.ResetInputAxes.html)|Not directly applicable. +[`UnityEngine.TouchScreenKeyboard`](https://docs.unity3d.com/ScriptReference/TouchScreenKeyboard.html)|No corresponding API yet. Use `TouchScreenKeyboard` for now. diff --git a/Packages/com.unity.inputsystem/Documentation~/PlayerInput.md b/Packages/com.unity.inputsystem/Documentation~/PlayerInput.md index 58a48f940c..731b62c091 100644 --- a/Packages/com.unity.inputsystem/Documentation~/PlayerInput.md +++ b/Packages/com.unity.inputsystem/Documentation~/PlayerInput.md @@ -1,31 +1,43 @@ --- uid: input-system-player-input --- -# The PlayerInput component +# The Player Input component -The Input System provides two related components that simplify how you set up and work with input: the **Player Input** component and the [**Player Input Manager**](PlayerInputManager.md) component. +The Player Input component provides two related but separate features which can be useful in common game scenarios. These are: -The **Player Input** component represents a single player, and that player's associated [Input Actions](Actions.md), whereas the [**Player Input Manager**](PlayerInputManager.md) component handles setups that allow for several concurrent users (for example, player lobbies and split-screen gameplay in a game). +- Configuring how [Actions](Actions.md) map to methods or callbacks in the script that controls your player. +- Handling local multiplayer scenarios such as player lobbies, device filtering, and screen-splitting. ## The Player Input component -![PlayerInput](Images/PlayerInput.png) +![PlayerInput](Images/PlayerInput.png)
+*Above, the Player Input component displayed in the inspector.* -*Above, the Player Input component as visible in the inspector, with an Actions Asset called "ExampleActions" assigned.* +### Connecting actions to methods or callbacks -Each [`PlayerInput`](../api/UnityEngine.InputSystem.PlayerInput.html) instance represents a separate player or user. You can use multiple `PlayerInput` instances at the same time (although not on the same `GameObject`) to represent local multiplayer setups. The Input System pairs each player to a unique set of Devices that the player uses exclusively, but you can also manually pair Devices in a way that enables two or more players to share a Device (for example, left/right keyboard splits or hot seat use). +The **Player Input** component represents a single player, and the connection between that player's associated device, Actions, and methods or callbacks. -Each `PlayerInput` corresponds to one [`InputUser`](UserManagement.md). You can use [`PlayerInput.user`](../api/UnityEngine.InputSystem.PlayerInput.html#UnityEngine_InputSystem_PlayerInput_user) to query the `InputUser` from the component. +You can use a single instance of a Player Input component in a single-player game to set up a mapping between your Input Actions and methods or callbacks in the script that controls your player. + +For example, by using the Player Input component, you can set up a mapping between actions such as "Jump" to C# methods in your script such as `public void OnJump()`. + +There are a few options for doing exactly how the Player Input component does this, such as using SendMessage, or Unity Events, which is described in more detail below. + +### Handling local multiplayer scenarios ->__Note__: These components are built on top of the public Input System API. As such, they don't do anything that you can't program yourself. They are meant primarily as an easy, out-of-the-box setup that eliminates much of the need for custom scripting. +You can also use multiple **Player Input** components (each on a separate instance of a prefab) along with the [**Player Input Manager**](PlayerInputManager.md) component to implement local multiplayer features, such as player lobbies, device filtering, and screen-splitting. + +In these local multiplayer scenarios, the Player Input component should be on a prefab which the [**Player Input Manager**](PlayerInputManager.md) has a reference to. The **Player Input Manager** then instantiates players as they join the game and pairs each player instance to a unique device that the player uses exclusively (for example, one gamepad for each player). You can also manually pair devices in a way that enables two or more players to share a Device (for example, left/right keyboard splits or hot seat use). + +Each `PlayerInput` corresponds to one [`InputUser`](UserManagement.md). You can use [`PlayerInput.user`](../api/UnityEngine.InputSystem.PlayerInput.html#UnityEngine_InputSystem_PlayerInput_user) to query the `InputUser` from the component. ## Getting started To get started using the Player Input component, use the following steps: 1. [Add](https://docs.unity3d.com/Manual/UsingComponents.html) a **Player Input** component to a GameObject. This would usually be the GameObject that represents the player in your game. -1. Set the Actions field to **Project-Wide Actions** to use Actions defined in the Actions editor. (Note, you can alternatively use an [ActionAsset](ActionAssets.md) reference here). +1. Assign your [Action Asset](ActionAssets.md) to the **Actions** field. This is usually the default project-wide action asset named "InputSystem_Actions" 1. Set up Action responses, by selecting a **Behaviour** type from the Behaviour menu. The Behaviour type you select affects how you should implement the methods that handle your Action responses. See the [notification behaviors](#notification-behaviors) section further down for details.

![PlayerInput Notification Behavior](Images/PlayerInputNotificationBehaviors.png)

@@ -43,7 +55,12 @@ You can use the following properties to configure `PlayerInput`: ### Actions -To receive input, each player must have an associated set of Input Actions. When you create these via the Player Input inspector's __Create Actions__ button, the Input System creates a default set of Actions. However, the Player Input component places no restrictions on the arrangement of Actions. +To receive input, each player must have an associated set of Input Actions. + +#### Specifying the Actions to use +The simplest workflow is to use the project-wide actions defined in the [Input Actions editor](ActionsEditor.md). However, the Player Input component also allows you to use an [Actions Asset](ActionAssets.md) to specify the actions that should be used by any instance of the component. If you set the **Actions** field to **Actions Asset**, the inspector displays a field into which you can assign an actions asset, and a **Create Actions** button which allows you to create a new actions asset. When you create these via the Player Input inspector's __Create Actions__ button, the Input System creates a default set of Actions. However, the Player Input component places no restrictions on the arrangement of Actions. + +#### Enabling and disabling Actions The Player Input component automatically handles enabling and disabling Actions, and also handles installing [callbacks](RespondingToActions.md#responding-to-actions-using-callbacks) on the Actions. When multiple Player Input components use the same Actions, the components automatically create [private copies of the Actions](RespondingToActions.md#using-actions-with-multiple-players). @@ -125,9 +142,17 @@ In addition to per-action notifications, `PlayerInput` sends the following gener ### Device assignments +If the `PlayerInput` component has any Devices assigned, it matches these to the [Control Schemes](ActionBindings.md#control-schemes) in the associated Action Asset, and only enables Control Schemes which match its Input Devices. + Each `PlayerInput` can have one or more Devices assigned to it. By default, no two `PlayerInput` components are assigned the same Devices, but you can force this; to do so, manually assign Devices to a player when calling [`PlayerInput.Instantiate`](../api/UnityEngine.InputSystem.PlayerInput.html#UnityEngine_InputSystem_PlayerInput_Instantiate_UnityEngine_GameObject_System_Int32_System_String_System_Int32_UnityEngine_InputSystem_InputDevice_), or call [`InputUser.PerformPairingWithDevice`](../api/UnityEngine.InputSystem.Users.InputUser.html#UnityEngine_InputSystem_Users_InputUser_PerformPairingWithDevice_UnityEngine_InputSystem_InputDevice_UnityEngine_InputSystem_Users_InputUser_UnityEngine_InputSystem_Users_InputUserPairingOptions_) on the `InputUser` of a `PlayerInput`. -If the `PlayerInput` component has any Devices assigned, it matches these to the [Control Schemes](ActionBindings.md#control-schemes) in the associated Action Asset, and only enables Control Schemes which match its Input Devices. +### Debug information + +When the Editor is in Play mode, each PlayerInput component instance displays a **Debug** section, as shown below. + +![The debug section of the PlayerInput component](images/PlayerInputUserDeviceDebug.png) + +The Debug section shows the User number (which starts counting from zero), the control Scheme, and the devices assigned to the PlayerInput instance. ### UI input @@ -138,3 +163,9 @@ To set this up, assign a reference to a `InputSystemUIInputModule` component in Once you've completed this setup, when the `PlayerInput` component configures the Actions for a specific player, it assigns the same Action configuration to the `InputSystemUIInputModule`. In other words, the same Action and Device configuration that controls the player now also controls the UI. If you use [`MultiplayerEventSystem`](UISupport.md#multiplayer-uis) components to dispatch UI events, you can also use this setup to simultaneously have multiple UI instances on the screen, each controlled by a separate player. + +>**Notes**: +> - As a general rule, if you are using the PlayerInput workflow, you should read input through callbacks as described above, however if you need to access the input actions asset directly while using the PlayerInput component, you should access the [PlayerInput component's copy of the actions](../api/UnityEngine.InputSystem.PlayerInput.html#UnityEngine_InputSystem_PlayerInput_actions), not `InputSystem.actions`. This is because the PlayerInput component performs device filtering to automatically assign devices to multiple players, so each instance has its own copy of the actions filtered for each player. If you bypass this by reading `InputSystem.actions` directly, the automatic device assignment won't work. +> +> - This component is built on top of the public Input System API. As such, they don't do anything that you can't program yourself. They are meant primarily as an easy, out-of-the-box setup that eliminates much of the need for custom scripting. +>
  diff --git a/Packages/com.unity.inputsystem/Documentation~/PlayerInputManager.md b/Packages/com.unity.inputsystem/Documentation~/PlayerInputManager.md index 11d78cea7e..e7a581cdbd 100644 --- a/Packages/com.unity.inputsystem/Documentation~/PlayerInputManager.md +++ b/Packages/com.unity.inputsystem/Documentation~/PlayerInputManager.md @@ -5,7 +5,7 @@ uid: input-system-player-input-manager >NOTE: The Input System package comes with a sample called `Simple Multiplayer` which you can install from the package manager UI in the Unity editor. The sample demonstrates how to use [`PlayerInputManager`](../api/UnityEngine.InputSystem.PlayerInputManager.html) to set up a simple local multiplayer scenario. -The [`Player Input`](PlayerInput.md) system facilitates setting up local multiplayer games, where multiple players share a single device with a single screen and multiple controllers. Set this up using the [`PlayerInputManager`](../api/UnityEngine.InputSystem.PlayerInputManager.html) component, which automatically manages the creation and lifetime of `PlayerInput` instances as players join and leave the game. +The [`Player Input`](PlayerInput.md) system facilitates setting up local multiplayer games, where multiple players share a single screen and multiple controllers. You can set this up using the [`PlayerInputManager`](../api/UnityEngine.InputSystem.PlayerInputManager.html) component, which automatically manages the creation and lifetime of `PlayerInput` instances as players join and leave the game. ![PlayerInputManager](Images/PlayerInputManager.png) diff --git a/Packages/com.unity.inputsystem/Documentation~/PreReleaseNotes.md b/Packages/com.unity.inputsystem/Documentation~/PreReleaseNotes.md deleted file mode 100644 index d03eeb0222..0000000000 --- a/Packages/com.unity.inputsystem/Documentation~/PreReleaseNotes.md +++ /dev/null @@ -1,38 +0,0 @@ -# Pre-Release Notes - -## Overview - -This pre-release contains updates to the Input System which simplify and improve some of the main workflows compared with earlier versions of the Input System package. This page describes the main differences introduced, and assumes you are familiar with the workflow in the previous versions of the Input System package. - -## New project-wide actions - -The Input System now allows you to configure actions in the Project Settings window, in the new Input Actions Settings panel. The actions configured here are available from anywhere in the project. This means you no longer need to create an Actions asset and set up a reference to your asset to read input actions. Instead, you can configure actions in the Project Settings window, and read them directly from your scripts. You can still use Action assets if you like, but for many typical scenarios, they are no longer necessary. - -Project-wide actions are similar to the actions you would previously define in an actions asset, however instead of being an asset that you create in the Editor, they are stored as part of your project’s settings, and are configured in the Project Settings window. - -Compared with the previous workflow of creating an Action asset, and setting up a reference to that asset to access in your code, project-wide actions reduce the number of steps to set up input in your project, and reduces complexity in your project. - -![The Input Actions settings panel in the Project Settings window, showing the default player actions.](images/ProjectSettingsInputActionsSimpleShot.png)
-*The Input Actions settings panel in the Project Settings window, showing the default player actions.* - -## New default actions - -The new project-wide actions come pre-configured with some default actions that are suitable for many typical game scenarios, including some basic player character actions, and some typical UI-related actions. In many cases these might be enough to allow you to immediately start using input in your project with no configuration required. You can either add to, edit, or delete these default configurations to suit your needs. - -If you’d like to delete all the default actions so that you can start from an empty configuration, you don’t need to delete the actions individually. You can delete the default Action Maps, which deletes all the Actions contained in those maps in one go. - -## Scripting with the project-wide actions - -Unlike the older Input Action assets, the project-wide actions are stored in your project’s Project Settings folder, so they do not appear in your Project window. The `InputSystem.actions` property allows you to access the project-wide actions. It is a built-in reference to that "hidden" asset. This means instead of referencing an asset from your project, you can use the `InputSystem.actions` property in your scripts to reference the project-wide actions. - -To get started quickly using the new project-wide actions, see the [Quickstart Guide](QuickStartGuide.html). - -If you used older versions of the Input System package, you might want to note these things about the Quickstart example script, compared with the older workflows in the previous versions of the Input System Package: - -* You do not need a public field with an assigned Action asset to get a reference to the actions, because the `InputSystem.actions` always references the project-wide actions. - -* The script does not enable or disable action maps. Project-wide action maps are enabled by default. This means unlike with the older Action assets, you do not need to enable individual action maps in your script before being able to use them. You may still want to disable or enable action maps if you want to make use of different types of input in different parts of your project. - -------- - -> __Note:__ The documentation in this pre-release has not been fully updated to reflect the newest features in this package. In particular, not all pages have been updated to reflect the newer, simpler, project-wide actions workflow. This means some pages will refer to outdated workflows such as using an Actions Asset, or creating Actions as a field in your script. In most cases, if you are using the new project-wide actions, you can use `InputSystem.actions` to reference the project-wide actions, instead of using an Actions Asset or creating Actions in code. diff --git a/Packages/com.unity.inputsystem/Documentation~/ProjectWideActions.md b/Packages/com.unity.inputsystem/Documentation~/ProjectWideActions.md new file mode 100644 index 0000000000..6248dea44f --- /dev/null +++ b/Packages/com.unity.inputsystem/Documentation~/ProjectWideActions.md @@ -0,0 +1,64 @@ +--- +uid: project-wide-actions +--- +# Project-Wide Actions + +The Input System stores your configuration of [Input Actions](Actions.md) and their associated [Bindings](ActionBindings.md), [Action Maps](ActionsEditor.html#configure-action-maps) and [Control Schemes](ActionBindings.md#control-schemes) in an [Action Asset](ActionAssets.md) file. + +While it's possible to have more than one Action Asset in a project, most projects only ever need a single Action Asset. This is because an Action Asset can contain multiple [Action Maps](ActionsEditor.html#configure-action-maps), which each containing a set of actions relevant to the various parts of your project (such as UI navigation, gameplay, etc). + +The Input System's **project-wide actions** feature allows you to choose an individual Action Asset as being available project-wide, which means the actions within that asset are available more conveniently through the Input System API without needing to set up a reference to the Actions Asset. + +The Action Asset assigned as project-wide is also a [preloaded asset](https://docs.unity3d.com/ScriptReference/PlayerSettings.GetPreloadedAssets.html), loaded when your app starts up, and kept available until until it terminates. + +Unless you have specific project requirements that require more than one Action Asset, the recommended workflow is to use a single Action Asset assigned as the project-wide actions, as described below. + +## Create and Assign a Project-Wide Actions Asset + +To create and assign the current project-wide actions, go to **Edit** > **Project Settings** > **Input System Package**. + +If you don't yet have an Action Asset assigned as project-wide in your project, the Input System Package settings window displays an empty field for you to assign your action asset, and a button allowing you to create and assign one. +![image alt text](./Images/InputSettingsNoProjectWideAsset.png)
+*The Input System Package Project Settings with no project-wide actions assigned* + +> **Note:** If you already have an Action Asset assigned, this button is not displayed, and instead the Actions Editor is displayed, allowing you to edit the project-wide actions. + +To create an Action Asset with default actions pre-configured, click **"Create a new project-wide Action Asset"**. The asset is created in your project, and automatically assigned as the **project-wide actions**. + +The Action Asset appears in your Project view, and is named "InputSystem_Actions". This is where your new configuration of actions is saved, including any changes you make to it. + +![](images/InputSystemActionsAsset.png)
+*The new Actions Asset in your Project window* + +## Edit project-wide actions + +Once you have created and assigned project-wide actions, the Input System Package page in Project Settings displays the **Actions Editor** interface. Read more about how to use the [Actions Editor](ActionsEditor.md) to configure your actions. + +![image alt text](./Images/ProjectSettingsInputActionsSimpleShot.png) +*The Input System Package Project Settings after creating and assigning the default actions* + +## The default actions + +When you create and assign default project-wide actions using the method described above, the Action Asset comes pre-configured with some default Actions such as "Move", "Jump", and more, which suit many common app and game scenarios. They are configured to read input from the most common types of input controller such as Keyboard, Mouse, Gamepad, Touchscreen and XR. + +These default actions mean that in many cases, you can start scripting with the Input System without any configuration by referring to the names of the default actions that are already configured for you. You can also rename and reconfigure the default actions, or delete these default configurations to suit your needs. + +If you’d like to delete all the default actions so that you can start from an empty configuration, you don’t need to delete the individual actions one-by-one. You can delete the each Action Map, which deletes all the Actions contained in the maps in one go. + +You can also delete all action maps, or reset all the actions back to the default values from the **more** (⋮) menu at the top right of the Input Actions section of the settings window, below the Project Settings window search field. + +![The Input Actions **more** menu as displayed in the Project Settings window](images/InputActionsSettingsMoreMenu.png) + +> **Note:** this **more** (⋮) menu is not available when the Actions Editor is open in a separate window, it is only present in the Project Settings window. + +## Using project-wide actions in code + +The benefit of assign an Action Asset as the project-wide actions is that you can access the actions directly through the [`InputSystem.actions`](../api/UnityEngine.InputSystem.InputSystem.html) property directly, rather than needing to set up a reference to your Action Asset first. + +For example, you can get a reference to an action named "Move" in your project-wide actions using a line of code like this: + +``` + InputSystem.actions.FindAction("Move"); +``` + +Project-wide actions are also enabled by default. diff --git a/Packages/com.unity.inputsystem/Documentation~/QuickStartGuide.md b/Packages/com.unity.inputsystem/Documentation~/QuickStartGuide.md index 56b4c5d8f1..ba4f488eca 100644 --- a/Packages/com.unity.inputsystem/Documentation~/QuickStartGuide.md +++ b/Packages/com.unity.inputsystem/Documentation~/QuickStartGuide.md @@ -5,6 +5,40 @@ This page has a brief description of how to quickly start using the Input System First, install the Input System package. For information on how to install the new Input System, see [Installation](Installation.md). +## Create and assign the default project-wide actions + +The input system stores your input configuration in an **Actions Asset**. When you first install the input system package, you must create this Actions Asset. + +You can do this by going to by going to **Edit** > **Project Settings** > **Input System Package** > **Input Actions**, then click the button labelled **Create and assign a default project-wide Action Asset**. + +![The Input Actions Settings window](Images/InputSettingsNoProjectWideAsset.png) + +## View and edit the default input settings + +Once you have created and assigned some project-wide actions, the **Input Actions Settings window** allows you to view and edit your input configuration. + +![The Input Actions Settings window](Images/ProjectSettingsInputActionsSimpleShot.png) +*The input actions settings window displaying the default actions* + +You can use this window to view the Actions to find out their names, value types, and what their corresponding bindings. You can also edit, delete, or add new Actions here. + +[Read more about using the Input Action Settings Window.](ActionsEditor.md) + + +## The default Action Maps and Actions + +Action Maps allow you to organise Actions into groups which represent specific situations where a set of actions make sense together. + +The Input System's default configuration comes with two Action Maps: "Player" and "UI". These each contain default actions that are typically useful for gameplay and user interface interactions respectively. + +The "Player" Action Map defines several game-related actions such as "Move", "Look", "Jump" and "Attack" actions. The "UI" action map defines several user-interface-related actions such as "Navigate", "Submit" and "Cancel". + + Each each default action has bindings to several different types of Control. For example: + +- The "Move" action is bound to the "WSAD" keyboard keys and arrow keys, a gamepad stick, the primary 2D axis on an XR controller +- The "Jump" action is bound to the space key, the "south" button on a gamepad, and the secondary button on an XR controller. + + ## Read values from the default Actions The Input System comes pre-configured with some default Actions such as "Move", "Jump", and more, which suit many common app and game scenarios. They are configured to read input most types of input controller such as Keyboard, Mouse, Gamepad, Touchscreen and XR. @@ -57,27 +91,4 @@ These actions named "Move" and "Jump" in this script work straight away with no > **Note**: Different types of Action have different value types, and so have different methods to access their value, which is why you see `.ReadValue()` used to read a 2D axis, and `.IsPressed()` to read a button state, in the example above. -## The default Action Maps and Actions - -Action Maps allow you to organise Actions into groups which represent specific situations where a set of actions make sense together. - -The Input System's default configuration comes with two Action Maps: "Player" and "UI". These each contain default actions that are typically useful for gameplay and user interface interactions respectively. - -The "Player" Action Map defines several game-related actions such as "Move", "Look", "Jump" and "Attack" actions. The "UI" action map defines several user-interface-related actions such as "Navigate", "Submit" and "Cancel". - - Each each default action has bindings to several different types of Control. For example: - -- The "Move" action is bound to the "WSAD" keyboard keys and arrow keys, a gamepad stick, the primary 2D axis on an XR controller -- The "Jump" action is bound to the space key, the "south" button on a gamepad, and the secondary button on an XR controller. - -## View and edit the default input settings - -The **Input Actions Settings window** allows you to view and edit the default input settings. Open the Input Actions Settings window by going to **Edit** > **Project Settings** > **Input System Package** > **Input Actions**. - -![The Input Actions Settings window](Images/ProjectSettingsInputActionsSimpleShot.png) - -You can use this window to view all the default Actions to find out their names, value types, and what their corresponding bindings. You can also modify, delete, or add new Actions here. - -> **Note:** If you create Actions with duplicate names in different Action Maps, you must specify the Action Map and the Action Name separated by a `/` character, when using FindAction. For example: `InputSystem.actions.FindAction("Player/Move")` - -[Read more about using the Input Action Settings Window.](ActionsEditor.md) +> **Note:** If you create more than one Action with same name in different Action Maps, you must specify the Action Map and the Action Name separated by a `/` character when using FindAction. For example: `InputSystem.actions.FindAction("Player/Move")` diff --git a/Packages/com.unity.inputsystem/Documentation~/RespondingToActions.md b/Packages/com.unity.inputsystem/Documentation~/RespondingToActions.md index 31a6e1bcb9..4dd5abbd6b 100644 --- a/Packages/com.unity.inputsystem/Documentation~/RespondingToActions.md +++ b/Packages/com.unity.inputsystem/Documentation~/RespondingToActions.md @@ -3,7 +3,7 @@ There are two main techniques you can use to respond to Actions in your project. These are to either use **polling** or an **event-driven** approach. -- The **Polling** approach refers to the technique of repeatedly checking the current state of the Actions you are interested in. Typically you would do this in the Update() method of a Monobehaviour script. +- The **Polling** approach refers to the technique of repeatedly checking the current state of the Actions you are interested in. Typically you would do this in the `Update()` method of a `MonoBehaviour` script. - The **Event-driven** approach involves creating your own methods in code that are automatically called when an action is performed. For most common scenarios, especially action games where the user's input should have a continuous effect on an in-game character, **Polling** is usually simpler and easier to implement. @@ -39,8 +39,16 @@ public class Example : MonoBehaviour Note that the value type has to correspond to the value type of the control that the value is being read from. -To determine whether an action was performed in the current frame, you can use [`InputAction.WasPerformedThisFrame()`](../api/UnityEngine.InputSystem.InputAction.html#UnityEngine_InputSystem_InputAction_WasPerformedThisFrame): +There are two methods you can use to poll for `performed` [action callbacks](#action-callbacks) to determine whether an action was performed or stopped performing in the current frame. +These methods differ from [`InputAction.WasPressedThisFrame()`](../api/UnityEngine.InputSystem.InputAction.html#UnityEngine_InputSystem_InputAction_WasPressedThisFrame) and [`InputAction.WasReleasedThisFrame()`](../api/UnityEngine.InputSystem.InputAction.html#UnityEngine_InputSystem_InputAction_WasReleasedThisFrame) in that these depend directly on the [Interactions](Interactions.md) driving the action (including the [default Interaction](Interactions.md#default-interaction) if no specific interaction has been added to the action or binding). + +|Method|Description| +|------|-----------| +|[`InputAction.WasPerformedThisFrame()`](../api/UnityEngine.InputSystem.InputAction.html#UnityEngine_InputSystem_InputAction_WasPerformedThisFrame)|True if the [`InputAction.phase`](../api/UnityEngine.InputSystem.InputAction.html#UnityEngine_InputSystem_InputAction_phase) of the action has, at any point during the current frame, changed to [`Performed`](../api/UnityEngine.InputSystem.InputActionPhase.html#UnityEngine_InputSystem_InputActionPhase_Performed).| +|[`InputAction.WasCompletedThisFrame()`](../api/UnityEngine.InputSystem.InputAction.html#UnityEngine_InputSystem_InputAction_WasCompletedThisFrame)|True if the [`InputAction.phase`](../api/UnityEngine.InputSystem.InputAction.html#UnityEngine_InputSystem_InputAction_phase) of the action has, at any point during the current frame, changed away from [`Performed`](../api/UnityEngine.InputSystem.InputActionPhase.html#UnityEngine_InputSystem_InputActionPhase_Performed) to any other phase. This can be useful for [Button](#button) actions or [Value](#value) actions with interactions like [Press](Interactions.md#press) or [Hold](Interactions.md#hold) when you want to know the frame the interaction stops being performed. For actions with the [default Interaction](Interactions.md#default-interaction), this method will always return false for [Value](#value) and [Pass-Through](#pass-through) actions (since the phase stays in [`Started`](../api/UnityEngine.InputSystem.InputActionPhase.html#UnityEngine_InputSystem_InputActionPhase_Started) for Value actions and stays in [`Performed`](../api/UnityEngine.InputSystem.InputActionPhase.html#UnityEngine_InputSystem_InputActionPhase_Performed) for Pass-Through).| + +This example uses the Interact action from the [default actions](./ProjectWideActions.md#the-default-actions), which has a [Hold](Interactions.md#hold) interaction to make it perform only after the bound control is held for a period of time (for example, 0.4 seconds): ```CSharp using UnityEngine; @@ -48,18 +56,23 @@ using UnityEngine.InputSystem; public class Example : MonoBehaviour { - InputAction jumpAction; + InputAction interactAction; private void Start() { - jumpAction = InputSystem.actions.FindAction("Jump"); + interactAction = InputSystem.actions.FindAction("Interact"); } void Update() { - if (jumpAction.WasPerformedThisFrame()) + if (interactAction.WasPerformedThisFrame()) { - // your code to respond to the Jump action here + // your code to respond to the first frame that the Interact action is held for enough time + } + + if (interactAction.WasCompletedThisFrame()) + { + // your code to respond to the frame that the Interact action is released after being held for enough time } } } @@ -73,7 +86,7 @@ Finally, there are three methods you can use to poll for button presses and rele |[`InputAction.WasPressedThisFrame()`](../api/UnityEngine.InputSystem.InputAction.html#UnityEngine_InputSystem_InputAction_WasPressedThisFrame)|True if the level of [actuation](../api/UnityEngine.InputSystem.InputControl.html#UnityEngine_InputSystem_InputControl_EvaluateMagnitude) on the action has, at any point during the current frame, reached or gone above the [press point](../api/UnityEngine.InputSystem.InputSettings.html#UnityEngine_InputSystem_InputSettings_defaultButtonPressPoint).| |[`InputAction.WasReleasedThisFrame()`](../api/UnityEngine.InputSystem.InputAction.html#UnityEngine_InputSystem_InputAction_WasReleasedThisFrame)|True if the level of [actuation](../api/UnityEngine.InputSystem.InputControl.html#UnityEngine_InputSystem_InputControl_EvaluateMagnitude) on the action has, at any point during the current frame, gone from being at or above the [press point](../api/UnityEngine.InputSystem.InputSettings.html#UnityEngine_InputSystem_InputSettings_defaultButtonPressPoint) to at or below the [release threshold](../api/UnityEngine.InputSystem.InputSettings.html#UnityEngine_InputSystem_InputSettings_buttonReleaseThreshold).| -This example uses three actions called Shield, Teleport and Submit (which are not included in the [default actions]()): +This example uses three actions called Shield, Teleport and Submit (which are not included in the [default actions](./ProjectWideActions.md#the-default-actions)): ```CSharp using UnityEngine; @@ -101,15 +114,13 @@ public class Example : MonoBehaviour if (teleportAction.WasPressedThisFrame()) { - // teleport occurs on the first frame that the action was performed, and not again until the button is released + // teleport occurs on the first frame that the action is pressed, and not again until the button is released } if (submit.WasReleasedThisFrame()) { // submit occurs on the frame that the action is released, a common technique for buttons relating to UI controls. } - - } } ``` diff --git a/Packages/com.unity.inputsystem/Documentation~/Settings.md b/Packages/com.unity.inputsystem/Documentation~/Settings.md index 77575aaba9..e7a129913c 100644 --- a/Packages/com.unity.inputsystem/Documentation~/Settings.md +++ b/Packages/com.unity.inputsystem/Documentation~/Settings.md @@ -3,32 +3,36 @@ uid: input-system-settings --- # Input settings -* [Update Mode](#update-mode) -* [Background Behavior](#background-behavior) -* [Filter Noise on .current](#filter-noise-on-current) -* [Compensate orientation](#compensate-orientation) -* [Default value properties](#default-value-properties) -* [Supported Devices](#supported-devices) -* [Platform-specific Settings](#platform-specific-settings) -* [Play Mode Input Behavior](#play-mode-input-behavior) +- [Create Settings Asset](#create-settings-asset) +- [Update Mode](#update-mode) +- [Background Behavior](#background-behavior) +- [Filter Noise On Current](#filter-noise-on-current) +- [Compensate Orientation](#compensate-orientation) +- [Default value properties](#default-value-properties) +- [Supported Devices](#supported-devices) +- [Platform-specific settings](#platform-specific-settings) -To configure the Input System individually for each project, go to __Edit > Project Settings… > Input System Package__ from Unity's main menu. + +To configure the Input System individually for each project, go to __Edit__ > __Project Settings…__ > __Input System Package__ from Unity's main menu. ![Input Settings](Images/InputSettings.png) -The Input System stores input settings in Assets. If your Project doesn't contain an input settings Asset, click __Create settings asset__ in the Settings window to create one. If your Project contains multiple settings Assets, use the gear menu in the top-right corner of the window to choose which one to use. You can also use this menu to create additional settings Assets. +This page describes each input setting in detail. ->__Note__: Unity saves changes to these settings when you save the Project. +## Create Settings Asset -This page describes each input setting in detail. +When you first view the input settings, they are not editable, and instead a button to __Create settings asset__ is displayed at the top of the input settings window. -## Update Mode +![The Create Settings Asset button](Images/CreateSettingsAsset.png) + +If you want to customise the input settings, you must first click this button, which creates a settings asset in your Project. Once your project contains a settings asset, the __Create settings asset__ is no longer displayed, and the settings fields become editable. Unity saves changes to your settings in the settings asset when you save the project. + +If your project contains multiple settings assets, you can use the gear menu in the top-right corner of the window to choose which asset to use. You can also use this menu to create additional settings assets. -![Update Mode](Images/UpdateMode.png) -This is a fundamental setting that determines when the Input System processes input. +## Update Mode -The Input System processes input in one of three distinct ways: +This setting determines when the Input System processes input. The Input System can process input in one of three distinct ways: |Type|Description| |----|-----------| @@ -40,13 +44,11 @@ The Input System processes input in one of three distinct ways: ## Background Behavior -![Background Behavior](Images/BackgroundBehavior.png) - -Determines how [application focus](https://docs.unity3d.com/ScriptReference/Application-isFocused.html) is handled. That is, what happens when focus is lost or gained and how input behaves while the application is not in the foreground. +Background Behaviour determines what happens when [application focus](https://docs.unity3d.com/ScriptReference/Application-isFocused.html) is lost or regained, and how input behaves while the application is not in the foreground. -This setting is only relevant when "Run In Background" is enabled in the [Player Settings](https://docs.unity3d.com/Manual/class-PlayerSettings.html) for the project. This setting is only supported on some platforms. On platforms such as Android and iOS, the game will not be run while the application is not in the foreground. +This setting is only relevant when "Run In Background" is enabled in the [Player Settings](https://docs.unity3d.com/Manual/class-PlayerSettings.html) for the project. This setting is only supported on some platforms. On platforms such as Android and iOS, your app will not run when it is not in the foreground. -Note that in the editor, "Run In Background" is considered to always be enabled as the player loop will be kept running regardless of whether a Game View is focused or not. Also, in development players on desktop platforms, the setting is force-enabled during the build process. +In the Editor, "Run In Background" is considered to always be enabled as the player loop is kept running regardless of whether a Game View is focused or not. Also, in development players on desktop platforms, the setting is force-enabled during the build process. >__Note__: In the editor, `Background Behavior` is further influenced by [`Play Mode Input Behavior`](#play-mode-input-behavior). See [Background and Focus Change Behavior](Devices.md#background-and-focus-change-behavior) for a detailed breakdown. In particular, which devices are considered as [`canRunInBackground`](../api/UnityEngine.InputSystem.InputDevice.html#UnityEngine_InputSystem_InputDevice_canRunInBackground) partly depends on the [`Play Mode Input Behavior`](#play-mode-input-behavior) setting. @@ -117,10 +119,6 @@ If __Supported Devices__ is empty, no restrictions apply, which means that the I To add Devices to the list, click the Add (+) icon and choose a Device from the menu that appears. -![Add Supported Device](Images/AddSupportedDevice.png) - -__Abstract Devices__ contains common Device abstractions such as "Keyboard" and "Mouse". __Specific Devices__ contains specific hardware products. - ### Override in Editor In the Editor, you might want to use input Devices that the application doesn't support. For example, you might want to use a tablet in the Editor even if your application only supports gamepads. @@ -129,24 +127,20 @@ To force the Editor to add all locally available Devices, even if they're not in ![Add Devices Not Listed In Supported Devices](Images/AddDevicesNotListedInSupportedDevices.png) -This setting is stored as a user setting (that is, other users who open the same Project can't see the setting). +>__Note__: This setting is stored as a user setting, not a project setting. This means other users who open the project in their own Editor do not share the setting. ## Platform-specific settings ### iOS/tvOS -![iOSSettings](Images/iOSSettings.png) - -* __Motion Usage__
- Governs access to the [pedometer](Sensors.md#stepcounter) on the device. If enabled, the __Description__ string supplied in the settings will be added to the application's Info.plist +__Motion Usage__ + Governs access to the [pedometer](Sensors.md#stepcounter) on the device. If you enable this setting, the __Description__ field becomes editable. The text you enter into the Description field is added to your application's `Info.plist`. ### Editor #### Play Mode Input Behavior -![Play Mode Input Behavior](Images/PlayModeInputBehavior.png) - -Determines how input is handled in the Editor when in play mode. Unlike in players, in the Editor Unity (and thus its input backends) will keep running for as long as the Editor is active regardless of whether a Game View is focused or not. This setting determines how input should behave when focus is __not__ on any Game View – and thus [`Application.isFocused`](https://docs.unity3d.com/ScriptReference/Application-isFocused.html) is false and the player considered to be running in the background. +__Play Mode Input Behavior__ determines how input is handled in the Editor when in play mode. Unlike in built players, in the Unity Editor the input back-ends keep running for as long as the Editor is active, regardless of whether a Game View window is focused or not. This setting determines how input should behave when focus is __not__ on any Game View – and thus [`Application.isFocused`](https://docs.unity3d.com/ScriptReference/Application-isFocused.html) is false and the player considered to be running in the background. |Setting|Description| |-------|-----------| diff --git a/Packages/com.unity.inputsystem/Documentation~/TableOfContents.md b/Packages/com.unity.inputsystem/Documentation~/TableOfContents.md index 8099f32af3..ecf99a8d8f 100644 --- a/Packages/com.unity.inputsystem/Documentation~/TableOfContents.md +++ b/Packages/com.unity.inputsystem/Documentation~/TableOfContents.md @@ -1,5 +1,4 @@ -* [Pre-Release Notes](PreReleaseNotes.md) * [Introduction](index.md) * [Installation](Installation.md) * [Quickstart Guide](QuickStartGuide.md) @@ -9,6 +8,7 @@ * [Workflow - PlayerInput Component](Workflow-PlayerInput.md) * [Workflow - Directly Read Devices](Workflow-Direct.md) * [Using the Input System]() + * [Project-Wide Actions](ProjectWideActions.md) * [Configuring Input](ActionsEditor.md) * [Actions](Actions.md) * [Responding to Actions](RespondingToActions.md) diff --git a/Packages/com.unity.inputsystem/Documentation~/UISupport.md b/Packages/com.unity.inputsystem/Documentation~/UISupport.md index 9ebcb85191..3f60fbb749 100644 --- a/Packages/com.unity.inputsystem/Documentation~/UISupport.md +++ b/Packages/com.unity.inputsystem/Documentation~/UISupport.md @@ -13,14 +13,30 @@ uid: input-system-ui-support * [UI and game input](#ui-and-game-input) * [UI Toolkit support](#ui-toolkit-support) -You can use the Input System package to control any in-game UI created with the [Unity UI package](https://docs.unity3d.com/Manual/UISystem.html). The integration between the Input System and the UI system is handled by the [InputSystemUIInputModule](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html) component. +You can use the Input System package to control any in-game UI bindings created with the [Unity UI package](https://docs.unity3d.com/Manual/UISystem.html). ->[!NOTE] ->The Input System package does not support IMGUI. If you have `OnGUI` methods in your player code (Editor code is unaffected), Unity does not receive any input events in those methods when the **Active Input Handling** [Player Setting](https://docs.unity3d.com/Manual/class-PlayerSettings.html) is set to **Input System Package**. To restore functionality you can change the setting to **Both**, but this means that Unity processes the input twice. + +From **Unity 2023.2** onwards, the Input System and UI Toolkit are fully integrated with each other. To configure UI Input you can configure the UI action map of [project-wide actions](Workflow-Actions.html) in **Project Settings > Input System Package > Input Actions**. + +For older versions of Unity, the integration between the Input System and the UI system is handled by the [Input System UI Input Module](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html) component. + + +> **Note:** The Input System package does not support [Immediate Mode GUI](https://docs.unity3d.com/Manual/GUIScriptingGuide.html) (IMGUI). If you have `OnGUI` methods in your player code (Editor code is unaffected), Unity does not receive any input events in those methods when the **Active Input Handling** [Player Setting](https://docs.unity3d.com/Manual/class-PlayerSettings.html) is set to **Input System Package**. To restore functionality you can change the setting to **Both**, but this means that Unity processes the input twice. ## Setting up UI input -The [InputSystemUIInputModule](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html) component acts as a drop-in replacement for the [StandaloneInputModule](https://docs.unity3d.com/Manual/script-StandaloneInputModule.html) component that the Unity UI package. [InputSystemUIInputModule](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html) provides the same functionality as [StandaloneInputModule](https://docs.unity3d.com/Manual/script-StandaloneInputModule.html), but it uses the Input System instead of the legacy Input Manager to drive UI input. +When using [project-wide actions](Workflow-Actions.html) in Unity 2023.2 and newer, you can configure the UI action map in **Project Settings > Input System Package > Input Actions**. + +![ProjectSettingsInputActionsUIActionMap](Images/ProjectSettingsInputActionsUIActionMap.png) + +You can modify, add, or remove bindings to the named actions in the UI action map to suit your project, however in order to remain compatible with UI Toolkit, the name of the action map ("UI") and the names of the actions it contains ("Navigate", "Submit", "Cancel", etc) and their respective *Action Types* must remain the same to be compatible with expectations indirectly defined by the [UI Input Module](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html) class. + +You can also reset the UI action map to its default bindings by selecting **Reset** from the **More (â‹®)** menu, at the top right of the actions editor window. However, this will reset both the 'Player' and 'UI' action maps to their default bindings. + +> **Note:** +> If you have an instance of the [Input System UI Input Module](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html) component in your scene, the settings on that component takes priority and are used instead of the UI settings in your project-wide actions. + +For versions of Unity prior to Unity 2023.2, the [InputSystemUIInputModule](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html) component acts as a drop-in replacement for the [StandaloneInputModule](https://docs.unity3d.com/Manual/script-StandaloneInputModule.html) component that the Unity UI package has. [InputSystemUIInputModule](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html) provides the same functionality as [StandaloneInputModule](https://docs.unity3d.com/Manual/script-StandaloneInputModule.html), but it uses the Input System package instead of the legacy Input Manager to drive UI input. If you have a [StandaloneInputModule](https://docs.unity3d.com/Manual/script-StandaloneInputModule.html) component on a GameObject, and the Input System is installed, Unity shows a button in the Inspector offering to automatically replace it with a [InputSystemUIInputModule](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html) for you. The [InputSystemUIInputModule](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html) is pre-configured to use default Input Actions to drive the UI, but you can override that configuration to suit your needs. @@ -66,12 +82,12 @@ For each of these types of input, input is sourced and combined from a specific To the UI, a pointer is a position from which clicks and scrolls can be triggered to interact with UI elements at the pointer's position. Pointer-type input is sourced from [point](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html#UnityEngine_InputSystem_UI_InputSystemUIInputModule_point), [leftClick](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html#UnityEngine_InputSystem_UI_InputSystemUIInputModule_leftClick), [rightClick](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html#UnityEngine_InputSystem_UI_InputSystemUIInputModule_rightClick), [middleClick](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html#UnityEngine_InputSystem_UI_InputSystemUIInputModule_middleClick), and [scrollWheel](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html#UnityEngine_InputSystem_UI_InputSystemUIInputModule_scrollWheel). ->[!NOTE] +>**Note:** >The UI input module does not have an association between pointers and cursors. In general, the UI is oblivious to whether a cursor exists for a particular pointer. However, for mouse and pen input, the UI input module will respect [Cusor.lockState](https://docs.unity3d.com/ScriptReference/Cursor-lockState.html) and pin the pointer position at `(-1,-1)` whenever the cursor is locked. This behavior can be changed through the [Cursor Lock Behavior](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html#UnityEngine_InputSystem_UI_InputSystemUIInputModule_cursorLockBehavior) property of the [InputSystemUIInputModule](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html). Multiple pointer Devices may feed input into a single UI input module. Also, in the case of [Touchscreen](../api/UnityEngine.InputSystem.Touchscreen.html), a single Device can have the ability to have multiple concurrent pointers (each finger contact is one pointer). ->[!IMPORTANT] +>**Important:** >Because multiple pointer Devices can feed into the same set of Actions, it is important to set the [action type](./RespondingToActions.md#action-types) to [PassThrough](../api/UnityEngine.InputSystem.InputActionType.html#UnityEngine_InputSystem_InputActionType_PassThrough). This ensures that no filtering is applied to input on these actions and that instead every input is relayed as is. From the perspective of [InputSystemUIInputModule](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html), each [InputDevice](../api/UnityEngine.InputSystem.InputDevice.html) that has one or more controls bound to one of the pointer-type actions is considered a unique pointer. Also, for each [Touchscreen](../api/UnityEngine.InputSystem.Touchscreen.html) devices, each separate [TouchControl](../api/UnityEngine.InputSystem.Controls.TouchControl.html) that has one or more of its controls bound to the those actions is considered its own unique pointer as well. Each pointer receives a unique [pointerId](https://docs.unity3d.com/Packages/com.unity.ugui@1.0/api/UnityEngine.EventSystems.PointerEventData.html#UnityEngine_EventSystems_PointerEventData_pointerId) which generally corresponds to the [deviceId](../api/UnityEngine.InputSystem.InputDevice.html#UnityEngine_InputSystem_InputDevice_deviceId) of the pointer. However, for touch, this will be a combination of [deviceId](../api/UnityEngine.InputSystem.InputDevice.html#UnityEngine_InputSystem_InputDevice_deviceId) and [touchId](../api/UnityEngine.InputSystem.Controls.TouchControl.html#UnityEngine_InputSystem_Controls_TouchControl_touchId). Use [ExtendedPointerEventData.touchId](../api/UnityEngine.InputSystem.UI.ExtendedPointerEventData.html#UnityEngine_InputSystem_UI_ExtendedPointerEventData_touchId) to find the ID for a touch event. @@ -84,7 +100,7 @@ You can influence how the input module deals with concurrent input from multiple |[Single Unified Pointer](../api/UnityEngine.InputSystem.UI.UIPointerBehavior.html#UnityEngine_InputSystem_UI_UIPointerBehavior_SingleUnifiedPointer)|All pointer input is unified such that there is only ever a single pointer. This includes touch and tracked input. This means, for example, that regardless how many devices feed input into [Point](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html#UnityEngine_InputSystem_UI_InputSystemUIInputModule_point), only the last such input in a frame will take effect and become the current UI pointer's position.| |[All Pointers As Is](../api/UnityEngine.InputSystem.UI.UIPointerBehavior.html#UnityEngine_InputSystem_UI_UIPointerBehavior_AllPointersAsIs)|The UI input module will not unify any pointer input. Any device, including touch and tracked devices that feed input pointer-type actions, will be its own pointer (or multiple pointers for touch input).

Note: This might mean that there will be an arbitrary number of pointers in the UI, and several objects might be pointed at concurrently.| ->[!NOTE] +>**Note:** >If you bind a device to a pointer-type action such as [Left Click](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html#UnityEngine_InputSystem_UI_InputSystemUIInputModule_leftClick) without also binding it to [Point](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html#UnityEngine_InputSystem_UI_InputSystemUIInputModule_point), the UI input module will recognize the device as not being able to point and try to route its input into that of another pointer. For example, if you bind [Left Click](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html#UnityEngine_InputSystem_UI_InputSystemUIInputModule_leftClick) to the `Space` key and [Point](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html#UnityEngine_InputSystem_UI_InputSystemUIInputModule_point) to the position of the mouse, then pressing the space bar will result in a left click at the current position of the mouse. For pointer-type input (as well as for [tracked-type input](#tracked-type input)), [InputSystemUIInputModule](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html) will send [ExtendedPointerEventData](../api/UnityEngine.InputSystem.UI.ExtendedPointerEventData.html) instances which are an extended version of the base `PointerEventData`. These events contain additional data such as the [device](../api/UnityEngine.InputSystem.UI.ExtendedPointerEventData.html#UnityEngine_InputSystem_UI_ExtendedPointerEventData_device) and [pointer type](../api/UnityEngine.InputSystem.UI.ExtendedPointerEventData.html#UnityEngine_InputSystem_UI_ExtendedPointerEventData_pointerType) which the event has been generated from. @@ -97,7 +113,7 @@ Navigation-type input controls the current selection based on motion read from t Unlike with [pointer-type](#pointer-type input), where multiple pointer inputs may exist concurrently (think two touches or left- and right-hand tracked input), navigation-type input does not have multiple concurrent instances. In other words, only a single [move](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html#UnityEngine_InputSystem_UI_InputSystemUIInputModule_move) vector and a single [submit](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html#UnityEngine_InputSystem_UI_InputSystemUIInputModule_submit) and [cancel](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html#UnityEngine_InputSystem_UI_InputSystemUIInputModule_cancel) input will be processed by the UI module each frame. However, these inputs need not necessarily come from one single Device always. Arbitrary many inputs can be bound to the respective actions. ->[!IMPORTANT] +>**Important:** >While, [move](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html#UnityEngine_InputSystem_UI_InputSystemUIInputModule_move) should be set to [PassThrough](../api/UnityEngine.InputSystem.InputActionType.html#UnityEngine_InputSystem_InputActionType_PassThrough) Action type, it is important that [submit](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html#UnityEngine_InputSystem_UI_InputSystemUIInputModule_submit) and [cancel](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html#UnityEngine_InputSystem_UI_InputSystemUIInputModule_cancel) be set to the [Button](../api/UnityEngine.InputSystem.InputActionType.html#UnityEngine_InputSystem_InputActionType_Button) Action type. @@ -107,7 +123,7 @@ Navigation input is non-positional, that is, unlike with pointer-type input, the Input from [tracked devices](../api/UnityEngine.InputSystem.TrackedDevice.html) such as [XR controllers](../api/UnityEngine.InputSystem.XR.XRController.html) and [HMDs](../api/UnityEngine.InputSystem.XR.XRHMD.html) essentially behaves like [pointer-type input](#pointer-type-input). The main difference is that the world-space device position and orientation sourced from [trackedDevicePosition](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html#UnityEngine_InputSystem_UI_InputSystemUIInputModule_trackedDevicePosition) and [trackedDeviceOrientation](../api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html#UnityEngine_InputSystem_UI_InputSystemUIInputModule_trackedDeviceOrientation) is translated into a screen-space position via raycasting. ->[!IMPORTANT] +> **Important:** >Because multiple tracked Devices can feed into the same set of Actions, it is important to set the [action type](./RespondingToActions.md#action-types) to [PassThrough](../api/UnityEngine.InputSystem.InputActionType.html#UnityEngine_InputSystem_InputActionType_PassThrough). This ensures that no filtering is applied to input on these actions and that instead every input is relayed as is. For this raycasting to work, you need to add [TrackedDeviceRaycaster](../api/UnityEngine.InputSystem.UI.TrackedDeviceRaycaster.html) to the `GameObject` that has the UI's `Canvas` component. This `GameObject` will usually have a `GraphicRaycaster` component which, however, only works for 2D screen-space raycasting. You can put [TrackedDeviceRaycaster](../api/UnityEngine.InputSystem.UI.TrackedDeviceRaycaster.html) alongside `GraphicRaycaster` and both can be enabled at the same time without advserse effect. @@ -130,12 +146,12 @@ The properties of the [MultiplayerEventSystem](../api/UnityEngine.InputSystem.UI ## Virtual mouse cursor control ->[!NOTE] +> **Note:** >While pointer input generated from a `VirtualMouseInput` component is received in UI Toolkit, the `VirtualMouseInput` component is not officially supported for use with [UI Toolkit](#ui-toolkit-support). At the moment, it only works in combination with the [Unity UI](https://docs.unity3d.com/Manual/com.unity.ugui.html) system. If your application uses gamepads and joysticks as an input, you can use the [navigation Actions](#navigation-type-input) to operate the UI. However, it usually involves extra work to make the UI work well with navigation. An alternative way to operate the UI is to allow gamepads and joysticks to drive the cursor from a "virtual mouse cursor". ->[!TIP] +> **Tip:** >To see an example of a [VirtualMouseInput](../api/UnityEngine.InputSystem.UI.VirtualMouseInput.html) setup, see the [Gamepad Mouse Cursor sample](Installation.md#installing-samples) included with the Input System package. To set this up, follow these steps: @@ -145,7 +161,7 @@ To set this up, follow these steps: 3. If you want the virtual mouse to control the system mouse cursor, set [Cursor Mode](../api/UnityEngine.InputSystem.UI.VirtualMouseInput.html#UnityEngine_InputSystem_UI_VirtualMouseInput_cursorMode) to `Hardware Cursor If Available`. In this mode, the `Cursor Graphic` is hidden when a system `Mouse` is present and you use [Mouse.WarpCursorPosition](../api/UnityEngine.InputSystem.Mouse.html#UnityEngine_InputSystem_Mouse_WarpCursorPosition_UnityEngine_Vector2_) to move the system mouse cursor instead of the software cursor. The transform linked through `Cursor Transform` is not updated in that case. 4. To configure the input to drive the virtual mouse, either add bindings on the various actions (such as `Stick Action`), or enable `Use Reference` and link existing actions from an `.inputactions` asset. ->[!IMPORTANT] +> **Important:** >Make sure that the `InputSystemUIInputModule` on the UI's `EventSystem` does not receive navigation input from the same devices that feed into `VirtualMouseInput`. If, for example, `VirtualMouseInput` is set up to receive input from gamepads, and `Move`, `Submit`, and `Cancel` on `InputSystemUIInputModule` are also linked to the gamepad, then the UI receives input from the gamepad on two channels. ![VirtualMouseInput](Images/VirtualMouseInput.png) @@ -195,11 +211,18 @@ An explicit mode switch is implemented by temporarily switching to UI control wh As of Unity 2021.2, [UI Toolkit](https://docs.unity3d.com/Manual/UIElements.html) is supported as an alternative to the [Unity UI](https://docs.unity3d.com/Manual/com.unity.ugui.html) system for implementing UIs in players. +### Unity 2023.2 and onwards + +As mentioned in the [beginning of this document](#ui-support), from Unity 2023.2 and onwards, the Input System and UI Toolkit are fully integrated with each other. + + +### Unity 2023.1 and earlier + Input support for both [Unity UI](https://docs.unity3d.com/Manual/com.unity.ugui.html) and [UI Toolkit](https://docs.unity3d.com/Manual/UIElements.html) is based on the same [EventSystem](https://docs.unity3d.com/Packages/com.unity.ugui@1.0/manual/EventSystem.html) and [BaseInputModule](https://docs.unity3d.com/Packages/com.unity.ugui@1.0/manual/InputModules.html) subsystem. In other words, the same input setup based on [InputSystemUIInputModule](#setting-up-ui-input) supports input in either UI solution and nothing extra needs to be done. Internally, UI Toolkit installs an event listener in the form of the `PanelEventHandler` component which intercepts events that `InputSystemUIInputModule` sends and translates them into UI Toolkit-specific events that are then routed into the visual tree. If you employ `EventSystem.SetUITookitEventSystemOverride`, this default mechanism is bypassed. ->[!NOTE] +>**Note:** >XR ([tracked-type input](#tracked-type-input)) is not yet supported in combination with UI Toolkit. This means that you cannot use devices such as VR controllers to operate interfaces created with UI Toolkit. There are some additional things worth noting: diff --git a/Packages/com.unity.inputsystem/Documentation~/Workflow-Actions.md b/Packages/com.unity.inputsystem/Documentation~/Workflow-Actions.md index a7a37d48be..9d930b1c2d 100644 --- a/Packages/com.unity.inputsystem/Documentation~/Workflow-Actions.md +++ b/Packages/com.unity.inputsystem/Documentation~/Workflow-Actions.md @@ -11,7 +11,11 @@ In this workflow, you configure Actions in the [**Input Actions** editor](Action ## Configure Actions in the Actions Editor -Open the Input Actions editor by going to **Edit** > **Project Settings** > **Input System Package** > **Input Actions** +Open the Input System settings by going to **Edit** > **Project Settings** > **Input System Package** > **Input Actions**. + +If you have not yet created and assigned the default [project-wide actions](ProjectWideActions.md), the Input System settings window displays a button to do this. + +Once you have created and assigned the default project-wide actions, the Actions Editor is displayed: ![image alt text](./Images/ProjectSettingsInputActionsSimpleShot.png) *The Input Actions editor in the Project Settings window* @@ -92,3 +96,5 @@ public class Example : MonoBehaviour ``` > **Note:** You should avoid using `FindAction` in your Update() loop, because it performs a string-based lookup which could impact performance. This is why the Action refeferences in the example above are found during the Start() functionm, and stored in variables after finding them. + +> **Note:** The [InputSystem.actions](../api/UnityEngine.InputSystem.InputSystem.html) API refers specifically to the Action Asset assigned as the [project-wide actions](ProjectWideActions.md). Most projects only require one Action Asset, but if you are using more than one Action Asset, you must create a reference using the type InputActionAsset to the asset you wish to access. diff --git a/Packages/com.unity.inputsystem/Documentation~/Workflow-PlayerInput.md b/Packages/com.unity.inputsystem/Documentation~/Workflow-PlayerInput.md index 208d92a665..fb053d44f8 100644 --- a/Packages/com.unity.inputsystem/Documentation~/Workflow-PlayerInput.md +++ b/Packages/com.unity.inputsystem/Documentation~/Workflow-PlayerInput.md @@ -51,10 +51,13 @@ public class ExampleScript : MonoBehaviour } ``` +> __Note__: As a general rule, if you are using the PlayerInput workflow, you should read input through callbacks as described above, however if you need to access the input actions asset directly while using the PlayerInput component, you should access the [PlayerInput component's copy of the actions](../api/UnityEngine.InputSystem.PlayerInput.html#UnityEngine_InputSystem_PlayerInput_actions), not `InputSystem.actions`. +> +> This is because the PlayerInput component performs device filtering to automatically assign devices to multiple players, so each instance has its own copy of the actions filtered for each player. If you bypass this by reading `InputSystem.actions` directly, the automatic device assignment won't work. This workflow has pros and cons when compared to the previous workflow which uses an [Actions without a PlayerInput component](Workflow-Actions.html). -You can see compared with the previous workflow code example that this method requires less code, because you do not have to reference the Actions Asset or set up the event handler methods in your own script. However it does require more set-up in the Editor, and could make debugging more difficult because the connections between your actions and code are not hard-coded. +You can see compared with the previous workflow, this workflow requires less code, because you do not have to reference the Actions Asset or set up the event handler methods in your own script. However it does require more set-up in the Editor, and could make debugging more difficult because the connections between your actions and code are not hard-coded. As with the other workflows described in this section, there is a trade-off between flexibility, simplicity, and speed of implementation. diff --git a/Packages/com.unity.inputsystem/Documentation~/Workflows.md b/Packages/com.unity.inputsystem/Documentation~/Workflows.md index 7a91080686..4b97018db0 100644 --- a/Packages/com.unity.inputsystem/Documentation~/Workflows.md +++ b/Packages/com.unity.inputsystem/Documentation~/Workflows.md @@ -15,9 +15,9 @@ The descriptions below describe these main workflows and link to more detailed d | | | |---|---| -|[**Configure Actions in the Editor and read their values from Action references in your script**](Workflow-Actions.md)

This is the primary and recommended workflow for most situations. In this workflow, you use the Input Settings window to configure your project-wide actions and bindings, then set up references and read the values for those actions in your code [(read more)](Workflow-Actions.md).

|![image alt text](Images/Workflow-Actions.png)| -|[**Configure input in the Editor, use PlayerInput component to handle events**](Workflow-PlayerInput.html)

This workflow adds more complex functionality on top of the first workflow. It provides features that are useful in multiplayer scenarios such as split-screen or online multiplayer. In addition it provides features that allow you to connect up callbacks directly from Actions to your own callback handler methods, removing the need to deal with Action references in your code. [(read more)](Workflow-PlayerInput.html).

|![image alt text](Images/Workflow-PlayerInput.png)| -|[**Read user input directly from devices**](Workflow-Direct.html)

This workflow is a simplified, script-only approach which is less abstracted, but also less flexible. It bypasses the Actions and Bindings features entirely, and instead your script explicitly references specific device controls (such as "left gamepad stick") and reads the values directly. This is suitable for fast prototyping, or single fixed platform scenarios [(read more)](Workflow-Direct.html).

|![image alt text](Images/Workflow-Direct.png)| +|[**Configure Actions in the Editor and read their values from Action references in your script**](Workflow-Actions.md)

This is the **recommended** workflow for most situations. In this workflow, you use the Input Settings window to configure your project-wide actions and bindings, then set up references and read the values for those actions in your code [(read more)](Workflow-Actions.md).

|![image alt text](Images/Workflow-Actions.png)| +|[**Configure input in the Editor, use PlayerInput component to handle events**](Workflow-PlayerInput.html)

This workflow adds more complex functionality on top of the first workflow. It provides features that allow you to connect up **callbacks** directly from Actions to your own callback handler methods, removing the need to deal with Action references in your code. It also provides features that are useful in **local multiplayer** scenarios such as device assignment and split-screen functionality. [(read more)](Workflow-PlayerInput.html).

|![image alt text](Images/Workflow-PlayerInput.png)| +|[**Read user input directly from devices**](Workflow-Direct.html)

This workflow is a simplified, script-only approach. It bypasses the Actions and Bindings features entirely, and instead your script explicitly references specific device controls (such as "left gamepad stick") and reads the values directly. This is suitable for **fast prototyping**, or single fixed platform scenarios. It is a **less flexible** workflow because it bypasses some of the main input system features [(read more)](Workflow-Direct.html).

|![image alt text](Images/Workflow-Direct.png)| diff --git a/Packages/com.unity.inputsystem/Documentation~/filter.yml b/Packages/com.unity.inputsystem/Documentation~/filter.yml index 7a67e9f97e..844f071c39 100644 --- a/Packages/com.unity.inputsystem/Documentation~/filter.yml +++ b/Packages/com.unity.inputsystem/Documentation~/filter.yml @@ -31,9 +31,6 @@ apiRules: hasAttribute: uid: System.ObsoleteAttribute type: Type - - exclude: - uidRegex: ^Global Namespace$ - type: Namespace - exclude: uidRegex: ^UnityEngine\.InputSystem\.Samples\..*$ type: Namespace diff --git a/Packages/com.unity.inputsystem/Documentation~/index.md b/Packages/com.unity.inputsystem/Documentation~/index.md index 5ed7f7e84b..b47e1a88f0 100644 --- a/Packages/com.unity.inputsystem/Documentation~/index.md +++ b/Packages/com.unity.inputsystem/Documentation~/index.md @@ -17,5 +17,5 @@ During the installation process for the Input System package, the installer offe To get started, see the [Installation](Installation.md) and [Workflows](Workflows.md) sections. For a demo project, see the [Warriors demo](https://github.com/UnityTechnologies/InputSystem_Warriors) on GitHub. -![](Images/ProjectSettingsInputActionsSimpleShot.png)
+![](Images/ActionsEditor.png)
_The Input Actions Editor, displaying some of the default actions that come pre-configured with the Input System package._ diff --git a/Packages/com.unity.inputsystem/Documentation~/projectMetadata.json b/Packages/com.unity.inputsystem/Documentation~/projectMetadata.json new file mode 100644 index 0000000000..fe955ab06e --- /dev/null +++ b/Packages/com.unity.inputsystem/Documentation~/projectMetadata.json @@ -0,0 +1,3 @@ +{ + "hideGlobalNamespace": true +} \ No newline at end of file diff --git a/Packages/com.unity.inputsystem/InputSystem/Actions/Composites/AxisComposite.cs b/Packages/com.unity.inputsystem/InputSystem/Actions/Composites/AxisComposite.cs index 8375e4c6f2..3abc9757b9 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Actions/Composites/AxisComposite.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Actions/Composites/AxisComposite.cs @@ -3,6 +3,13 @@ using UnityEngine.InputSystem.Processors; using UnityEngine.InputSystem.Utilities; +#if UNITY_EDITOR +using System; +using UnityEditor; +using UnityEngine.InputSystem.Editor; +using UnityEngine.UIElements; +#endif + namespace UnityEngine.InputSystem.Composites { /// @@ -16,7 +23,7 @@ namespace UnityEngine.InputSystem.Composites /// /// /// var action = new InputAction(); - /// action.AddCompositeBinding("Axis(minValue=0,maxValue=2") + /// action.AddCompositeBinding("Axis(minValue=0,maxValue=2)") /// .With("Negative", "<Keyboard>/a") /// .With("Positive", "<Keyboard>/d"); /// @@ -73,7 +80,7 @@ public class AxisComposite : InputBindingComposite /// /// /// var action = new InputAction(); - /// action.AddCompositeBinding("Axis(minValue=0,maxValue=2") + /// action.AddCompositeBinding("Axis(minValue=0,maxValue=2)") /// .With("Negative", "<Keyboard>/a") /// .With("Positive", "<Keyboard>/d"); /// @@ -95,7 +102,7 @@ public class AxisComposite : InputBindingComposite /// /// /// var action = new InputAction(); - /// action.AddCompositeBinding("Axis(minValue=0,maxValue=2") + /// action.AddCompositeBinding("Axis(minValue=0,maxValue=2)") /// .With("Negative", "<Keyboard>/a") /// .With("Positive", "<Keyboard>/d"); /// @@ -201,4 +208,38 @@ public enum WhichSideWins Negative = 2, } } + + #if UNITY_EDITOR + internal class AxisCompositeEditor : InputParameterEditor + { + private GUIContent m_WhichAxisWinsLabel = new GUIContent("Which Side Wins", + "Determine which axis 'wins' if both are actuated at the same time. " + + "If 'Neither' is selected, the result is 0 (or, more precisely, " + + "the midpoint between minValue and maxValue)."); + + public override void OnGUI() + { + target.whichSideWins = (AxisComposite.WhichSideWins)EditorGUILayout.EnumPopup(m_WhichAxisWinsLabel, target.whichSideWins); + } + +#if UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS + public override void OnDrawVisualElements(VisualElement root, Action onChangedCallback) + { + var modeField = new EnumField(m_WhichAxisWinsLabel.text, target.whichSideWins) + { + tooltip = m_WhichAxisWinsLabel.tooltip + }; + + modeField.RegisterValueChangedCallback(evt => + { + target.whichSideWins = (AxisComposite.WhichSideWins)evt.newValue; + onChangedCallback(); + }); + + root.Add(modeField); + } + +#endif + } + #endif } diff --git a/Packages/com.unity.inputsystem/InputSystem/Actions/Composites/Vector2Composite.cs b/Packages/com.unity.inputsystem/InputSystem/Actions/Composites/Vector2Composite.cs index c5f001587b..82cb866149 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Actions/Composites/Vector2Composite.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Actions/Composites/Vector2Composite.cs @@ -3,13 +3,11 @@ using UnityEngine.InputSystem.Controls; using UnityEngine.InputSystem.Layouts; using UnityEngine.InputSystem.Utilities; -using UnityEngine.Scripting; #if UNITY_EDITOR using UnityEditor; using UnityEngine.InputSystem.Editor; using UnityEngine.UIElements; -using UnityEditor.UIElements; #endif ////TODO: add support for ramp up/down @@ -207,9 +205,9 @@ public override void OnGUI() #if UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS public override void OnDrawVisualElements(VisualElement root, Action onChangedCallback) { - var modeField = new EnumField("Mode", target.mode) + var modeField = new EnumField(m_ModeLabel.text, target.mode) { - tooltip = m_ModeLabel.text + tooltip = m_ModeLabel.tooltip }; modeField.RegisterValueChangedCallback(evt => diff --git a/Packages/com.unity.inputsystem/InputSystem/Actions/Composites/Vector3Composite.cs b/Packages/com.unity.inputsystem/InputSystem/Actions/Composites/Vector3Composite.cs index c634f8ad6e..a36827c1cb 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Actions/Composites/Vector3Composite.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Actions/Composites/Vector3Composite.cs @@ -2,13 +2,11 @@ using System.ComponentModel; using UnityEngine.InputSystem.Layouts; using UnityEngine.InputSystem.Utilities; -using UnityEngine.Scripting; #if UNITY_EDITOR using UnityEditor; using UnityEngine.InputSystem.Editor; using UnityEngine.UIElements; -using UnityEditor.UIElements; #endif namespace UnityEngine.InputSystem.Composites @@ -172,7 +170,7 @@ public enum Mode } #if UNITY_EDITOR - internal class Vector3CompositeEditor : InputParameterEditor + internal class Vector3CompositeEditor : InputParameterEditor { private GUIContent m_ModeLabel = new GUIContent("Mode", "How to synthesize a Vector3 from the inputs. Digital " @@ -181,20 +179,20 @@ internal class Vector3CompositeEditor : InputParameterEditor public override void OnGUI() { - target.mode = (Vector2Composite.Mode)EditorGUILayout.EnumPopup(m_ModeLabel, target.mode); + target.mode = (Vector3Composite.Mode)EditorGUILayout.EnumPopup(m_ModeLabel, target.mode); } #if UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS public override void OnDrawVisualElements(VisualElement root, Action onChangedCallback) { - var modeField = new EnumField("Mode", target.mode) + var modeField = new EnumField(m_ModeLabel.text, target.mode) { - tooltip = m_ModeLabel.text + tooltip = m_ModeLabel.tooltip }; modeField.RegisterValueChangedCallback(evt => { - target.mode = (Vector2Composite.Mode)evt.newValue; + target.mode = (Vector3Composite.Mode)evt.newValue; onChangedCallback(); }); diff --git a/Packages/com.unity.inputsystem/InputSystem/Actions/InputAction.cs b/Packages/com.unity.inputsystem/InputSystem/Actions/InputAction.cs index 51e7e4afd5..e303f16570 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Actions/InputAction.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Actions/InputAction.cs @@ -501,7 +501,6 @@ public ReadOnlyArray controls /// only ever use and not go to or (as /// pass-through actions do not follow the start-performed-canceled model in general). - /// Also, interactions can choose their /// /// While an action is disabled, its phase is . /// @@ -583,7 +582,7 @@ public event Action performed public bool triggered => WasPerformedThisFrame(); /// - /// The currently active control that is driving the action. Null while the action + /// The currently active control that is driving the action. while the action /// is in waiting () or canceled () /// state. Otherwise the control that last had activity on it which wasn't ignored. /// @@ -608,6 +607,48 @@ public unsafe InputControl activeControl } } + /// + /// Type of value returned by and currently expected + /// by . while the action + /// is in waiting () or canceled () + /// state as this is based on the currently active control that is driving the action. + /// + /// Type of object returned when reading a value. + /// + /// The type of value returned by an action is usually determined by the + /// that triggered the action, i.e. by the + /// control referenced from . + /// + /// However, if the binding that triggered is a composite, then the composite + /// will determine values and not the individual control that triggered (that + /// one just feeds values into the composite). + /// + /// The active value type may change depending on which controls are actuated if there are multiple + /// bindings with different control types. This property can be used to ensure you are calling the + /// method with the expected type parameter if your action is + /// configured to allow multiple control types as otherwise that method will throw an + /// if the type of the control that triggered the action does not match the type parameter. + /// + /// + /// + /// + public unsafe Type activeValueType + { + get + { + var state = GetOrCreateActionMap().m_State; + if (state != null) + { + var actionStatePtr = &state.actionStates[m_ActionIndexInState]; + var controlIndex = actionStatePtr->controlIndex; + if (controlIndex != InputActionState.kInvalidIndex) + return state.GetValueType(actionStatePtr->bindingIndex, controlIndex); + } + + return null; + } + } + /// /// Whether the action wants a state check on its bound controls as soon as it is enabled. This is always /// true for actions but can optionally be enabled for @@ -990,7 +1031,8 @@ public unsafe TValue ReadValue() where TValue : struct { var state = GetOrCreateActionMap().m_State; - if (state == null) return default(TValue); + if (state == null) + return default(TValue); var actionStatePtr = &state.actionStates[m_ActionIndexInState]; return actionStatePtr->phase.IsInProgress() @@ -1027,6 +1069,38 @@ public unsafe object ReadValueAsObject() return null; } + /// + /// Read the current amount of actuation of the control that is driving this action. + /// + /// Returns the current level of control actuation (usually [0..1]) or -1 if + /// the control is actuated but does not support computing magnitudes. + /// + /// Magnitudes do not make sense for all types of controls. Controls that have no meaningful magnitude + /// will return -1 when calling this method. Any negative magnitude value should be considered an invalid value. + ///
+ /// The magnitude returned by an action is usually determined by the + /// that triggered the action, i.e. by the + /// control referenced from . + ///
+ /// However, if the binding that triggered is a composite, then the composite + /// will determine the magnitude and not the individual control that triggered. + /// Instead, the value of the control that triggered the action will be fed into the composite magnitude calculation. + ///
+ /// + /// + public unsafe float GetControlMagnitude() + { + var state = GetOrCreateActionMap().m_State; + if (state != null) + { + var actionStatePtr = &state.actionStates[m_ActionIndexInState]; + if (actionStatePtr->haveMagnitude) + return actionStatePtr->magnitude; + } + + return 0f; + } + /// /// Reset the action state to default. /// @@ -1203,7 +1277,7 @@ public unsafe bool WasPressedThisFrame() /// /// /// - /// + /// public unsafe bool WasReleasedThisFrame() { var state = GetOrCreateActionMap().m_State; @@ -1259,6 +1333,7 @@ public unsafe bool WasReleasedThisFrame() /// The meaning of "frame" is either the current "dynamic" update (MonoBehaviour.Update) or the current /// fixed update (MonoBehaviour.FixedUpdate) depending on the value of the setting. /// + /// /// /// public unsafe bool WasPerformedThisFrame() @@ -1275,6 +1350,79 @@ public unsafe bool WasPerformedThisFrame() return false; } + /// + /// Check whether transitioned from to any other phase + /// value at least once in the current frame. + /// + /// True if the action completed this frame. + /// + /// Although is technically a phase, this method does not consider disabling + /// the action while the action is in to be "completed". + /// + /// This method is different from in that it depends directly on the + /// interaction(s) driving the action (including the default interaction if no specific interaction + /// has been added to the action or binding). + /// + /// For example, let's say the action is bound to the space bar and that the binding has a + /// assigned to it. In the frame where the space bar + /// is pressed, will be true (because the button/key is now pressed) + /// but will still be false (because the hold has not been performed yet). + /// If at that time the space bar is released, will be true (because the + /// button/key is now released) but WasCompletedThisFrame will still be false (because the hold + /// had not been performed yet). If instead the space bar is held down for long enough for the hold interaction, + /// the phase will change to and stay and + /// will be true for one frame as it meets the duration threshold. Once released, WasCompletedThisFrame will be true + /// (because the action is no longer performed) and only in the frame where the hold transitioned away from Performed. + /// + /// For another example where the action could be considered pressed but also completed, let's say the action + /// is bound to the thumbstick and that the binding has a Sector interaction from the XR Interaction Toolkit assigned + /// to it such that it only performs in the forward sector area past a button press threshold. In the frame where the + /// thumbstick is pushed forward, both will be true (because the thumbstick actuation is + /// now considered pressed) and will be true (because the thumbstick is in + /// the forward sector). If the thumbstick is then moved to the left in a sweeping motion, + /// will still be true. However, WasCompletedThisFrame will also be true (because the thumbstick is + /// no longer in the forward sector while still crossed the button press threshold) and only in the frame where + /// the thumbstick was no longer within the forward sector. For more details about the Sector interaction, see + /// SectorInteraction + /// in the XR Interaction Toolkit Scripting API documentation. + ///
+ /// Unlike , which will reset when the action goes back to waiting + /// state, this property will stay true for the duration of the current frame (that is, until the next + /// runs) as long as the action was completed at least once. + /// + /// + /// + /// var teleport = playerInput.actions["Teleport"]; + /// if (teleport.WasPerformedThisFrame()) + /// InitiateTeleport(); + /// else if (teleport.WasCompletedThisFrame()) + /// StopTeleport(); + /// + /// + /// + /// This method will disregard whether the action is currently enabled or disabled. It will keep returning + /// true for the duration of the frame even if the action was subsequently disabled in the frame. + /// + /// The meaning of "frame" is either the current "dynamic" update (MonoBehaviour.Update) or the current + /// fixed update (MonoBehaviour.FixedUpdate) depending on the value of the setting. + ///
+ /// + /// + /// + public unsafe bool WasCompletedThisFrame() + { + var state = GetOrCreateActionMap().m_State; + + if (state != null) + { + var actionStatePtr = &state.actionStates[m_ActionIndexInState]; + var currentUpdateStep = InputUpdate.s_UpdateStepCount; + return actionStatePtr->lastCompletedInUpdate == currentUpdateStep && currentUpdateStep != default; + } + + return false; + } + /// /// Return the completion percentage of the timeout (if any) running on the current interaction. /// @@ -1298,8 +1446,8 @@ public unsafe bool WasPerformedThisFrame() /// completion percentage and . /// /// The meaning of the timeout is dependent on the interaction in play. For a , - /// the timeout represents "completion" (that is, the time until a "hold" is considered to be performed), whereas - /// for a it represents "time to failure" (that is, the remaining time window + /// "completion" represents the duration timeout (that is, the time until a "hold" is considered to be performed), whereas + /// for a "completion" represents "time to failure" (that is, the remaining time window /// that the interaction can be completed within). /// /// Note that an interaction might run multiple timeouts in succession. One such example is . @@ -1847,6 +1995,7 @@ public unsafe double startTime /// /// /// + /// public Type valueType => m_State?.GetValueType(bindingIndex, controlIndex); /// @@ -1876,8 +2025,6 @@ public int valueSizeInBytes } } - ////TODO: need ability to read as button - /// /// Read the value of the action as a raw byte buffer. This allows reading /// values without having to know value types but also, unlike , diff --git a/Packages/com.unity.inputsystem/InputSystem/Actions/InputActionAsset.cs b/Packages/com.unity.inputsystem/InputSystem/Actions/InputActionAsset.cs index 5c54b13bcd..4949c5241c 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Actions/InputActionAsset.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Actions/InputActionAsset.cs @@ -1,7 +1,6 @@ using System; using System.Collections; using System.Collections.Generic; -using System.Linq; using UnityEngine.InputSystem.Utilities; ////TODO: make the FindAction logic available on any IEnumerable and IInputActionCollection via extension methods @@ -297,14 +296,12 @@ public InputAction this[string actionNameOrId] /// public string ToJson() { - var fileJson = new WriteFileJson + return JsonUtility.ToJson(new WriteFileJson { name = name, maps = InputActionMap.WriteFileJson.FromMaps(m_ActionMaps).maps, controlSchemes = InputControlScheme.SchemeJson.ToJson(m_ControlSchemes), - }; - - return JsonUtility.ToJson(fileJson, true); + }, true); } /// @@ -928,6 +925,9 @@ private void OnDestroy() [SerializeField] internal InputActionMap[] m_ActionMaps; [SerializeField] internal InputControlScheme[] m_ControlSchemes; + #if UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS + [SerializeField] internal bool m_IsProjectWide; + #endif ////TODO: make this persistent across domain reloads /// @@ -948,6 +948,13 @@ internal struct WriteFileJson public InputControlScheme.SchemeJson[] controlSchemes; } + [Serializable] + internal struct WriteFileJsonNoName + { + public InputActionMap.WriteMapJson[] maps; + public InputControlScheme.SchemeJson[] controlSchemes; + } + [Serializable] internal struct ReadFileJson { diff --git a/Packages/com.unity.inputsystem/InputSystem/Actions/InputActionMap.cs b/Packages/com.unity.inputsystem/InputSystem/Actions/InputActionMap.cs index 0bc50486ad..d26eb8f251 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Actions/InputActionMap.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Actions/InputActionMap.cs @@ -1984,6 +1984,7 @@ public void OnAfterDeserialize() { m_State = null; m_MapIndexInState = InputActionState.kInvalidIndex; + m_EnabledActionsCount = 0; // Restore references of actions linking back to us. if (m_Actions != null) diff --git a/Packages/com.unity.inputsystem/InputSystem/Actions/InputActionState.cs b/Packages/com.unity.inputsystem/InputSystem/Actions/InputActionState.cs index 2524c7a6df..f1a1b11509 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Actions/InputActionState.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Actions/InputActionState.cs @@ -548,6 +548,7 @@ private void RestoreActionStatesAfterReResolvingBindings(UnmanagedMemory oldStat newActionState.lastCanceledInUpdate = oldActionState.lastCanceledInUpdate; newActionState.lastPerformedInUpdate = oldActionState.lastPerformedInUpdate; + newActionState.lastCompletedInUpdate = oldActionState.lastCompletedInUpdate; newActionState.pressedInUpdate = oldActionState.pressedInUpdate; newActionState.releasedInUpdate = oldActionState.releasedInUpdate; newActionState.startTime = oldActionState.startTime; @@ -839,7 +840,7 @@ public void ResetActionState(int actionIndex, InputActionPhase toPhase = InputAc for (var i = 0; i < interactionCount; ++i) { var interactionIndex = interactionStartIndex + i; - ResetInteractionStateAndCancelIfNecessary(mapIndex, bindingIndex, interactionIndex); + ResetInteractionStateAndCancelIfNecessary(mapIndex, bindingIndex, interactionIndex, phaseAfterCanceled: toPhase); } } } @@ -852,7 +853,8 @@ public void ResetActionState(int actionIndex, InputActionPhase toPhase = InputAc "Action has been triggered but apparently not from an interaction yet there's interactions on the binding that got triggered?!?"); if (actionState->phase != InputActionPhase.Canceled) - ChangePhaseOfAction(InputActionPhase.Canceled, ref actionStates[actionIndex]); + ChangePhaseOfAction(InputActionPhase.Canceled, ref actionStates[actionIndex], + phaseAfterPerformedOrCanceled: toPhase); } } @@ -872,6 +874,7 @@ public void ResetActionState(int actionIndex, InputActionPhase toPhase = InputAc { actionState->lastCanceledInUpdate = default; actionState->lastPerformedInUpdate = default; + actionState->lastCompletedInUpdate = default; actionState->pressedInUpdate = default; actionState->releasedInUpdate = default; } @@ -1599,7 +1602,7 @@ private static bool ShouldIgnoreInputOnCompositeBinding(BindingState* binding, I /// If an action has multiple controls bound to it, control state changes on the action may conflict with each other. /// If that happens, we resolve the conflict by always sticking to the most actuated control. /// - /// Pass-through actions () will always bypass conflict resolution and respond + /// Pass-through actions () will always bypass conflict resolution and respond /// to every value change. /// /// Actions that are resolved to only a single control will early out of conflict resolution. @@ -2133,6 +2136,8 @@ private void StopTimeout(int interactionIndex) /// (default), (if the action is supposed /// to be oscillate between started and performed), or (if the action is /// supposed to perform over and over again until canceled). + /// If is , + /// this determines which phase to transition to after the action has been canceled. /// Indicates if the system should try and change the phase of other /// interactions on the same action that are already started or performed after cancelling this interaction. This should be /// false when resetting interactions. @@ -2151,7 +2156,9 @@ private void StopTimeout(int interactionIndex) /// long and the SlowTapInteraction will get to drive the action next). /// internal void ChangePhaseOfInteraction(InputActionPhase newPhase, ref TriggerState trigger, - InputActionPhase phaseAfterPerformed = InputActionPhase.Waiting, bool processNextInteractionOnCancel = true) + InputActionPhase phaseAfterPerformed = InputActionPhase.Waiting, + InputActionPhase phaseAfterCanceled = InputActionPhase.Waiting, + bool processNextInteractionOnCancel = true) { var interactionIndex = trigger.interactionIndex; var bindingIndex = trigger.bindingIndex; @@ -2165,6 +2172,8 @@ internal void ChangePhaseOfInteraction(InputActionPhase newPhase, ref TriggerSta var phaseAfterPerformedOrCanceled = InputActionPhase.Waiting; if (newPhase == InputActionPhase.Performed) phaseAfterPerformedOrCanceled = phaseAfterPerformed; + else if (newPhase == InputActionPhase.Canceled) + phaseAfterPerformedOrCanceled = phaseAfterCanceled; // Any time an interaction changes phase, we cancel all pending timeouts. ref var interactionState = ref interactionStates[interactionIndex]; @@ -2185,8 +2194,7 @@ internal void ChangePhaseOfInteraction(InputActionPhase newPhase, ref TriggerSta if (actionStates[actionIndex].phase == InputActionPhase.Waiting) { // We're the first interaction to go to the start phase. - if (!ChangePhaseOfAction(newPhase, ref trigger, - phaseAfterPerformedOrCanceled: phaseAfterPerformedOrCanceled)) + if (!ChangePhaseOfAction(newPhase, ref trigger, phaseAfterPerformedOrCanceled)) return; } else if (newPhase == InputActionPhase.Canceled && actionStates[actionIndex].interactionIndex == trigger.interactionIndex) @@ -2195,7 +2203,7 @@ internal void ChangePhaseOfInteraction(InputActionPhase newPhase, ref TriggerSta // to go into start phase. *Or* there's an interaction that has // already performed. - if (!ChangePhaseOfAction(newPhase, ref trigger)) + if (!ChangePhaseOfAction(newPhase, ref trigger, phaseAfterPerformedOrCanceled)) return; if (processNextInteractionOnCancel == false) @@ -2221,7 +2229,7 @@ internal void ChangePhaseOfInteraction(InputActionPhase newPhase, ref TriggerSta time = startTime, startTime = startTime, }; - if (!ChangePhaseOfAction(InputActionPhase.Started, ref triggerForInteraction)) + if (!ChangePhaseOfAction(InputActionPhase.Started, ref triggerForInteraction, phaseAfterPerformedOrCanceled)) return; // If the interaction has already performed, trigger it now. @@ -2237,7 +2245,7 @@ internal void ChangePhaseOfInteraction(InputActionPhase newPhase, ref TriggerSta time = interactionStates[index].performedTime, // Time when the interaction performed. startTime = startTime, }; - if (!ChangePhaseOfAction(InputActionPhase.Performed, ref triggerForInteraction)) + if (!ChangePhaseOfAction(InputActionPhase.Performed, ref triggerForInteraction, phaseAfterPerformedOrCanceled)) return; } break; @@ -2293,7 +2301,9 @@ internal void ChangePhaseOfInteraction(InputActionPhase newPhase, ref TriggerSta /// /// New phase to transition to. /// Trigger that caused the change in phase. - /// + /// The phase to immediately transition to after + /// when that is or ( + /// by default). /// /// The change in phase is visible to observers, i.e. on the various callbacks and notifications. /// @@ -2330,7 +2340,8 @@ private bool ChangePhaseOfAction(InputActionPhase newPhase, ref TriggerState tri if (actionState->isPassThrough && trigger.interactionIndex == kInvalidIndex) { // No constraints on pass-through actions except if there are interactions driving the action. - ChangePhaseOfActionInternal(actionIndex, actionState, newPhase, ref trigger); + ChangePhaseOfActionInternal(actionIndex, actionState, newPhase, ref trigger, + isDisablingAction: newPhase == InputActionPhase.Canceled && phaseAfterPerformedOrCanceled == InputActionPhase.Disabled); if (!actionState->inProcessing) return false; } @@ -2356,7 +2367,8 @@ private bool ChangePhaseOfAction(InputActionPhase newPhase, ref TriggerState tri } else if (actionState->phase != newPhase || newPhase == InputActionPhase.Performed) // We allow Performed to trigger repeatedly. { - ChangePhaseOfActionInternal(actionIndex, actionState, newPhase, ref trigger); + ChangePhaseOfActionInternal(actionIndex, actionState, newPhase, ref trigger, + isDisablingAction: newPhase == InputActionPhase.Canceled && phaseAfterPerformedOrCanceled == InputActionPhase.Disabled); if (!actionState->inProcessing) return false; @@ -2380,7 +2392,7 @@ private bool ChangePhaseOfAction(InputActionPhase newPhase, ref TriggerState tri return true; } - private void ChangePhaseOfActionInternal(int actionIndex, TriggerState* actionState, InputActionPhase newPhase, ref TriggerState trigger) + private void ChangePhaseOfActionInternal(int actionIndex, TriggerState* actionState, InputActionPhase newPhase, ref TriggerState trigger, bool isDisablingAction = false) { Debug.Assert(trigger.mapIndex == actionState->mapIndex, "Map index on trigger does not correspond to map index of trigger state"); @@ -2394,7 +2406,7 @@ private void ChangePhaseOfActionInternal(int actionIndex, TriggerState* actionSt if (newPhase != InputActionPhase.Canceled) newState.magnitude = trigger.magnitude; else - newState.magnitude = 0; + newState.magnitude = 0f; newState.phase = newPhase; if (newPhase == InputActionPhase.Performed) @@ -2422,6 +2434,15 @@ private void ChangePhaseOfActionInternal(int actionIndex, TriggerState* actionSt newState.lastPerformedInUpdate = actionState->lastPerformedInUpdate; newState.lastCanceledInUpdate = actionState->lastCanceledInUpdate; } + + // When we go from Performed to Disabling, we take a detour through Canceled. + // To replicate the behavior of releasedInUpdate where it doesn't get updated when the action is disabled + // from being performed, we skip updating lastCompletedInUpdate if Disabled is the phase after Canceled. + if (actionState->phase == InputActionPhase.Performed && newPhase != InputActionPhase.Performed && !isDisablingAction) + newState.lastCompletedInUpdate = InputUpdate.s_UpdateStepCount; + else + newState.lastCompletedInUpdate = actionState->lastCompletedInUpdate; + newState.pressedInUpdate = actionState->pressedInUpdate; newState.releasedInUpdate = actionState->releasedInUpdate; if (newPhase == InputActionPhase.Started) @@ -2597,7 +2618,7 @@ internal InputActionMap GetActionMap(int bindingIndex) } [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "mapIndex", Justification = "Keep this for future implementation")] - private void ResetInteractionStateAndCancelIfNecessary(int mapIndex, int bindingIndex, int interactionIndex) + private void ResetInteractionStateAndCancelIfNecessary(int mapIndex, int bindingIndex, int interactionIndex, InputActionPhase phaseAfterCanceled) { Debug.Assert(interactionIndex >= 0 && interactionIndex < totalInteractionCount, "Interaction index out of range"); Debug.Assert(bindingIndex >= 0 && bindingIndex < totalBindingCount, "Binding index out of range"); @@ -2616,7 +2637,9 @@ private void ResetInteractionStateAndCancelIfNecessary(int mapIndex, int binding { case InputActionPhase.Started: case InputActionPhase.Performed: - ChangePhaseOfInteraction(InputActionPhase.Canceled, ref actionStates[actionIndex], processNextInteractionOnCancel: false); + ChangePhaseOfInteraction(InputActionPhase.Canceled, ref actionStates[actionIndex], + phaseAfterCanceled: phaseAfterCanceled, + processNextInteractionOnCancel: false); break; } @@ -3568,7 +3591,7 @@ public int partIndex /// other is to represent the current actuation state of an action as a whole. The latter is stored in /// while the former is passed around as temporary instances on the stack. /// - [StructLayout(LayoutKind.Explicit, Size = 48)] + [StructLayout(LayoutKind.Explicit, Size = 52)] public struct TriggerState { public const int kMaxNumMaps = byte.MaxValue; @@ -3591,6 +3614,7 @@ public struct TriggerState [FieldOffset(36)] private uint m_LastCanceledInUpdate; [FieldOffset(40)] private uint m_PressedInUpdate; [FieldOffset(44)] private uint m_ReleasedInUpdate; + [FieldOffset(48)] private uint m_LastCompletedInUpdate; /// /// Phase being triggered by the control value change. @@ -3738,7 +3762,7 @@ public int interactionIndex /// /// Update step count () in which action triggered/performed last. - /// Zero if the action did not trigger yet. Also reset to zero when the action is disabled. + /// Zero if the action did not trigger yet. Also reset to zero when the action is hard reset. /// public uint lastPerformedInUpdate { @@ -3746,6 +3770,16 @@ public uint lastPerformedInUpdate set => m_LastPerformedInUpdate = value; } + /// + /// Update step count () in which action completed last. + /// Zero if the action did not become completed yet. Also reset to zero when the action is hard reset. + /// + public uint lastCompletedInUpdate + { + get => m_LastCompletedInUpdate; + set => m_LastCompletedInUpdate = value; + } + public uint lastCanceledInUpdate { get => m_LastCanceledInUpdate; @@ -4441,7 +4475,9 @@ internal static void DeferredResolutionOfBindings() for (var i = 0; i < s_GlobalState.globalList.length; ++i) { var handle = s_GlobalState.globalList[i]; - if (!handle.IsAllocated || handle.Target == null) + + var state = handle.IsAllocated ? (InputActionState)handle.Target : null; + if (state == null) { // Stale entry in the list. State has already been reclaimed by GC. Remove it. if (handle.IsAllocated) @@ -4451,7 +4487,6 @@ internal static void DeferredResolutionOfBindings() continue; } - var state = (InputActionState)handle.Target; for (var n = 0; n < state.totalMapCount; ++n) state.maps[n].ResolveBindingsIfNecessary(); } diff --git a/Packages/com.unity.inputsystem/InputSystem/Actions/Interactions/MultiTapInteraction.cs b/Packages/com.unity.inputsystem/InputSystem/Actions/Interactions/MultiTapInteraction.cs index 93138bcaec..6f674a0b2c 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Actions/Interactions/MultiTapInteraction.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Actions/Interactions/MultiTapInteraction.cs @@ -205,7 +205,11 @@ public override void OnGUI() #if UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS public override void OnDrawVisualElements(VisualElement root, Action onChangedCallback) { - var tapCountField = new IntegerField(m_TapCountLabel.text) { value = target.tapCount }; + var tapCountField = new IntegerField(m_TapCountLabel.text) + { + value = target.tapCount, + tooltip = m_TapCountLabel.tooltip + }; tapCountField.RegisterValueChangedCallback(evt => { target.tapCount = evt.newValue; diff --git a/Packages/com.unity.inputsystem/InputSystem/Actions/Interactions/PressInteraction.cs b/Packages/com.unity.inputsystem/InputSystem/Actions/Interactions/PressInteraction.cs index 91e32e33fb..be2c5e37cf 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Actions/Interactions/PressInteraction.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Actions/Interactions/PressInteraction.cs @@ -223,7 +223,10 @@ public override void OnDrawVisualElements(VisualElement root, Action onChangedCa { root.Add(new HelpBox(s_HelpBoxText.text, HelpBoxMessageType.None)); - var behaviourDropdown = new EnumField(s_PressBehaviorLabel.text, target.behavior); + var behaviourDropdown = new EnumField(s_PressBehaviorLabel.text, target.behavior) + { + tooltip = s_PressBehaviorLabel.tooltip + }; behaviourDropdown.RegisterValueChangedCallback(evt => { target.behavior = (PressBehavior)evt.newValue; diff --git a/Packages/com.unity.inputsystem/InputSystem/Devices/InputDevice.cs b/Packages/com.unity.inputsystem/InputSystem/Devices/InputDevice.cs index b6086126d6..7011dbd9d7 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Devices/InputDevice.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Devices/InputDevice.cs @@ -479,7 +479,7 @@ internal void NotifyConfigurationChanged() /// Xbox gamepad and PS4 gamepad are both connected to a PC and the user is playing with the /// Xbox gamepad, the PS4 gamepad would still constantly make itself /// by simply flooding the system with events. Hence why by default, noise on .current getters - /// will be filtered out and a device will only see MakeCurrent getting called if there input + /// will be filtered out and a device will only see MakeCurrent getting called if their input /// was detected on non-noisy controls. /// /// diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/AssetEditor/InputActionAssetManager.cs b/Packages/com.unity.inputsystem/InputSystem/Editor/AssetEditor/InputActionAssetManager.cs index 67b5a5fc96..3a277e5a0e 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Editor/AssetEditor/InputActionAssetManager.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/AssetEditor/InputActionAssetManager.cs @@ -1,5 +1,6 @@ #if UNITY_EDITOR using System; +using System.Diagnostics.CodeAnalysis; using System.IO; using UnityEditor; @@ -14,7 +15,7 @@ namespace UnityEngine.InputSystem.Editor [Serializable] internal class InputActionAssetManager : IDisposable { - [SerializeField] internal InputActionAsset m_AssetObjectForEditing; + [SerializeField] private InputActionAsset m_AssetObjectForEditing; [SerializeField] private InputActionAsset m_ImportedAssetObject; [SerializeField] private string m_AssetGUID; [SerializeField] private string m_ImportedAssetJson; @@ -22,8 +23,15 @@ internal class InputActionAssetManager : IDisposable private SerializedObject m_SerializedObject; + /// + /// Returns the Asset GUID uniquely identifying the associated imported asset. + /// public string guid => m_AssetGUID; + /// + /// Returns the current Asset Path for the associated imported asset. + /// If the asset have been deleted this will be null. + /// public string path { get @@ -33,12 +41,16 @@ public string path } } + /// + /// Returns the name of the associated imported asset. + /// public string name { get { - if (m_ImportedAssetObject != null) - return m_ImportedAssetObject.name; + var asset = importedAsset; + if (asset != null) + return asset.name; if (!string.IsNullOrEmpty(path)) return Path.GetFileNameWithoutExtension(path); @@ -51,6 +63,7 @@ private InputActionAsset importedAsset { get { + // Note that this may be null after deserialization from domain reload if (m_ImportedAssetObject == null) LoadImportedObjectFromGuid(); @@ -58,13 +71,21 @@ private InputActionAsset importedAsset } } + public InputActionAsset editedAsset => m_AssetObjectForEditing; // TODO Remove if redundant + public Action onDirtyChanged { get; set; } public InputActionAssetManager(InputActionAsset inputActionAsset) { + if (inputActionAsset == null) + throw new NullReferenceException(nameof(inputActionAsset)); + m_AssetGUID = EditorHelpers.GetAssetGUID(inputActionAsset); + if (m_AssetGUID == null) + throw new Exception($"Failed to get asset {inputActionAsset.name} GUID"); + m_ImportedAssetObject = inputActionAsset; - bool isGUIDObtained = AssetDatabase.TryGetGUIDAndLocalFileIdentifier(importedAsset, out m_AssetGUID, out long _); - Debug.Assert(isGUIDObtained, $"Failed to get asset {inputActionAsset.name} GUID"); + + Initialize(); } public SerializedObject serializedObject => m_SerializedObject; @@ -76,8 +97,10 @@ public bool Initialize() if (m_AssetObjectForEditing == null) { if (importedAsset == null) + { // The asset we want to edit no longer exists. return false; + } CreateWorkingCopyAsset(); } @@ -91,13 +114,15 @@ public bool Initialize() public void Dispose() { + if (m_SerializedObject == null) + return; m_SerializedObject?.Dispose(); + m_SerializedObject = null; } public bool ReInitializeIfAssetHasChanged() { - var asset = importedAsset; - var json = asset.ToJson(); + var json = importedAsset.ToJson(); if (m_ImportedAssetJson == json) return false; @@ -105,31 +130,49 @@ public bool ReInitializeIfAssetHasChanged() return true; } - private void CreateWorkingCopyAsset() + public static InputActionAsset CreateWorkingCopy(InputActionAsset source) + { + var copy = Object.Instantiate(source); + copy.hideFlags = HideFlags.HideAndDontSave; + copy.name = source.name; + return copy; + } + + public static void CreateWorkingCopyAsset(ref InputActionAsset copy, InputActionAsset source) + { + if (copy != null) + Cleanup(ref copy); + + copy = CreateWorkingCopy(source); + } + + private void CreateWorkingCopyAsset() // TODO Can likely be removed if combined with Initialize { if (m_AssetObjectForEditing != null) Cleanup(); - // Duplicate the asset along 1:1. Unlike calling Clone(), this will also preserve - // GUIDs. + // Duplicate the asset along 1:1. Unlike calling Clone(), this will also preserve GUIDs. var asset = importedAsset; - m_AssetObjectForEditing = Object.Instantiate(asset); - m_AssetObjectForEditing.hideFlags = HideFlags.HideAndDontSave; - m_AssetObjectForEditing.name = importedAsset.name; + m_AssetObjectForEditing = CreateWorkingCopy(asset); m_ImportedAssetJson = asset.ToJson(); m_SerializedObject = new SerializedObject(m_AssetObjectForEditing); } public void Cleanup() { - if (m_AssetObjectForEditing == null) + Cleanup(ref m_AssetObjectForEditing); + } + + public static void Cleanup(ref InputActionAsset asset) + { + if (asset == null) return; - Object.DestroyImmediate(m_AssetObjectForEditing); - m_AssetObjectForEditing = null; + Object.DestroyImmediate(asset); + asset = null; } - public void LoadImportedObjectFromGuid() + private void LoadImportedObjectFromGuid() { // https://fogbugz.unity3d.com/f/cases/1313185/ // InputActionEditorWindow being an EditorWindow, it will be saved as part of the editor's @@ -152,44 +195,54 @@ public void ApplyChanges() internal void SaveChangesToAsset() { - Debug.Assert(importedAsset != null); - - // Update JSON. - var asset = m_AssetObjectForEditing; - m_ImportedAssetJson = asset.ToJson(); - - // Write out, if changed. - var assetPath = path; - var existingJson = File.ReadAllText(assetPath); - if (m_ImportedAssetJson != existingJson) - { - EditorHelpers.CheckOut(assetPath); - File.WriteAllText(assetPath, m_ImportedAssetJson); - AssetDatabase.ImportAsset(assetPath); - } + // If this is invoked after a domain reload, importAsset will resolve itself. + // However, if the asset do not exist importedAsset will be null and we cannot complete the operation. + if (importedAsset == null) + throw new Exception("Unable to save changes. Associated asset does not exist."); - m_IsDirty = false; - onDirtyChanged(false); + SaveAsset(path, m_AssetObjectForEditing.ToJson()); + SetDirty(false); } - public void SetAssetDirty() + /// + /// Saves an asset to the given assetPath with file content corresponding to assetJson + /// if the current content of the asset given by assetPath is different or the asset do not exist. + /// + /// Destination asset path. + /// The JSON file content to be written to the asset. + /// true if the asset was successfully modified or created, else false. + internal static bool SaveAsset(string assetPath, string assetJson) { - m_IsDirty = true; - onDirtyChanged(true); + var existingJson = File.Exists(assetPath) ? File.ReadAllText(assetPath) : string.Empty; + + // Return immediately if file content has not changed, i.e. touching the file would not yield a difference. + if (assetJson == existingJson) + return false; + + // Attempt to write asset to disc (including checkout the file) and inform the user if this fails. + if (EditorHelpers.WriteAsset(assetPath, assetJson)) + return true; + + Debug.LogError($"Unable save asset to \"{assetPath}\" since the asset-path could not be checked-out as editable in the underlying version-control system."); + return false; } - public bool ImportedAssetObjectEquals(InputActionAsset inputActionAsset) + public void MarkDirty() { - if (importedAsset == null) - return false; - return importedAsset.Equals(inputActionAsset); + SetDirty(true); } public void UpdateAssetDirtyState() { m_SerializedObject.Update(); - m_IsDirty = m_AssetObjectForEditing.ToJson() != importedAsset.ToJson(); - onDirtyChanged(m_IsDirty); + SetDirty(m_AssetObjectForEditing.ToJson() != importedAsset.ToJson()); // TODO Why not using cached version? + } + + private void SetDirty(bool newValue) + { + m_IsDirty = newValue; + if (onDirtyChanged != null) + onDirtyChanged(newValue); } } } diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/AssetEditor/InputActionEditorWindow.cs b/Packages/com.unity.inputsystem/InputSystem/Editor/AssetEditor/InputActionEditorWindow.cs index 3453e78351..f3fcc1ab33 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Editor/AssetEditor/InputActionEditorWindow.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/AssetEditor/InputActionEditorWindow.cs @@ -6,6 +6,7 @@ using UnityEditor; using UnityEditor.Callbacks; using UnityEditor.IMGUI.Controls; +using UnityEditor.PackageManager.UI; using UnityEditor.ShortcutManagement; ////TODO: Add "Revert" button @@ -28,8 +29,14 @@ namespace UnityEngine.InputSystem.Editor /// The .inputactions editor code does not really separate between model and view. Selection state is contained /// in the tree views and persistent across domain reloads via . /// - internal class InputActionEditorWindow : EditorWindow, IDisposable + internal class InputActionEditorWindow : EditorWindow, IDisposable, IInputActionAssetEditor { + // Register editor type via static constructor to enable asset monitoring + static InputActionEditorWindow() + { + InputActionAssetEditor.RegisterType(); + } + /// /// Open window if someone clicks on an .inputactions asset or an action inside of it. /// @@ -42,7 +49,7 @@ public static bool OnOpenAsset(int instanceId, int line) return false; #endif var path = AssetDatabase.GetAssetPath(instanceId); - if (!path.EndsWith(k_FileExtension, StringComparison.InvariantCultureIgnoreCase)) + if (!InputActionImporter.IsInputActionAssetPath(path)) return false; string mapToSelect = null; @@ -104,10 +111,10 @@ public static InputActionEditorWindow OpenEditor(InputActionAsset asset) return window; } - public static InputActionEditorWindow FindEditorForAsset(InputActionAsset asset) + private static InputActionEditorWindow FindEditorForAsset(InputActionAsset asset) { - var windows = Resources.FindObjectsOfTypeAll(); - return windows.FirstOrDefault(w => w.m_ActionAssetManager.ImportedAssetObjectEquals(asset)); + var guid = EditorHelpers.GetAssetGUID(asset); + return guid == null ? null : FindEditorForAssetWithGUID(guid); } public static InputActionEditorWindow FindEditorForAssetWithGUID(string guid) @@ -116,17 +123,6 @@ public static InputActionEditorWindow FindEditorForAssetWithGUID(string guid) return windows.FirstOrDefault(w => w.m_ActionAssetManager.guid == guid); } - public static void RefreshAllOnAssetReimport() - { - if (s_RefreshPending) - return; - - // We don't want to refresh right away but rather wait for the next editor update - // to then do one pass of refreshing action editor windows. - EditorApplication.delayCall += RefreshAllOnAssetReimportCallback; - s_RefreshPending = true; - } - public void SaveChangesToAsset() { m_ActionAssetManager.SaveChangesToAsset(); @@ -165,41 +161,28 @@ public void AddNewBinding() m_ActionsTree.AddNewBinding(item.property, item.actionMapProperty); } - private static void RefreshAllOnAssetReimportCallback() - { - s_RefreshPending = false; - - // When the asset is modified outside of the editor - // and the importer settings are visible in the inspector - // the asset references in the importer inspector need to be force rebuild - // (otherwise we gets lots of exceptions) - ActiveEditorTracker.sharedTracker.ForceRebuild(); - - var windows = Resources.FindObjectsOfTypeAll(); - foreach (var window in windows) - window.ReloadAssetFromFileIfNotDirty(); - } - private bool ConfirmSaveChangesIfNeeded() { // Ask for confirmation if we have unsaved changes. if (!m_ForceQuit && m_ActionAssetManager.dirty) { - var result = EditorUtility.DisplayDialogComplex("Input Action Asset has been modified", - $"Do you want to save the changes you made in:\n{m_ActionAssetManager.path}\n\nYour changes will be lost if you don't save them.", "Save", "Cancel", "Don't Save"); + var result = Dialog.InputActionAsset.ShowSaveChanges(m_ActionAssetManager.path); switch (result) { - case 0: // Save + case Dialog.Result.Save: m_ActionAssetManager.SaveChangesToAsset(); m_ActionAssetManager.Cleanup(); break; - case 1: // Cancel + case Dialog.Result.Cancel: Instantiate(this).Show(); // Cancel editor quit. return false; - case 2: // Don't save, don't ask again. + case Dialog.Result.Discard: + // Don't save, don't ask again. m_ForceQuit = true; break; + default: + throw new ArgumentOutOfRangeException(nameof(result)); } } return true; @@ -263,7 +246,7 @@ private void SetAsset(InputActionAsset asset) return; m_ActionAssetManager = new InputActionAssetManager(asset) {onDirtyChanged = OnDirtyChanged}; - m_ActionAssetManager.Initialize(); + //m_ActionAssetManager.Initialize(); // TODO No longer needed when using constructor InitializeTrees(); LoadControlSchemes(); @@ -343,7 +326,7 @@ private void OnControlSchemeDeleted(string name, string bindingGroup) Debug.Assert(!string.IsNullOrEmpty(name), "Control scheme name should not be empty"); Debug.Assert(!string.IsNullOrEmpty(bindingGroup), "Binding group should not be empty"); - var asset = m_ActionAssetManager.m_AssetObjectForEditing; + var asset = m_ActionAssetManager.editedAsset; var bindingMask = InputBinding.MaskByGroup(bindingGroup); var schemeHasBindings = asset.actionMaps.Any(m => m.bindings.Any(b => bindingMask.Matches(ref b))); @@ -601,7 +584,8 @@ private void ApplyAndReloadTrees() #if UNITY_INPUT_SYSTEM_INPUT_ACTIONS_EDITOR_AUTO_SAVE_ON_FOCUS_LOST private void OnLostFocus() { - m_ActionAssetManager.SaveChangesToAsset(); + if (InputEditorUserSettings.autoSaveInputActionAssets) + m_ActionAssetManager.SaveChangesToAsset(); } #endif @@ -616,7 +600,7 @@ private void Apply() #if UNITY_INPUT_SYSTEM_INPUT_ACTIONS_EDITOR_AUTO_SAVE_ON_FOCUS_LOST // If auto-save should be triggered on focus lost, only mark asset as dirty - m_ActionAssetManager.SetAssetDirty(); + m_ActionAssetManager.MarkDirty(); titleContent = m_DirtyTitle; #else // If auto-save is active, immediately flush out the changes to disk. Otherwise just @@ -627,7 +611,7 @@ private void Apply() } else { - m_ActionAssetManager.SetAssetDirty(); + m_ActionAssetManager.MarkDirty(); titleContent = m_DirtyTitle; } #endif @@ -788,6 +772,7 @@ private void ReloadAssetFromFileIfNotDirty() Repaint(); } +#if !UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS ////TODO: add shortcut to focus search box ////TODO: show shortcuts in tooltips @@ -820,6 +805,8 @@ private static void AddBindingShortcut(ShortcutArguments arguments) window.AddNewBinding(); } +#endif + private void OnDirtyChanged(bool dirty) { titleContent = dirty ? m_DirtyTitle : m_Title; @@ -847,69 +834,26 @@ public void Dispose() private InputActionTreeView m_ActionsTree; private static bool s_RefreshPending; - private static readonly string k_FileExtension = "." + InputActionAsset.Extension; private Vector2 m_PropertiesScroll; private bool m_ForceQuit; - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Justification = "Intantiated through reflection by Unity")] - private class ProcessAssetModifications : UnityEditor.AssetModificationProcessor - { - // Handle .inputactions asset being deleted. - // ReSharper disable once UnusedMember.Local - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "options", Justification = "options parameter required by Unity API")] - public static AssetDeleteResult OnWillDeleteAsset(string path, RemoveAssetOptions options) - { - if (!path.EndsWith(k_FileExtension, StringComparison.InvariantCultureIgnoreCase)) - return default; - - // See if we have an open window. - var guid = AssetDatabase.AssetPathToGUID(path); - var window = FindEditorForAssetWithGUID(guid); - if (window != null) - { - // If there's unsaved changes, ask for confirmation. - if (window.m_ActionAssetManager.dirty) - { - var result = EditorUtility.DisplayDialog("Unsaved changes", - $"You have unsaved changes for '{path}'. Do you want to discard the changes and delete the asset?", - "Yes, Delete", "No, Cancel"); - if (!result) - { - // User canceled. Stop the deletion. - return AssetDeleteResult.FailedDelete; - } - - window.m_ForceQuit = true; - } - - window.Close(); - } - - return default; - } + #region IInputActionAssetEditor -#pragma warning disable CA1801 // unused parameters + public void OnAssetImported() => ReloadAssetFromFileIfNotDirty(); - // Handle .inputactions asset being moved. - // ReSharper disable once UnusedMember.Local - public static AssetMoveResult OnWillMoveAsset(string sourcePath, string destinationPath) - { - if (!sourcePath.EndsWith(k_FileExtension, StringComparison.InvariantCultureIgnoreCase)) - return default; + public void OnAssetMoved() => UpdateWindowTitle(); - var guid = AssetDatabase.AssetPathToGUID(sourcePath); - var window = FindEditorForAssetWithGUID(guid); - if (window != null) - { - window.UpdateWindowTitle(); - } + public void OnAssetDeleted() + { + m_ForceQuit = true; + Close(); + } - return default; - } + public string assetGUID => m_ActionAssetManager.guid; + public bool isDirty => m_ActionAssetManager.dirty; -#pragma warning restore CA1801 - } + #endregion } } #endif // UNITY_EDITOR diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/AssetEditor/InputActionTreeView.cs b/Packages/com.unity.inputsystem/InputSystem/Editor/AssetEditor/InputActionTreeView.cs index 08640c0d42..86eed1c6f3 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Editor/AssetEditor/InputActionTreeView.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/AssetEditor/InputActionTreeView.cs @@ -862,12 +862,28 @@ private static void SplitTagAndData(string block, out string tag, out string dat data = block.Substring(indexOfStartOfTextChar + 1); } + public static SerializedProperty AddElement(SerializedProperty arrayProperty, string name, int index = -1) + { + var uniqueName = InputActionSerializationHelpers.FindUniqueName(arrayProperty, name); + if (index < 0) + index = arrayProperty.arraySize; + + arrayProperty.InsertArrayElementAtIndex(index); + var elementProperty = arrayProperty.GetArrayElementAtIndex(index); + elementProperty.ResetValuesToDefault(); + + elementProperty.FindPropertyRelative("m_Name").stringValue = uniqueName; + elementProperty.FindPropertyRelative("m_Id").stringValue = Guid.NewGuid().ToString(); + + return elementProperty; + } + private SerializedProperty PasteBlock(string tag, string data, SerializedProperty array, int arrayIndex, bool assignNewIDs, string actionForNewBindings = null) { // Add an element to the array. Then read the serialized properties stored in the copy data // back into the element. - var property = InputActionSerializationHelpers.AddElement(array, "tempName", arrayIndex); + var property = AddElement(array, "tempName", arrayIndex); property.RestoreFromJson(data); if (tag == k_ActionTag || tag == k_ActionMapTag) InputActionSerializationHelpers.EnsureUniqueName(property); diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/AssetEditor/InputBindingPropertiesView.cs b/Packages/com.unity.inputsystem/InputSystem/Editor/AssetEditor/InputBindingPropertiesView.cs index 8050d99a7c..6e196023a4 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Editor/AssetEditor/InputBindingPropertiesView.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/AssetEditor/InputBindingPropertiesView.cs @@ -117,171 +117,61 @@ protected override void DrawGeneralProperties() private static bool showMatchingLayouts = false; private static Dictionary showMatchingChildLayouts = new Dictionary(); - /// - /// Finds all registered control paths implemented by concrete classes which match the current binding path and renders it. - /// - private void DrawMatchingControlPaths() + private static void DrawMatchingControlPaths(List matchingControlPaths) { - var path = m_ControlPathEditor.pathProperty.stringValue; - if (path == string.Empty) - return; - - var deviceLayoutPath = InputControlPath.TryGetDeviceLayout(path); - var parsedPath = InputControlPath.Parse(path).ToArray(); - - // If the provided path is parseable into device and control components, draw UI which shows control layouts that match the path. - if (parsedPath.Length >= 2 && !string.IsNullOrEmpty(deviceLayoutPath)) + foreach (var matchingControlPath in matchingControlPaths) { - bool matchExists = false; + bool showLayout = false; + EditorGUI.indentLevel++; - var rootDeviceLayout = EditorInputControlLayoutCache.TryGetLayout(deviceLayoutPath); - bool isValidDeviceLayout = deviceLayoutPath == InputControlPath.Wildcard || (rootDeviceLayout != null && !rootDeviceLayout.isOverride && !rootDeviceLayout.hideInUI); - // Exit early if a malformed device layout was provided, - if (!isValidDeviceLayout) - return; + var text = $"{matchingControlPath.deviceName} > {matchingControlPath.controlName}"; + if (matchingControlPath.children.Count() > 0 && !matchingControlPath.isRoot) + { + showMatchingChildLayouts.TryGetValue(matchingControlPath.deviceName, out showLayout); + showMatchingChildLayouts[matchingControlPath.deviceName] = EditorGUILayout.Foldout(showLayout, text); + } + else + { + EditorGUILayout.LabelField(text); + } - bool controlPathUsagePresent = parsedPath[1].usages.Count() > 0; - bool hasChildDeviceLayouts = deviceLayoutPath == InputControlPath.Wildcard || EditorInputControlLayoutCache.HasChildLayouts(rootDeviceLayout.name); + showLayout |= matchingControlPath.isRoot; + if (showLayout) + DrawMatchingControlPaths(matchingControlPath.children); - // If the path provided matches exactly one control path (i.e. has no ui-facing child device layouts or uses control usages), then exit early - if (!controlPathUsagePresent && !hasChildDeviceLayouts) - return; + EditorGUI.indentLevel--; + } + } - // Otherwise, we will show either all controls that match the current binding (if control usages are used) - // or all controls in derived device layouts (if a no control usages are used). + /// + /// Finds all registered control paths implemented by concrete classes which match the current binding path and renders it. + /// + private void DrawMatchingControlPaths() + { + bool controlPathUsagePresent = false; + List matchingControlPaths = MatchingControlPath.CollectMatchingControlPaths(m_ControlPathEditor.pathProperty.stringValue, showMatchingLayouts, ref controlPathUsagePresent); + if (matchingControlPaths == null || matchingControlPaths.Count != 0) + { EditorGUILayout.BeginVertical(); showMatchingLayouts = EditorGUILayout.Foldout(showMatchingLayouts, "Derived Bindings"); if (showMatchingLayouts) { - // If our control path contains a usage, make sure we render the binding that belongs to the root device layout first - if (deviceLayoutPath != InputControlPath.Wildcard && controlPathUsagePresent) - { - matchExists |= DrawMatchingControlPathsForLayout(rootDeviceLayout, in parsedPath, true); - } - // Otherwise, just render the bindings that belong to child device layouts. The binding that matches the root layout is - // already represented by the user generated control path itself. - else - { - IEnumerable matchedChildLayouts = Enumerable.Empty(); - if (deviceLayoutPath == InputControlPath.Wildcard) - { - matchedChildLayouts = EditorInputControlLayoutCache.allLayouts - .Where(x => x.isDeviceLayout && !x.hideInUI && !x.isOverride && x.isGenericTypeOfDevice && x.baseLayouts.Count() == 0).OrderBy(x => x.displayName); - } - else - { - matchedChildLayouts = EditorInputControlLayoutCache.TryGetChildLayouts(rootDeviceLayout.name); - } - - foreach (var childLayout in matchedChildLayouts) - { - matchExists |= DrawMatchingControlPathsForLayout(childLayout, in parsedPath); - } - } - - // Otherwise, indicate that no layouts match the current path. - if (!matchExists) + if (matchingControlPaths == null) { if (controlPathUsagePresent) EditorGUILayout.HelpBox("No registered controls match this current binding. Some controls are only registered at runtime.", MessageType.Warning); else EditorGUILayout.HelpBox("No other registered controls match this current binding. Some controls are only registered at runtime.", MessageType.Warning); } - } - - EditorGUILayout.EndVertical(); - } - } - - /// - /// Returns true if the deviceLayout or any of its children has controls which match the provided parsed path. exist matching registered control paths. - /// - /// The device layout to draw control paths for - /// The parsed path containing details of the Input Controls that can be matched - private bool DrawMatchingControlPathsForLayout(InputControlLayout deviceLayout, in InputControlPath.ParsedPathComponent[] parsedPath, bool isRoot = false) - { - string deviceName = deviceLayout.displayName; - string controlName = string.Empty; - bool matchExists = false; - - for (int i = 0; i < deviceLayout.m_Controls.Length; i++) - { - ref InputControlLayout.ControlItem controlItem = ref deviceLayout.m_Controls[i]; - if (InputControlPath.MatchControlComponent(ref parsedPath[1], ref controlItem, true)) - { - // If we've already located a match, append a ", " to the control name - // This is to accomodate cases where multiple control items match the same path within a single device layout - // Note, some controlItems have names but invalid displayNames (i.e. the Dualsense HID > leftTriggerButton) - // There are instance where there are 2 control items with the same name inside a layout definition, however they are not - // labeled significantly differently. - // The notable example is that the Android Xbox and Android Dualshock layouts have 2 d-pad definitions, one is a "button" - // while the other is an axis. - controlName += matchExists ? $", {controlItem.name}" : controlItem.name; - - // if the parsePath has a 3rd component, try to match it with items in the controlItem's layout definition. - if (parsedPath.Length == 3) - { - var controlLayout = EditorInputControlLayoutCache.TryGetLayout(controlItem.layout); - if (controlLayout.isControlLayout && !controlLayout.hideInUI) - { - for (int j = 0; j < controlLayout.m_Controls.Count(); j++) - { - ref InputControlLayout.ControlItem controlLayoutItem = ref controlLayout.m_Controls[j]; - if (InputControlPath.MatchControlComponent(ref parsedPath[2], ref controlLayoutItem)) - { - controlName += $"/{controlLayoutItem.name}"; - matchExists = true; - } - } - } - } else { - matchExists = true; + DrawMatchingControlPaths(matchingControlPaths); } } - } - - IEnumerable matchedChildLayouts = EditorInputControlLayoutCache.TryGetChildLayouts(deviceLayout.name); - // If this layout does not have a match, or is the top level root layout, - // skip over trying to draw any items for it, and immediately try processing the child layouts - if (!matchExists) - { - foreach (var childLayout in matchedChildLayouts) - { - matchExists |= DrawMatchingControlPathsForLayout(childLayout, in parsedPath); - } - } - // Otherwise, draw the items for it, and then only process the child layouts if the foldout is expanded. - else - { - bool showLayout = false; - EditorGUI.indentLevel++; - if (matchedChildLayouts.Count() > 0 && !isRoot) - { - showMatchingChildLayouts.TryGetValue(deviceName, out showLayout); - showMatchingChildLayouts[deviceName] = EditorGUILayout.Foldout(showLayout, $"{deviceName} > {controlName}"); - } - else - { - EditorGUILayout.LabelField($"{deviceName} > {controlName}"); - } - - showLayout |= isRoot; - - if (showLayout) - { - foreach (var childLayout in matchedChildLayouts) - { - DrawMatchingControlPathsForLayout(childLayout, in parsedPath); - } - } - EditorGUI.indentLevel--; + EditorGUILayout.EndVertical(); } - - return matchExists; } /// diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/AssetImporter/IInputActionAssetEditor.cs b/Packages/com.unity.inputsystem/InputSystem/Editor/AssetImporter/IInputActionAssetEditor.cs new file mode 100644 index 0000000000..4c62177713 --- /dev/null +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/AssetImporter/IInputActionAssetEditor.cs @@ -0,0 +1,76 @@ +#if UNITY_EDITOR + +namespace UnityEngine.InputSystem.Editor +{ + // For clarity, the tables below indicate the callback sequences of the asset modification processor and + // asset post-processor for various user operations done on assets. + // + // User operation: Callback sequence: + // ---------------------------------------------------------------------------------------- + // Save Imported(s) + // Delete OnWillDelete(s), Deleted(s) + // Copy Imported(s) + // Rename OnWillMove(s,d), Imported(d), Moved(s,d) + // Move (drag) / Cut+Paste OnWillMove(s,d), Moved(s,d) + // ------------------------------------------------------------------------------------------------------------ + // + // User operation: Callback/call sequence: + // ------------------------------------------------------------------------------------------------------------ + // Save Imported(s) + // Delete OnWillDelete(s), Deleted(s) + // Copy Imported(s), Fix(s), Imported(s) + // Rename OnWillMove(s,d), Imported(d), Fix(d), Moved(s,d), Imported(d) + // Move(drag) / Cut+Paste OnWillMove(s,d), Moved(s,d) + // ------------------------------------------------------------------------------------------------------------ + // Note that as stated in table above, JSON name changes (called "Fix" above) will only be executed when either + // Copying, Renaming within the editor. For all other operations the name and file name would not differ. + // + // External user operation: Callback/call sequence: + // ------------------------------------------------------------------------------------------------------------ + // Save Imported(s) + // Delete Deleted(s) + // Copy Imported(s) + // Rename Imported(d), Deleted(s) + // Move(drag) / Cut+Paste Imported(d), Deleted(s) + // ------------------------------------------------------------------------------------------------------------ + + /// + /// Callback interface for monitoring changes to assets. + /// + internal interface IAssetObserver + { + /// + /// Callback triggered when the associated asset is imported. + /// + void OnAssetImported(); + + /// + /// Callback triggered when the associated asset is moved. + /// + void OnAssetMoved(); + + /// + /// Callback triggered when the associated asset is deleted. + /// + void OnAssetDeleted(); + } + + /// + /// Interface representing an editor capable of editing InputActionAsset instances associated + /// with an asset file in the Asset Database (ADB). + /// + internal interface IInputActionAssetEditor : IAssetObserver + { + /// + /// A read-only string representation of the asset GUID associated with the asset being edited. + /// + string assetGUID { get; } + + /// + /// Returns whether the editor has unsaved changes compared to the associated imported source asset. + /// + bool isDirty { get; } + } +} + +#endif // UNITY_EDITOR diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/AssetImporter/IInputActionAssetEditor.cs.meta b/Packages/com.unity.inputsystem/InputSystem/Editor/AssetImporter/IInputActionAssetEditor.cs.meta new file mode 100644 index 0000000000..3a506086de --- /dev/null +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/AssetImporter/IInputActionAssetEditor.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 2603947746e342918fcad117e9ce6db6 +timeCreated: 1709021101 \ No newline at end of file diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/AssetImporter/InputActionAssetEditor.cs b/Packages/com.unity.inputsystem/InputSystem/Editor/AssetImporter/InputActionAssetEditor.cs index 31b5b2aad4..e5c87f372f 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Editor/AssetImporter/InputActionAssetEditor.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/AssetImporter/InputActionAssetEditor.cs @@ -1,4 +1,6 @@ #if UNITY_EDITOR +using System; +using System.Collections.Generic; using UnityEditor; namespace UnityEngine.InputSystem.Editor @@ -14,6 +16,253 @@ protected override void OnHeaderGUI() public override void OnInspectorGUI() { } + + #region Support abstract editor registration + + private static readonly List s_EditorTypes = new List(); + + // Registers an asset editor type for receiving asset modification callbacks. + public static void RegisterType() where T : IInputActionAssetEditor + { + if (!s_EditorTypes.Contains(typeof(T))) + s_EditorTypes.Add(typeof(T)); + } + + // Unregisters an asset editor type from receiving asset modification callbacks. + public static void UnregisterType() where T : IInputActionAssetEditor + { + s_EditorTypes.Remove(typeof(T)); + } + + public static T FindOpenEditor(string path) where T : EditorWindow + { + var openEditors = FindAllEditorsForPath(path); + foreach (var openEditor in openEditors) + { + if (openEditor.GetType() == typeof(T)) + return (T)openEditor; + } + return null; + } + + // Finds all asset editors associated with the asset given by path. + public static IInputActionAssetEditor[] FindAllEditorsForPath(string path) + { + var guid = AssetDatabase.AssetPathToGUID(path); + return guid != null ? FindAllEditors((editor) => editor.assetGUID == guid) : + Array.Empty(); + } + + // Finds all asset editors fulfilling the given predicate. + public static IInputActionAssetEditor[] FindAllEditors(Predicate predicate = null) + { + List editors = null; + foreach (var type in s_EditorTypes) + editors = FindAllEditors(type, predicate, editors); + return editors != null ? editors.ToArray() : Array.Empty(); + } + + private static List FindAllEditors(Type type, + Predicate predicate = null, + List result = null) + { + if (result == null) + result = new List(); + var editors = Resources.FindObjectsOfTypeAll(type); + foreach (var editor in editors) + { + if (editor is IInputActionAssetEditor actionsAssetEditor && (predicate == null || predicate(actionsAssetEditor))) + result.Add(actionsAssetEditor); + } + return result; + } + + #endregion + + #region Asset modification processor to intercept Unity editor move or delete operations + // Asset modification processor designed to handle the following scenarios: + // - When an asset is about to get deleted, evaluate if there is a pending unsaved edited copy of the asset + // open in any associated editor and in this case, prompt the user that there are unsaved changes and allow + // the user to cancel the operation and allow to save the pending changes or confirm to delete the asset and + // discard the pending unsaved changes (via OnAssetDeleted() notification). + // - If the asset being deleted is not open in any editors or any open copies are not modified, no dialog + // prompt is displayed and the asset is deleted. + // - When an asset is about to get moved, notify any editors having the asset open about the move. + // + // See comments further down in this class for expected callback sequences. + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Justification = "Intantiated through reflection by Unity")] + private class InputActionAssetModificationProcessor : UnityEditor.AssetModificationProcessor + { + public static AssetDeleteResult OnWillDeleteAsset(string path, RemoveAssetOptions options) + { + if (InputActionImporter.IsInputActionAssetPath(path)) + { + // Find any open editors associated to the asset and if any of them holds unsaved changes + // allow the user to discard unsaved changes or cancel deletion. + var editorWithAssetOpen = InputActionAssetEditor.FindAllEditorsForPath(path); + foreach (var editor in editorWithAssetOpen) + { + if (editor.isDirty) + { + var result = Dialog.InputActionAsset.ShowDiscardUnsavedChanges(path); + if (result == Dialog.Result.Cancel) + return AssetDeleteResult.FailedDelete; + break; + } + } + + // Notify all associated editors that asset will be deleted + foreach (var editor in editorWithAssetOpen) + editor.OnAssetDeleted(); + } + + return default; + } + + public static AssetMoveResult OnWillMoveAsset(string sourcePath, string destinationPath) + { + if (InputActionImporter.IsInputActionAssetPath(sourcePath)) + { + var editorWithAssetOpen = InputActionAssetEditor.FindAllEditorsForPath(sourcePath); + foreach (var editor in editorWithAssetOpen) + editor.OnAssetMoved(); + } + + return default; + } + } + + #endregion + + #region Asset post processor to react to internal or external asset import, move, delete events. + // Processor detecting any Unity editor internal or external (file system) changes to an asset and notifies + // any associated asset editors about those changes via callbacks. + // + // Note that any editor classes interested in receiving notifications need to be registered. + // + // For clarity, the tables below indicate the callback sequences of the asset modification processor and + // asset post-processor for various user operations done on assets. + // + // s = source file + // d = destination file + // * = operation may be aborted by user + // + // User operation: Callback sequence: + // ---------------------------------------------------------------------------------------- + // Write (Save) Imported(s) + // Delete OnWillDelete(s), Deleted(s)* + // Copy Imported(s) + // Rename OnWillMove(s,d), Imported(d), Moved(s,d) + // Move (drag) / Cut+Paste OnWillMove(s,d), Moved(s,d) + // ------------------------------------------------------------------------------------------------------------ + // + // External user operation: Callback/call sequence: + // ------------------------------------------------------------------------------------------------------------ + // Save Imported(s) + // Delete Deleted(s) + // Copy Imported(s) + // Rename Imported(d), Deleted(s) + // Move(drag) / Cut+Paste Imported(d), Deleted(s) + // ------------------------------------------------------------------------------------------------------------ + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Justification = "Intantiated through reflection by Unity")] + private class InputActionAssetPostprocessor : AssetPostprocessor + { + private static bool s_DoNotifyEditorsScheduled; + private static List s_Imported = new List(); + private static List s_Deleted = new List(); + private static List s_Moved = new List(); + + private static void Notify(IReadOnlyCollection assets, + IReadOnlyCollection editors, Action callback) + { + foreach (var asset in assets) + { + var assetGuid = AssetDatabase.AssetPathToGUID(asset); + foreach (var editor in editors) + { + if (editor.assetGUID != assetGuid) + continue; + + try + { + callback(editor); + } + catch (Exception e) + { + Debug.LogException(e); + } + } + } + } + + private static void NotifyEditors() + { + try + { + // When the asset is modified outside of the editor and the importer settings are + // visible in the Inspector the asset references in the importer inspector need to be + // force rebuild (otherwise we gets lots of exceptions). + ActiveEditorTracker.sharedTracker.ForceRebuild(); + + // Unconditionally find all existing editors regardless of associated asset + var editors = InputActionAssetEditor.FindAllEditors(); + + // Abort if there are no available candidate editors + if (editors == null || editors.Length == 0) + return; + + // Notify editors about asset changes + Notify(s_Imported, editors, (editor) => editor.OnAssetImported()); + Notify(s_Deleted, editors, (editor) => editor.OnAssetDeleted()); + Notify(s_Moved, editors, (editor) => editor.OnAssetMoved()); + } + finally + { + s_Imported.Clear(); + s_Deleted.Clear(); + s_Moved.Clear(); + + s_DoNotifyEditorsScheduled = false; + } + } + + private static void Process(string[] assets, ICollection target) + { + foreach (var asset in assets) + { + // Ignore any assets with non matching extensions + if (!InputActionImporter.IsInputActionAssetPath(asset)) + continue; + + // Register asset in target collection for delay invocation + target.Add(asset); + + // If a notification execution has already been scheduled do nothing apart from registration. + // We do this with delayed execution to avoid excessive updates interfering with ADB. + if (!s_DoNotifyEditorsScheduled) + { + EditorApplication.delayCall += NotifyEditors; + s_DoNotifyEditorsScheduled = true; + } + } + } + + // Note: Callback prior to Unity 2021.2 did not provide a boolean indicating domain relaod. +#if UNITY_2021_2_OR_NEWER + private static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, + string[] movedAssets, string[] movedFromAssetPaths, bool didDomainReload) +#else + private static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, + string[] movedAssets, string[] movedFromAssetPaths) +#endif + { + Process(importedAssets, s_Imported); + Process(deletedAssets, s_Deleted); + Process(movedAssets, s_Moved); + } + } + + #endregion } } #endif // UNITY_EDITOR diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/AssetImporter/InputActionAssetIconLoader.cs b/Packages/com.unity.inputsystem/InputSystem/Editor/AssetImporter/InputActionAssetIconLoader.cs index 6e6ad8a9e3..cca5439155 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Editor/AssetImporter/InputActionAssetIconLoader.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/AssetImporter/InputActionAssetIconLoader.cs @@ -3,6 +3,9 @@ namespace UnityEngine.InputSystem.Editor { + // Note that non-existing caching here is intentional since icon selected might be theme dependent. + // There is no reason to cache icons unless there is a significant performance impact on the editor. + /// /// Provides access to icons associated with and . /// diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/AssetImporter/InputActionImporter.cs b/Packages/com.unity.inputsystem/InputSystem/Editor/AssetImporter/InputActionImporter.cs index 24d528e87d..edd7204664 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Editor/AssetImporter/InputActionImporter.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/AssetImporter/InputActionImporter.cs @@ -43,59 +43,114 @@ public static event Action onImport remove => s_OnImportCallbacks.Remove(value); } - public override void OnImportAsset(AssetImportContext ctx) + private static InputActionAsset CreateFromJson(AssetImportContext context) { - if (ctx == null) - throw new ArgumentNullException(nameof(ctx)); - - foreach (var callback in s_OnImportCallbacks) - callback(); - ////REVIEW: need to check with version control here? - // Read file. - string text; + // Read JSON file. + string content; try { - text = File.ReadAllText(ctx.assetPath); + content = File.ReadAllText(EditorHelpers.GetPhysicalPath(context.assetPath)); } catch (Exception exception) { - ctx.LogImportError($"Could not read file '{ctx.assetPath}' ({exception})"); - return; + context.LogImportError($"Could not read file '{context.assetPath}' ({exception})"); + return null; } // Create asset. var asset = ScriptableObject.CreateInstance(); - // Parse JSON. + // Parse JSON and configure asset. try { - ////TODO: make sure action names are unique - asset.LoadFromJson(text); + // Attempt to parse JSON + asset.LoadFromJson(content); + + // Make sure action map names are unique within JSON file + var names = new HashSet(); + foreach (var map in asset.actionMaps) + { + if (!names.Add(map.name)) + { + throw new Exception( + "Unable to parse {context.assetPath} due to duplicate Action Map name: '{map.name}'. Make sure Action Map names are unique within the asset and reattempt import."); + } + } + + // Make sure action names are unique within each action map in JSON file + names.Clear(); + foreach (var map in asset.actionMaps) + { + foreach (var action in map.actions) + { + if (!names.Add(action.name)) + { + throw new Exception( + $"Unable to parse {{context.assetPath}} due to duplicate Action name: '{action.name}' within Action Map '{map.name}'. Make sure Action Map names are unique within the asset and reattempt import."); + } + } + + names.Clear(); + } + + // Force name of asset to be that on the file on disk instead of what may be serialized + // as the 'name' property in JSON. (Unless explicitly given) + asset.name = NameFromAssetPath(context.assetPath); + + // Add asset. + ////REVIEW: the icons won't change if the user changes skin; not sure it makes sense to differentiate here + context.AddObjectToAsset("", asset, InputActionAssetIconLoader.LoadAssetIcon()); + context.SetMainObject(asset); + + // Make sure all the elements in the asset have GUIDs and that they are indeed unique. + // Create sub-assets for each action to allow search and editor referencing/picking. + SetupAsset(asset, context.AddObjectToAsset); } catch (Exception exception) { - ctx.LogImportError($"Could not parse input actions in JSON format from '{ctx.assetPath}' ({exception})"); + context.LogImportError($"Could not parse input actions in JSON format from '{context.assetPath}' ({exception})"); DestroyImmediate(asset); - return; + asset = null; } - // Force name of asset to be that on the file on disk instead of what may be serialized - // as the 'name' property in JSON. - asset.name = Path.GetFileNameWithoutExtension(assetPath); + return asset; + } - // Load icons. - ////REVIEW: the icons won't change if the user changes skin; not sure it makes sense to differentiate here - var assetIcon = InputActionAssetIconLoader.LoadAssetIcon(); - var actionIcon = InputActionAssetIconLoader.LoadActionIcon(); + public override void OnImportAsset(AssetImportContext ctx) + { + if (ctx == null) + throw new ArgumentNullException(nameof(ctx)); + + foreach (var callback in s_OnImportCallbacks) + callback(); + + var asset = CreateFromJson(ctx); + if (asset == null) + return; + + if (m_GenerateWrapperCode) + GenerateWrapperCode(ctx, asset, m_WrapperCodeNamespace, m_WrapperClassName, m_WrapperCodePath); + } - // Add asset. - ctx.AddObjectToAsset("", asset, assetIcon); - ctx.SetMainObject(asset); + internal static void SetupAsset(InputActionAsset asset) + { + SetupAsset(asset, (identifier, subAsset, icon) => + AssetDatabase.AddObjectToAsset(subAsset, asset)); + } + + private delegate void AddObjectToAsset(string identifier, Object subAsset, Texture2D icon); + + private static void SetupAsset(InputActionAsset asset, AddObjectToAsset addObjectToAsset) + { + FixMissingGuids(asset); + CreateInputActionReferences(asset, addObjectToAsset); + } + private static void FixMissingGuids(InputActionAsset asset) + { // Make sure all the elements in the asset have GUIDs and that they are indeed unique. - var maps = asset.actionMaps; - foreach (var map in maps) + foreach (var map in asset.actionMaps) { // Make sure action map has GUID. if (string.IsNullOrEmpty(map.m_Id) || asset.actionMaps.Count(x => x.m_Id == map.m_Id) > 1) @@ -117,15 +172,18 @@ public override void OnImportAsset(AssetImportContext ctx) map.m_Bindings[i].GenerateId(); } } + } - // Create subasset for each action. - foreach (var map in maps) + private static void CreateInputActionReferences(InputActionAsset asset, AddObjectToAsset addObjectToAsset) + { + var actionIcon = InputActionAssetIconLoader.LoadActionIcon(); + foreach (var map in asset.actionMaps) { foreach (var action in map.actions) { var actionReference = ScriptableObject.CreateInstance(); actionReference.Set(action); - ctx.AddObjectToAsset(action.m_Id, actionReference, actionIcon); + addObjectToAsset(action.m_Id, actionReference, actionIcon); // Backwards-compatibility (added for 1.0.0-preview.7). // We used to call AddObjectToAsset using objectName instead of action.m_Id as the object name. This fed @@ -141,84 +199,83 @@ public override void OnImportAsset(AssetImportContext ctx) var backcompatActionReference = Instantiate(actionReference); backcompatActionReference.name = actionReference.name; // Get rid of the (Clone) suffix. backcompatActionReference.hideFlags = HideFlags.HideInHierarchy; - ctx.AddObjectToAsset(actionReference.name, backcompatActionReference, actionIcon); + addObjectToAsset(actionReference.name, backcompatActionReference, actionIcon); } } + } - // Generate wrapper code, if enabled. - if (m_GenerateWrapperCode) + private static void GenerateWrapperCode(AssetImportContext ctx, InputActionAsset asset, string codeNamespace, string codeClassName, string codePath) + { + var maps = asset.actionMaps; + // When using code generation, it is an error for any action map to be named the same as the asset itself. + // https://fogbugz.unity3d.com/f/cases/1212052/ + var className = !string.IsNullOrEmpty(codeClassName) ? codeClassName : CSharpCodeHelpers.MakeTypeName(asset.name); + if (maps.Any(x => + CSharpCodeHelpers.MakeTypeName(x.name) == className || CSharpCodeHelpers.MakeIdentifier(x.name) == className)) { - // When using code generation, it is an error for any action map to be named the same as the asset itself. - // https://fogbugz.unity3d.com/f/cases/1212052/ - var className = !string.IsNullOrEmpty(m_WrapperClassName) ? m_WrapperClassName : CSharpCodeHelpers.MakeTypeName(asset.name); - if (maps.Any(x => - CSharpCodeHelpers.MakeTypeName(x.name) == className || CSharpCodeHelpers.MakeIdentifier(x.name) == className)) - { - ctx.LogImportError( - $"{asset.name}: An action map in an .inputactions asset cannot be named the same as the asset itself if 'Generate C# Class' is used. " - + "You can rename the action map in the asset, rename the asset itself or assign a different C# class name in the import settings."); - } - else - { - var wrapperFilePath = m_WrapperCodePath; - if (string.IsNullOrEmpty(wrapperFilePath)) - { - // Placed next to .inputactions file. - var assetPath = ctx.assetPath; - var directory = Path.GetDirectoryName(assetPath); - var fileName = Path.GetFileNameWithoutExtension(assetPath); - wrapperFilePath = Path.Combine(directory, fileName) + ".cs"; - } - else if (wrapperFilePath.StartsWith("./") || wrapperFilePath.StartsWith(".\\") || - wrapperFilePath.StartsWith("../") || wrapperFilePath.StartsWith("..\\")) - { - // User-specified file relative to location of .inputactions file. - var assetPath = ctx.assetPath; - var directory = Path.GetDirectoryName(assetPath); - wrapperFilePath = Path.Combine(directory, wrapperFilePath); - } - else if (!wrapperFilePath.ToLower().StartsWith("assets/") && - !wrapperFilePath.ToLower().StartsWith("assets\\")) - { - // User-specified file in Assets/ folder. - wrapperFilePath = Path.Combine("Assets", wrapperFilePath); - } + ctx.LogImportError( + $"{asset.name}: An action map in an .inputactions asset cannot be named the same as the asset itself if 'Generate C# Class' is used. " + + "You can rename the action map in the asset, rename the asset itself or assign a different C# class name in the import settings."); + return; + } - var dir = Path.GetDirectoryName(wrapperFilePath); - if (!Directory.Exists(dir)) - Directory.CreateDirectory(dir); + var wrapperFilePath = codePath; + if (string.IsNullOrEmpty(wrapperFilePath)) + { + // Placed next to .inputactions file. + var assetPath = ctx.assetPath; + var directory = Path.GetDirectoryName(assetPath); + var fileName = Path.GetFileNameWithoutExtension(assetPath); + wrapperFilePath = Path.Combine(directory, fileName) + ".cs"; + } + else if (wrapperFilePath.StartsWith("./") || wrapperFilePath.StartsWith(".\\") || + wrapperFilePath.StartsWith("../") || wrapperFilePath.StartsWith("..\\")) + { + // User-specified file relative to location of .inputactions file. + var assetPath = ctx.assetPath; + var directory = Path.GetDirectoryName(assetPath); + wrapperFilePath = Path.Combine(directory, wrapperFilePath); + } + else if (!wrapperFilePath.ToLower().StartsWith("assets/") && + !wrapperFilePath.ToLower().StartsWith("assets\\")) + { + // User-specified file in Assets/ folder. + wrapperFilePath = Path.Combine("Assets", wrapperFilePath); + } - var options = new InputActionCodeGenerator.Options - { - sourceAssetPath = ctx.assetPath, - namespaceName = m_WrapperCodeNamespace, - className = m_WrapperClassName, - }; + var dir = Path.GetDirectoryName(wrapperFilePath); + if (!Directory.Exists(dir)) + Directory.CreateDirectory(dir); - if (InputActionCodeGenerator.GenerateWrapperCode(wrapperFilePath, asset, options)) - { - // When we generate the wrapper code cs file during asset import, we cannot call ImportAsset on that directly because - // script assets have to be imported before all other assets, and are not allowed to be added to the import queue during - // asset import. So instead we register a callback to trigger a delayed asset refresh which should then pick up the - // changed/added script, and trigger a new import. - EditorApplication.delayCall += AssetDatabase.Refresh; - } - } - } + var options = new InputActionCodeGenerator.Options + { + sourceAssetPath = ctx.assetPath, + namespaceName = codeNamespace, + className = codeClassName, + }; - // Refresh editors. - InputActionEditorWindow.RefreshAllOnAssetReimport(); + if (InputActionCodeGenerator.GenerateWrapperCode(wrapperFilePath, asset, options)) + { + // When we generate the wrapper code cs file during asset import, we cannot call ImportAsset on that directly because + // script assets have to be imported before all other assets, and are not allowed to be added to the import queue during + // asset import. So instead we register a callback to trigger a delayed asset refresh which should then pick up the + // changed/added script, and trigger a new import. + EditorApplication.delayCall += AssetDatabase.Refresh; + } } - internal static IEnumerable LoadInputActionReferencesFromAsset(InputActionAsset asset) +#if UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS + internal static IEnumerable LoadInputActionReferencesFromAsset(string assetPath) { - //Get all InputActionReferences are stored at the same asset path as InputActionAsset - return AssetDatabase.LoadAllAssetsAtPath(AssetDatabase.GetAssetPath(asset)).Where( - o => o is InputActionReference && o.name != "InputManager").Cast(); + // Get all InputActionReferences are stored at the same asset path as InputActionAsset + // Note we exclude 'hidden' action references (which are present to support one of the pre releases) + return AssetDatabase.LoadAllAssetsAtPath(assetPath).Where( + o => o is InputActionReference && !((InputActionReference)o).hideFlags.HasFlag(HideFlags.HideInHierarchy)) + .Cast(); } // Get all InputActionReferences from assets in the project. By default it only gets the assets in the "Assets" folder. - internal static IEnumerable LoadInputActionReferencesFromAssetDatabase(string[] foldersPath = null) + internal static IEnumerable LoadInputActionReferencesFromAssetDatabase(string[] foldersPath = null, bool skipProjectWide = false) { string[] searchFolders = null; // If folderPath is null, search in "Assets" folder. @@ -239,16 +296,21 @@ internal static IEnumerable LoadInputActionReferencesFromA foreach (var guid in inputActionReferenceGUIDs) { var assetPath = AssetDatabase.GUIDToAssetPath(guid); - var assetInputActionReferenceList = AssetDatabase.LoadAllAssetsAtPath(assetPath).Where( - o => o is InputActionReference && - !((InputActionReference)o).hideFlags.HasFlag(HideFlags.HideInHierarchy)) - .Cast().ToList(); + var assetInputActionReferenceList = LoadInputActionReferencesFromAsset(assetPath).ToList(); + + if (skipProjectWide && assetInputActionReferenceList.Count() > 0) + { + if (assetInputActionReferenceList[0].m_Asset == InputSystem.actions) + continue; + } inputActionReferencesList.AddRange(assetInputActionReferenceList); } return inputActionReferencesList; } +#endif + // Add item to plop an .inputactions asset into the project. [MenuItem("Assets/Create/Input Actions")] public static void CreateInputAsset() @@ -256,6 +318,87 @@ public static void CreateInputAsset() ProjectWindowUtil.CreateAssetWithContent("New Controls." + InputActionAsset.Extension, InputActionAsset.kDefaultAssetLayoutJson, InputActionAssetIconLoader.LoadAssetIcon()); } + + // File extension of the associated asset + private const string kFileExtension = "." + InputActionAsset.Extension; + + // Evaluates whether the given path is a path to an asset of the associated type based on extension. + public static bool IsInputActionAssetPath(string path) + { + return path != null && path.EndsWith(kFileExtension, StringComparison.InvariantCultureIgnoreCase); + } + + // Returns a suitable object name for an asset based on its path. + public static string NameFromAssetPath(string assetPath) + { + Debug.Assert(IsInputActionAssetPath(assetPath)); + return Path.GetFileNameWithoutExtension(assetPath); + } + + // This processor was added to address this issue: + // https://issuetracker.unity3d.com/product/unity/issues/guid/ISXB-749 + // + // When an action asset is renamed, copied, or moved in the Editor, the "Name" field in the JSON will + // hold the old name and won't match the asset objects name in memory which is set based on the filename + // by the scripted imported. To avoid this, this asset post-processor detects any imported or moved assets + // with a JSON name property not matching the importer assigned name and updates the JSON name based on this. + // This basically solves any problem related to unmodified assets. + // + // Note that JSON names have no relevance for editor workflows and are basically ignored by the importer. + // Note that JSON names may be the only way to identify assets loaded from non-file sources or via + // UnityEngine.Resources in run-time. + // + // Note that if an asset is is imported and a name mismatch is detected, the asset will be modified and + // imported again, which will yield yet another callback to the post-processor. For the second iteration, + // the name will no longer be a mismatch and the cycle will be aborted. + private class InputActionJsonNameModifierAssetProcessor : AssetPostprocessor + { + // Note: Callback prior to Unity 2021.2 did not provide a boolean indicating domain relaod. +#if UNITY_2021_2_OR_NEWER + private static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, + string[] movedAssets, string[] movedFromAssetPaths, bool didDomainReload) +#else + private static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, + string[] movedAssets, string[] movedFromAssetPaths) +#endif + { + foreach (var assetPath in importedAssets) + { + if (IsInputActionAssetPath(assetPath)) + CheckAndRenameJsonNameIfDifferent(assetPath); + } + } + + private static void CheckAndRenameJsonNameIfDifferent(string assetPath) + { + InputActionAsset asset = null; + try + { + // Evaluate whether JSON name corresponds to desired name + asset = InputActionAsset.FromJson(File.ReadAllText(assetPath)); + var desiredName = Path.GetFileNameWithoutExtension(assetPath); + if (asset.name == desiredName) + return; + + // Update JSON name by modifying the asset + asset.name = desiredName; + if (!EditorHelpers.WriteAsset(assetPath, asset.ToJson())) + { + Debug.LogError($"Unable to change JSON name for asset at \"{assetPath}\" since the asset-path could not be checked-out as editable in the underlying version-control system."); + } + } + catch (Exception ex) + { + Debug.LogException(ex); + } + finally + { + if (asset != null) + DestroyImmediate(asset); + } + } + } } } + #endif // UNITY_EDITOR diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/AssetImporter/InputActionImporterEditor.cs b/Packages/com.unity.inputsystem/InputSystem/Editor/AssetImporter/InputActionImporterEditor.cs index 32fb619895..f13391c2e2 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Editor/AssetImporter/InputActionImporterEditor.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/AssetImporter/InputActionImporterEditor.cs @@ -27,6 +27,8 @@ public override void OnInspectorGUI() // like in other types of editors. serializedObject.Update(); + EditorGUILayout.Space(); + if (inputActionAsset == null) EditorGUILayout.HelpBox("The currently selected object is not an editable input action asset.", MessageType.Info); @@ -34,19 +36,21 @@ public override void OnInspectorGUI() // Button to pop up window to edit the asset. using (new EditorGUI.DisabledScope(inputActionAsset == null)) { - if (GUILayout.Button("Edit asset")) - { -#if UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS - if (!InputSystem.settings.IsFeatureEnabled(InputFeatureNames.kUseIMGUIEditorForAssets)) - InputActionsEditorWindow.OpenEditor(inputActionAsset); - else -#endif - InputActionEditorWindow.OpenEditor(inputActionAsset); - } + if (GUILayout.Button(GetOpenEditorButtonText(inputActionAsset), GUILayout.Height(30))) + OpenEditor(inputActionAsset); } EditorGUILayout.Space(); +#if UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS + // Project-wide Input Actions Asset UI. + InputAssetEditorUtils.DrawMakeActiveGui(InputSystem.actions, inputActionAsset, + inputActionAsset ? inputActionAsset.name : "Null", "Project-wide Input Actions", + (value) => InputSystem.actions = value, !EditorApplication.isPlayingOrWillChangePlaymode); + + EditorGUILayout.Space(); +#endif + // Importer settings UI. var generateWrapperCodeProperty = serializedObject.FindProperty("m_GenerateWrapperCode"); EditorGUILayout.PropertyField(generateWrapperCodeProperty, m_GenerateWrapperCodeLabel); @@ -108,6 +112,54 @@ private InputActionAsset GetAsset() return assetTarget as InputActionAsset; } +#if UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS + protected override bool ShouldHideOpenButton() + { + return IsProjectWideActionsAsset(); + } + + private bool IsProjectWideActionsAsset() + { + return IsProjectWideActionsAsset(GetAsset()); + } + + private static bool IsProjectWideActionsAsset(InputActionAsset asset) + { + return !ReferenceEquals(asset, null) && InputSystem.actions == asset; + } + +#endif + + private string GetOpenEditorButtonText(InputActionAsset asset) + { +#if UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS + if (IsProjectWideActionsAsset(asset)) + return "Edit in Project Settings Window"; +#endif + return "Edit Asset"; + } + + private static void OpenEditor(InputActionAsset asset) + { +#if UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS + // Redirect to Project-settings Input Actions editor if this is the project-wide actions asset + if (IsProjectWideActionsAsset(asset)) + { + SettingsService.OpenProjectSettings(InputSettingsPath.kSettingsRootPath); + return; + } + + // Redirect to UI-Toolkit window editor if not configured to use IMGUI explicitly + if (!InputSystem.settings.IsFeatureEnabled(InputFeatureNames.kUseIMGUIEditorForAssets)) + InputActionsEditorWindow.OpenEditor(asset); + else + InputActionEditorWindow.OpenEditor(asset); +#else + // Redirect to IMGUI editor + InputActionEditorWindow.OpenEditor(asset); +#endif + } + private readonly GUIContent m_GenerateWrapperCodeLabel = EditorGUIUtility.TrTextContent("Generate C# Class"); private readonly GUIContent m_WrapperCodePathLabel = EditorGUIUtility.TrTextContent("C# Class File"); private readonly GUIContent m_WrapperClassNameLabel = EditorGUIUtility.TrTextContent("C# Class Name"); diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/ControlPicker/InputControlPathEditor.cs b/Packages/com.unity.inputsystem/InputSystem/Editor/ControlPicker/InputControlPathEditor.cs index a8bf068314..dbfc601023 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Editor/ControlPicker/InputControlPathEditor.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/ControlPicker/InputControlPathEditor.cs @@ -104,8 +104,10 @@ public void OnGUI(Rect rect, GUIContent label = null, SerializedProperty propert var bindingTextRect = lineRect; var editButtonRect = lineRect; - bindingTextRect.width -= 20; - editButtonRect.x += bindingTextRect.width; + var bindingTextRectOffset = 80; + bindingTextRect.width += bindingTextRectOffset; + bindingTextRect.x -= bindingTextRectOffset + 20; + editButtonRect.x = bindingTextRect.x + bindingTextRect.width; // Place it directly after the textRect editButtonRect.width = 20; editButtonRect.height = 15; @@ -160,6 +162,9 @@ public void OnGUI(Rect rect, GUIContent label = null, SerializedProperty propert private void ShowDropdown(Rect rect, SerializedProperty serializedProperty, Action modifiedCallback) { + #if UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS + InputActionsEditorSettingsProvider.SetIMGUIDropdownVisible(true, false); + #endif if (m_PickerDropdown == null) { m_PickerDropdown = new InputControlPickerDropdown( diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/ControlPicker/InputControlPickerDropdown.cs b/Packages/com.unity.inputsystem/InputSystem/Editor/ControlPicker/InputControlPickerDropdown.cs index 5f595a6a1d..6609f622f5 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Editor/ControlPicker/InputControlPickerDropdown.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/ControlPicker/InputControlPickerDropdown.cs @@ -65,6 +65,9 @@ public void SetPickedCallback(Action action) protected override void OnDestroy() { + #if UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS + InputActionsEditorSettingsProvider.SetIMGUIDropdownVisible(false, false); + #endif m_RebindingOperation?.Dispose(); m_RebindingOperation = null; } @@ -120,6 +123,9 @@ protected override AdvancedDropdownItem BuildCustomSearch(string searchString, protected override void ItemSelected(AdvancedDropdownItem item) { + #if UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS + InputActionsEditorSettingsProvider.SetIMGUIDropdownVisible(false, true); + #endif var path = ((InputControlDropdownItem)item).controlPathWithDevice; m_OnPickCallback(path); } diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/Debugger/InputDebuggerWindow.cs b/Packages/com.unity.inputsystem/InputSystem/Editor/Debugger/InputDebuggerWindow.cs index 0c78401a10..6086f7d605 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Editor/Debugger/InputDebuggerWindow.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/Debugger/InputDebuggerWindow.cs @@ -320,7 +320,7 @@ private void DrawToolbarGUI() // have a first pass at device descriptions supplied by users. try { - var copyBuffer = EditorGUIUtility.systemCopyBuffer; + var copyBuffer = EditorHelpers.GetSystemCopyBufferContents(); if (!string.IsNullOrEmpty(copyBuffer) && copyBuffer.StartsWith("{") && !InputDeviceDescription.FromJson(copyBuffer).empty) { @@ -418,7 +418,7 @@ protected override void ContextClickedItem(int id) var menu = new GenericMenu(); menu.AddItem(Contents.openDebugView, false, () => InputDeviceDebuggerWindow.CreateOrShowExisting(deviceItem.device)); menu.AddItem(Contents.copyDeviceDescription, false, - () => EditorGUIUtility.systemCopyBuffer = deviceItem.device.description.ToJson()); + () => EditorHelpers.SetSystemCopyBufferContents(deviceItem.device.description.ToJson())); menu.AddItem(Contents.removeDevice, false, () => InputSystem.RemoveDevice(deviceItem.device)); if (deviceItem.device.enabled) menu.AddItem(Contents.disableDevice, false, () => InputSystem.DisableDevice(deviceItem.device)); @@ -434,7 +434,7 @@ protected override void ContextClickedItem(int id) { var menu = new GenericMenu(); menu.AddItem(Contents.copyDeviceDescription, false, - () => EditorGUIUtility.systemCopyBuffer = unsupportedDeviceItem.description.ToJson()); + () => EditorHelpers.SetSystemCopyBufferContents(unsupportedDeviceItem.description.ToJson())); menu.ShowAsContext(); } @@ -445,7 +445,7 @@ protected override void ContextClickedItem(int id) { var menu = new GenericMenu(); menu.AddItem(Contents.copyLayoutAsJSON, false, - () => EditorGUIUtility.systemCopyBuffer = layout.ToJson()); + () => EditorHelpers.SetSystemCopyBufferContents(layout.ToJson())); if (layout.isDeviceLayout) { menu.AddItem(Contents.createDeviceFromLayout, false, @@ -927,6 +927,15 @@ private unsafe void AddActionItem(TreeViewItem parent, InputAction action, ref i var name = action.actionMap != null ? $"{action.actionMap.name}/{action.name}" : action.name; if (!action.enabled) name += " (Disabled)"; + if (action.actionMap != null && action.actionMap.m_Asset != null) + { + name += $" ({action.actionMap.m_Asset.name})"; + } + else + { + name += " (no asset)"; + } + var item = AddChild(parent, name, ref id); // Grab state. diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/Dialog.cs b/Packages/com.unity.inputsystem/InputSystem/Editor/Dialog.cs new file mode 100644 index 0000000000..dfd2c662b0 --- /dev/null +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/Dialog.cs @@ -0,0 +1,156 @@ +#if UNITY_EDITOR + +using System; +using UnityEditor; + +namespace UnityEngine.InputSystem.Editor +{ + // Input system UI dialogs centralized as utility methods. + // In the future we may introduce possibility to mock/stub these dialogs via delegates to allow + // automated testing of dialog options and secure that no dialogs are shown in editor testing. + internal static class Dialog + { + // Represents the result of the user selecting a dialog option. + public enum Result + { + // User decided that unsaved changes should be saved to the associated asset. + Save = 0, + + // Operation was cancelled by the user. + Cancel = 1, + + // Unsaved changes should be discarded and NOT be saved to the associated asset. + Discard = 2, + + // User decided to delete the associated resource. + Delete = 3, + } + + // User UI dialog windows related to InputActionAssets + public static class InputActionAsset + { + #region Save Changes Dialog + + private static Func saveChanges = DefaultSaveChanges; + + internal static void SetSaveChanges(Func dialog) + { + saveChanges = dialog ?? DefaultSaveChanges; + } + + private static Result DefaultSaveChanges(string path) + { + var id = EditorUtility.DisplayDialogComplex( + title: "Input Action Asset has been modified", + message: $"Do you want to save the changes you made in:\n{path}\n\nYour changes will be lost if you don't save them.", + ok: "Save", + cancel: "Cancel", + alt: "Don't Save"); + switch (id) + { + case 0: return Result.Save; + case 1: return Result.Cancel; + case 2: return Result.Discard; + default: throw new ArgumentOutOfRangeException(nameof(id)); + } + } + + // Shows a dialog prompting the user to save or discard unsaved changes. + // May return Result.Save, Result.Cancel or Result.Discard. + public static Result ShowSaveChanges(string path) + { + return saveChanges(path); + } + + #endregion + + #region Discard Unsaved Changes Dialog + + private static Func discardUnsavedChanges = DefaultDiscardUnsavedChanges; + + internal static void SetDiscardUnsavedChanges(Func dialog) + { + discardUnsavedChanges = dialog ?? DefaultDiscardUnsavedChanges; + } + + private static Result DefaultDiscardUnsavedChanges(string path) + { + var pressedOkButton = EditorUtility.DisplayDialog( + title: "Unsaved changes", + message: + $"You have unsaved changes for '{path}'. Do you want to discard the changes and delete the asset?", + ok: "Yes, Delete", + cancel: "No, Cancel"); + return pressedOkButton ? Result.Discard : Result.Cancel; + } + + // Shows a dialog prompting the user to discard changes or cancel the operation. + // May return Result.Discard or Result.Cancel. + public static Result ShowDiscardUnsavedChanges(string path) + { + return discardUnsavedChanges(path); + } + + #endregion + + #region Create and overwrite existing asset dialog + + private static Func + createAndOverwriteExistingAsset = DefaultCreateAndOverwriteExistingAsset; + + internal static void SetCreateAndOverwriteExistingAsset(Func dialog) + { + createAndOverwriteExistingAsset = dialog ?? DefaultCreateAndOverwriteExistingAsset; + } + + private static Result DefaultCreateAndOverwriteExistingAsset(string path) + { + var pressedOkButton = EditorUtility.DisplayDialog( + title: "Create Input Action Asset", + message: $"This will overwrite the existing asset: '{path}'. Continue and overwrite?", + ok: "Ok", + cancel: "Cancel"); + return pressedOkButton ? Result.Discard : Result.Cancel; + } + + // Shows a dialog prompting the user whether the intention is to create an asset and overwrite the + // currently existing asset. May return Result.Discard to overwrite or Result.Cancel to cancel. + public static Result ShowCreateAndOverwriteExistingAsset(string path) + { + return createAndOverwriteExistingAsset(path); + } + + #endregion + } + + // User UI dialog windows related to InputControlSchemes + public static class ControlScheme + { + private static Func deleteControlScheme = DefaultDeleteControlScheme; + + internal static void SetDeleteControlScheme(Func dialog) + { + deleteControlScheme = dialog ?? DefaultDeleteControlScheme; + } + + private static Result DefaultDeleteControlScheme(string controlSchemeName) + { + // Ask for confirmation. + var pressedOkButton = EditorUtility.DisplayDialog("Delete scheme?", + message: $"Do you want to delete control scheme '{controlSchemeName}'?", + ok: "Delete", + cancel: "Cancel"); + return pressedOkButton ? Result.Delete : Result.Cancel; + } + + // Shows a dialog prompting the user to delete a control scheme or cancel the operation. + // May return Result.Delete or Result.Cancel. + public static Result ShowDeleteControlScheme(string controlSchemeName) + { + return deleteControlScheme(controlSchemeName); + } + } + } +} + +#endif // UNITY_EDITOR diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/Dialog.cs.meta b/Packages/com.unity.inputsystem/InputSystem/Editor/Dialog.cs.meta new file mode 100644 index 0000000000..38b3f41c79 --- /dev/null +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/Dialog.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: c213b206af9a4bef8c43f8f0f60cc31e +timeCreated: 1708584156 \ No newline at end of file diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/InputAssetEditorUtils.cs b/Packages/com.unity.inputsystem/InputSystem/Editor/InputAssetEditorUtils.cs new file mode 100644 index 0000000000..e9aede7015 --- /dev/null +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/InputAssetEditorUtils.cs @@ -0,0 +1,113 @@ +#if UNITY_EDITOR + +using System; +using System.IO; +using UnityEditor; + +namespace UnityEngine.InputSystem.Editor +{ + internal static class InputAssetEditorUtils + { + /// + /// Represents a dialog result. + /// + internal enum DialogResult + { + /// + /// The dialog was closed with an invalid path. + /// + InvalidPath, + + /// + /// The dialog was cancelled by the user and the path is invalid. + /// + Cancelled, + + /// + /// The dialog was accepted by the user and the associated path is valid. + /// + Valid + } + + internal struct PromptResult + { + public PromptResult(DialogResult result, string path) + { + this.result = result; + this.relativePath = path; + } + + public readonly DialogResult result; + public readonly string relativePath; + } + + internal static string MakeProjectFileName(string projectNameSuffixNoExtension) + { + return PlayerSettings.productName + "." + projectNameSuffixNoExtension; + } + + internal static PromptResult PromptUserForAsset(string friendlyName, string suggestedAssetFilePathWithoutExtension, string assetFileExtension) + { + // Prompt user for a file name. + var fullAssetFileExtension = "." + assetFileExtension; + var path = EditorUtility.SaveFilePanel( + title: $"Create {friendlyName} File", + directory: "Assets", + defaultName: suggestedAssetFilePathWithoutExtension + "." + assetFileExtension, + extension: assetFileExtension); + if (string.IsNullOrEmpty(path)) + return new PromptResult(DialogResult.Cancelled, null); + + // Make sure the path is in the Assets/ folder. + path = path.Replace("\\", "/"); // Make sure we only get '/' separators. + var dataPath = Application.dataPath + "/"; + if (!path.StartsWith(dataPath, StringComparison.CurrentCultureIgnoreCase)) + { + Debug.LogError($"{friendlyName} must be stored in Assets folder of the project (got: '{path}')"); + return new PromptResult(DialogResult.InvalidPath, null); + } + + // Make sure path ends with expected extension + var extension = Path.GetExtension(path); + if (string.Compare(extension, fullAssetFileExtension, StringComparison.InvariantCultureIgnoreCase) != 0) + path += fullAssetFileExtension; + + return new PromptResult(DialogResult.Valid, "Assets/" + path.Substring(dataPath.Length)); + } + + internal static T CreateAsset(T asset, string relativePath) where T : ScriptableObject + { + AssetDatabase.CreateAsset(asset, relativePath); + EditorGUIUtility.PingObject(asset); + return asset; + } + + public static void DrawMakeActiveGui(T current, T target, string targetName, string entity, Action apply, bool allowAssignActive = true) + where T : ScriptableObject + { + if (current == target) + { + EditorGUILayout.HelpBox($"These actions are assigned as the {entity}.", MessageType.Info); + return; + } + + string currentlyActiveAssetsPath = null; + if (current != null) + currentlyActiveAssetsPath = AssetDatabase.GetAssetPath(current); + if (!string.IsNullOrEmpty(currentlyActiveAssetsPath)) + currentlyActiveAssetsPath = $" The actions currently assigned as the {entity} are: {currentlyActiveAssetsPath}. "; + EditorGUILayout.HelpBox($"These actions are not assigned as the {entity} for the Input System. {currentlyActiveAssetsPath??""}", MessageType.Warning); + GUI.enabled = allowAssignActive; + if (GUILayout.Button($"Assign as the {entity}", EditorStyles.miniButton)) + apply(target); + GUI.enabled = true; + } + + public static bool IsValidFileExtension(string path) + { + return path != null && path.EndsWith("." + InputActionAsset.Extension, StringComparison.InvariantCultureIgnoreCase); + } + } +} + +#endif // UNITY_EDITOR diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/InputAssetEditorUtils.cs.meta b/Packages/com.unity.inputsystem/InputSystem/Editor/InputAssetEditorUtils.cs.meta new file mode 100644 index 0000000000..96efb86512 --- /dev/null +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/InputAssetEditorUtils.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 64d9d71f43124cea89b28b356e84a412 +timeCreated: 1707258043 \ No newline at end of file diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/Internal/BuildProviderHelpers.cs b/Packages/com.unity.inputsystem/InputSystem/Editor/Internal/BuildProviderHelpers.cs new file mode 100644 index 0000000000..83c1847ee9 --- /dev/null +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/Internal/BuildProviderHelpers.cs @@ -0,0 +1,62 @@ +#if UNITY_EDITOR + +using System; +using UnityEditor; +using UnityEngine.InputSystem.Utilities; + +namespace UnityEngine.InputSystem.Editor +{ + internal static class BuildProviderHelpers + { + // Adds the given object to the list of preloaded asset if not already present and + // returns the argument given if the object was added to the list or null if already present. + public static Object PreProcessSinglePreloadedAsset(Object assetToPreload) + { + // Avoid including any null asset + if (assetToPreload == null) + return null; + + // If we operate on temporary object instead of a properly persisted asset, adding that temporary asset + // would result in preloadedAssets containing null object "{fileID: 0}". Hence we ignore these. + if (EditorUtility.IsPersistent(assetToPreload)) + { + // Add asset object, if it's not in there already. + var preloadedAssets = PlayerSettings.GetPreloadedAssets(); + if (preloadedAssets != null && preloadedAssets.IndexOf(assetToPreload) == -1) + { + ArrayHelpers.Append(ref preloadedAssets, assetToPreload); + PlayerSettings.SetPreloadedAssets(preloadedAssets); + return assetToPreload; + } + } + + return null; + } + + // Removes the given object from preloaded assets if present. + // The object passed as argument if set to null by this function regardless if existing in preloaded + // assets or not. + public static void PostProcessSinglePreloadedAsset(ref Object assetAddedByThisProvider) + { + if (assetAddedByThisProvider == null) + return; + + // Revert back to original state by removing all object(s) from preloaded assets that was added by this processor. + var preloadedAssets = PlayerSettings.GetPreloadedAssets(); + while (preloadedAssets != null && preloadedAssets.Length > 0) + { + var index = Array.IndexOf(preloadedAssets, assetAddedByThisProvider); + if (index != -1) + { + ArrayHelpers.EraseAt(ref preloadedAssets, index); + PlayerSettings.SetPreloadedAssets(preloadedAssets); + break; + } + } + + assetAddedByThisProvider = null; + } + } +} + +#endif // UNITY_EDITOR diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/Internal/BuildProviderHelpers.cs.meta b/Packages/com.unity.inputsystem/InputSystem/Editor/Internal/BuildProviderHelpers.cs.meta new file mode 100644 index 0000000000..fe18f1bc62 --- /dev/null +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/Internal/BuildProviderHelpers.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: ed303b5629a047fa8c081261bb1993d1 +timeCreated: 1709546908 \ No newline at end of file diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/Internal/EditorHelpers.cs b/Packages/com.unity.inputsystem/InputSystem/Editor/Internal/EditorHelpers.cs index f9354b70e1..1b2ee708b6 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Editor/Internal/EditorHelpers.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/Internal/EditorHelpers.cs @@ -1,5 +1,7 @@ #if UNITY_EDITOR using System; +using System.Diagnostics.CodeAnalysis; +using System.IO; using System.Reflection; using UnityEditor; @@ -7,9 +9,20 @@ namespace UnityEngine.InputSystem.Editor { internal static class EditorHelpers { + // Provides an abstraction layer on top of EditorGUIUtility to allow replacing the underlying buffer. public static Action SetSystemCopyBufferContents = s => EditorGUIUtility.systemCopyBuffer = s; + + // Provides an abstraction layer on top of EditorGUIUtility to allow replacing the underlying buffer. public static Func GetSystemCopyBufferContents = () => EditorGUIUtility.systemCopyBuffer; + // Attempts to retrieve the asset GUID associated with the given asset. If asset is null or the asset + // is not associated with a GUID or the operation fails for any other reason the return value will be null. + public static string GetAssetGUID(Object asset) + { + return !AssetDatabase.TryGetGUIDAndLocalFileIdentifier(asset, out var assetGuid, out long _) + ? null : assetGuid; + } + // SerializedProperty.tooltip *should* give us the tooltip as per [Tooltip] attribute. Alas, for some // reason, it's not happening. public static string GetTooltip(this SerializedProperty property) @@ -41,7 +54,8 @@ public static void RestartEditorAndRecompileScripts(bool dryRun = false) throw new MissingMethodException(editorApplicationType.FullName, "RestartEditorAndRecompileScripts"); } - public static void CheckOut(string path) + // Attempts to make an asset editable in the underlying version control system and returns true if successful. + public static bool CheckOut(string path) { if (string.IsNullOrEmpty(path)) throw new ArgumentNullException(nameof(path)); @@ -52,39 +66,65 @@ public static void CheckOut(string path) (path[projectPath.Length] == '/' || path[projectPath.Length] == '\\')) path = path.Substring(0, projectPath.Length + 1); - AssetDatabase.MakeEditable(path); + return AssetDatabase.MakeEditable(path); } - public static void CheckOut(Object asset) + /// + /// Attempts to checkout an asset for editing at the given path and overwrite its file content with + /// the given asset text content. + /// + /// Path to asset to be checkout out and overwritten. + /// The new file content. + /// true if the file was successfully checkout for editing and the file was written. + /// This function may return false if unable to checkout the file for editing in the underlying + /// version control system. + internal static bool WriteAsset(string assetPath, string text) { - if (asset == null) - throw new ArgumentNullException(nameof(asset)); - var path = AssetDatabase.GetAssetPath(asset); - CheckOut(path); + // Attempt to checkout the file path for editing and inform the user if this fails. + if (!CheckOut(assetPath)) + return false; + + // (Over)write file text content. + File.WriteAllText(GetPhysicalPath(assetPath), text); + + // Reimport the asset (indirectly triggers ADB notification callbacks) + AssetDatabase.ImportAsset(assetPath); + + return true; } - // It seems we're getting instabilities on the farm from using EditorGUIUtility.systemCopyBuffer directly in tests. - // Ideally, we'd have a mocking library to just work around that but well, we don't. So this provides a solution - // locally to tests. - public class FakeSystemCopyBuffer : IDisposable + /// + /// Saves an asset to the given assetPath with file content corresponding to text + /// if the current content of the asset given by assetPath is different or the asset do not exist. + /// + /// Destination asset path. + /// The new desired text content to be written to the asset. + /// true if the asset was successfully modified or created, else false. + internal static bool SaveAsset(string assetPath, string text) { - private string m_Contents; - private readonly Action m_OldSet; - private readonly Func m_OldGet; + var existingJson = File.Exists(assetPath) ? File.ReadAllText(assetPath) : string.Empty; - public FakeSystemCopyBuffer() - { - m_OldGet = GetSystemCopyBufferContents; - m_OldSet = SetSystemCopyBufferContents; - SetSystemCopyBufferContents = s => m_Contents = s; - GetSystemCopyBufferContents = () => m_Contents; - } + // Return immediately if file content has not changed, i.e. touching the file would not yield a difference. + if (text == existingJson) + return false; - public void Dispose() - { - SetSystemCopyBufferContents = m_OldSet; - GetSystemCopyBufferContents = m_OldGet; - } + // Attempt to write asset to disc (including checkout the file) and inform the user if this fails. + if (WriteAsset(assetPath, text)) + return true; + + Debug.LogError($"Unable save asset to \"{assetPath}\" since the asset-path could not be checked-out as editable in the underlying version-control system."); + return false; + } + + // Maps path into a physical path. + public static string GetPhysicalPath(string path) + { + // Note that we can only get physical path for 2021.2 or newer +#if UNITY_2021_2_OR_NEWER + return FileUtil.GetPhysicalPath(path); +#else + return path; +#endif } } } diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/Internal/InputActionSerializationHelpers.cs b/Packages/com.unity.inputsystem/InputSystem/Editor/Internal/InputActionSerializationHelpers.cs index af547caaa6..0e110c8219 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Editor/Internal/InputActionSerializationHelpers.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/Internal/InputActionSerializationHelpers.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Reflection; +using System.Text; using UnityEditor; using UnityEngine.InputSystem.Layouts; using UnityEngine.InputSystem.Utilities; @@ -111,113 +112,40 @@ public static int ConvertBindingIndexOnActionToBindingIndexInArray(SerializedPro return indexInArray; } - public static SerializedProperty DuplicateElement(SerializedProperty arrayProperty, SerializedProperty toDuplicate, string name, int index, bool changeName = true) +#if UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS + public static void AddActionMaps(SerializedObject asset, SerializedObject sourceAsset) { - var json = toDuplicate.CopyToJson(true); - var duplicatedProperty = AddElement(arrayProperty, name, index); - duplicatedProperty.RestoreFromJson(json); - if (changeName) - EnsureUniqueName(duplicatedProperty); - AssignUniqueIDs(duplicatedProperty); - return duplicatedProperty; - } + Debug.Assert(asset.targetObject is InputActionAsset); + Debug.Assert(sourceAsset.targetObject is InputActionAsset); - public static void DuplicateAction(SerializedProperty actionMap, SerializedProperty arrayProperty, SerializedProperty toDuplicate, string name) - { - var property = DuplicateElement(arrayProperty, toDuplicate, name, toDuplicate.GetIndexOfArrayElement() + 1); - var newName = property.FindPropertyRelative("m_Name").stringValue; - var bindingsArray = actionMap.FindPropertyRelative(nameof(InputActionMap.m_Bindings)); - var bindings = bindingsArray.Where(binding => binding.FindPropertyRelative("m_Action").stringValue.Equals(name)).ToList(); - var index = bindings.Select(b => b.GetIndexOfArrayElement()).Max() + 1; - foreach (var binding in bindings) - { - var newIndex = DuplicateBindingAsPartOfAction(bindingsArray, binding, newName, index); - index = newIndex; - } - } + var mapArrayPropertySrc = sourceAsset.FindProperty(nameof(InputActionAsset.m_ActionMaps)); + var mapArrayPropertyDst = asset.FindProperty(nameof(InputActionAsset.m_ActionMaps)); - private static SerializedProperty DuplicateComposite(SerializedProperty bindingsArray, SerializedProperty compositeToDuplicate, string name, string actionName, int index, out int newIndex, bool increaseIndex = true) - { - newIndex = index; - var bindings = GetBindingsForComposite(bindingsArray, compositeToDuplicate); - if (increaseIndex) - newIndex += GetCompositePartCount(bindingsArray, compositeToDuplicate.GetIndexOfArrayElement()); - var newComposite = DuplicateElement(bindingsArray, compositeToDuplicate, name, newIndex++, false); - newComposite.FindPropertyRelative("m_Action").stringValue = actionName; - foreach (var binding in bindings) + // Copy each action map from source and paste at the end of destination + var buffer = new StringBuilder(); + for (var i = 0; i < mapArrayPropertySrc.arraySize; ++i) { - var newBinding = DuplicateElement(bindingsArray, binding, binding.FindPropertyRelative("m_Name").stringValue, newIndex++, false); - newBinding.FindPropertyRelative("m_Action").stringValue = actionName; + buffer.Clear(); + var mapProperty = mapArrayPropertySrc.GetArrayElementAtIndex(i); + CopyPasteHelper.CopyItems(new List {mapProperty}, buffer, typeof(InputActionMap), mapProperty); + CopyPasteHelper.PasteItems(buffer.ToString(), new[] { mapArrayPropertyDst.arraySize - 1 }, mapArrayPropertyDst); } - return newComposite; } - private static List GetBindingsForComposite(SerializedProperty bindingsArray, SerializedProperty compositeToDuplicate) + public static void AddControlSchemes(SerializedObject asset, SerializedObject sourceAsset) { - var compositeBindings = new List(); - var compositeStartIndex = GetCompositeStartIndex(bindingsArray, compositeToDuplicate.GetIndexOfArrayElement()); - if (compositeStartIndex == -1) - return compositeBindings; - - for (var i = compositeStartIndex + 1; i < bindingsArray.arraySize; ++i) - { - var bindingProperty = bindingsArray.GetArrayElementAtIndex(i); - var bindingFlags = (InputBinding.Flags)bindingProperty.FindPropertyRelative("m_Flags").intValue; - if ((bindingFlags & InputBinding.Flags.PartOfComposite) == 0) - break; - compositeBindings.Add(bindingProperty); - } - return compositeBindings; - } + Debug.Assert((asset.targetObject is InputActionAsset)); + Debug.Assert((sourceAsset.targetObject is InputActionAsset)); - private static bool IsComposite(SerializedProperty property) => property.FindPropertyRelative("m_Flags").intValue == (int)InputBinding.Flags.Composite; - private static bool IsPartComposite(SerializedProperty property) => property.FindPropertyRelative("m_Flags").intValue == (int)InputBinding.Flags.PartOfComposite; - private static string PropertyName(SerializedProperty property) => property.FindPropertyRelative("m_Name").stringValue; + var src = sourceAsset.FindProperty(nameof(InputActionAsset.m_ControlSchemes)); + var dst = asset.FindProperty(nameof(InputActionAsset.m_ControlSchemes)); - private static int DuplicateBindingAsPartOfAction(SerializedProperty arrayProperty, SerializedProperty toDuplicate, string newActionName, int index) - { - if (IsComposite(toDuplicate)) - { - DuplicateComposite(arrayProperty, toDuplicate, PropertyName(toDuplicate), newActionName, index, out var newIndex, false); - return newIndex; - } - if (IsPartComposite(toDuplicate)) - return index; - var duplicatedBinding = DuplicateElement(arrayProperty, toDuplicate, PropertyName(toDuplicate), index++, false); - duplicatedBinding.FindPropertyRelative("m_Action").stringValue = newActionName; - return index; - } - - public static int DuplicateBinding(SerializedProperty arrayProperty, SerializedProperty toDuplicate, string newActionName, int index) - { - if (IsComposite(toDuplicate)) - { - var newComposite = DuplicateComposite(arrayProperty, toDuplicate, PropertyName(toDuplicate), newActionName, index, out _); - index = newComposite.GetIndexOfArrayElement(); - } - else - { - var duplicatedBinding = DuplicateElement(arrayProperty, toDuplicate, PropertyName(toDuplicate), index, false); - duplicatedBinding.FindPropertyRelative("m_Action").stringValue = newActionName; - } - return index; + var buffer = new StringBuilder(); + src.CopyToJson(buffer, ignoreObjectReferences: true); + dst.RestoreFromJson(buffer.ToString()); } - public static SerializedProperty AddElement(SerializedProperty arrayProperty, string name, int index = -1) - { - var uniqueName = FindUniqueName(arrayProperty, name); - if (index < 0) - index = arrayProperty.arraySize; - - arrayProperty.InsertArrayElementAtIndex(index); - var elementProperty = arrayProperty.GetArrayElementAtIndex(index); - elementProperty.ResetValuesToDefault(); - - elementProperty.FindPropertyRelative("m_Name").stringValue = uniqueName; - elementProperty.FindPropertyRelative("m_Id").stringValue = Guid.NewGuid().ToString(); - - return elementProperty; - } +#endif public static SerializedProperty AddActionMap(SerializedObject asset, int index = -1) { @@ -237,6 +165,12 @@ public static SerializedProperty AddActionMap(SerializedObject asset, int index mapProperty.FindPropertyRelative("m_Id").stringValue = Guid.NewGuid().ToString(); mapProperty.FindPropertyRelative("m_Actions").ClearArray(); mapProperty.FindPropertyRelative("m_Bindings").ClearArray(); + // NB: This isn't always required: If there's already values in the mapArrayProperty, then inserting a new + // element will duplicate the values from the adjacent element to the new element. + // However, if the array has been emptied - i.e. if all action maps have been deleted - + // then the m_Asset property is null, and needs setting here. + if (mapProperty.FindPropertyRelative("m_Asset").objectReferenceValue == null) + mapProperty.FindPropertyRelative("m_Asset").objectReferenceValue = asset.targetObject; return mapProperty; } @@ -250,6 +184,33 @@ public static void DeleteActionMap(SerializedObject asset, Guid id) mapArrayProperty.DeleteArrayElementAtIndex(mapIndex); } + public static void DeleteAllActionMaps(SerializedObject asset) + { + Debug.Assert(asset.targetObject is InputActionAsset); + + var mapArrayProperty = asset.FindProperty("m_ActionMaps"); + while (mapArrayProperty.arraySize > 0) + mapArrayProperty.DeleteArrayElementAtIndex(0); + } + + public static void MoveActionMap(SerializedObject asset, int fromIndex, int toIndex) + { + var mapArrayProperty = asset.FindProperty("m_ActionMaps"); + mapArrayProperty.MoveArrayElement(fromIndex, toIndex); + } + + public static void MoveAction(SerializedProperty actionMap, int fromIndex, int toIndex) + { + var actionArrayProperty = actionMap.FindPropertyRelative(nameof(InputActionMap.m_Actions)); + actionArrayProperty.MoveArrayElement(fromIndex, toIndex); + } + + public static void MoveBinding(SerializedProperty actionMap, int fromIndex, int toIndex) + { + var arrayProperty = actionMap.FindPropertyRelative(nameof(InputActionMap.m_Bindings)); + arrayProperty.MoveArrayElement(fromIndex, toIndex); + } + // Append a new action to the end of the set. public static SerializedProperty AddAction(SerializedProperty actionMap, int index = -1) { @@ -389,6 +350,12 @@ public static SerializedProperty AddBindingToBindingArray(SerializedProperty bin return newBindingProperty; } + public static void SetBindingPartName(SerializedProperty bindingProperty, string partName) + { + //expects beautified partName + bindingProperty.FindPropertyRelative("m_Name").stringValue = partName; + } + public static void ChangeBinding(SerializedProperty bindingProperty, string path = null, string groups = null, string interactions = null, string processors = null, string action = null) { @@ -461,35 +428,6 @@ public static void DeleteBinding(SerializedProperty bindingArrayProperty, Guid i DeleteBinding(bindingProperty, bindingArrayProperty, bindingIndex); } - public static void AssignUniqueIDs(SerializedProperty element) - { - // Assign new ID to map. - AssignUniqueID(element); - - // - foreach (var child in element.GetChildren()) - { - if (!child.isArray) - continue; - - var fieldType = child.GetFieldType(); - if (fieldType == typeof(InputBinding[]) || fieldType == typeof(InputAction[]) || - fieldType == typeof(InputActionMap)) - { - ////TODO: update bindings that refer to actions by {id} - for (var i = 0; i < child.arraySize; ++i) - using (var childElement = child.GetArrayElementAtIndex(i)) - AssignUniqueIDs(childElement); - } - } - } - - public static void AssignUniqueID(SerializedProperty property) - { - var idProperty = property.FindPropertyRelative("m_Id"); - idProperty.stringValue = Guid.NewGuid().ToString(); - } - public static void EnsureUniqueName(SerializedProperty arrayElement) { var arrayProperty = arrayElement.GetArrayPropertyFromElement(); @@ -517,6 +455,31 @@ public static string FindUniqueName(SerializedProperty arrayProperty, string bas }); } + public static void AssignUniqueIDs(SerializedProperty element) + { + AssignUniqueID(element); + foreach (var child in element.GetChildren()) + { + if (!child.isArray) + continue; + + var fieldType = child.GetFieldType(); + if (fieldType == typeof(InputBinding[]) || fieldType == typeof(InputAction[]) || + fieldType == typeof(InputActionMap)) + { + for (var i = 0; i < child.arraySize; ++i) + using (var childElement = child.GetArrayElementAtIndex(i)) + AssignUniqueIDs(childElement); + } + } + } + + private static void AssignUniqueID(SerializedProperty property) + { + var idProperty = property.FindPropertyRelative("m_Id"); + idProperty.stringValue = Guid.NewGuid().ToString(); + } + public static void RenameAction(SerializedProperty actionProperty, SerializedProperty actionMapProperty, string newName) { // Make sure name is unique. @@ -738,6 +701,29 @@ public static void RemoveUnusedBindingGroups(SerializedProperty binding, ReadOnl .Split(InputBinding.Separator) .Where(g => controlSchemes.Any(c => c.bindingGroup.Equals(g, StringComparison.InvariantCultureIgnoreCase)))); } + + #region Control Schemes + + public static void DeleteAllControlSchemes(SerializedObject asset) + { + var schemes = GetControlSchemesArray(asset); + while (schemes.arraySize > 0) + schemes.DeleteArrayElementAtIndex(0); + } + + public static int IndexOfControlScheme(SerializedProperty controlSchemeArray, string controlSchemeName) + { + var serializedControlScheme = controlSchemeArray.FirstOrDefault(sp => + sp.FindPropertyRelative(nameof(InputControlScheme.m_Name)).stringValue == controlSchemeName); + return serializedControlScheme?.GetIndexOfArrayElement() ?? -1; + } + + public static SerializedProperty GetControlSchemesArray(SerializedObject asset) + { + return asset.FindProperty(nameof(InputActionAsset.m_ControlSchemes)); + } + + #endregion // Control Schemes } } #endif // UNITY_EDITOR diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/Internal/SerializedPropertyLinqExtensions.cs b/Packages/com.unity.inputsystem/InputSystem/Editor/Internal/SerializedPropertyLinqExtensions.cs index 67698aafa3..6f97c120b9 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Editor/Internal/SerializedPropertyLinqExtensions.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/Internal/SerializedPropertyLinqExtensions.cs @@ -44,6 +44,23 @@ public static IEnumerable Where(this SerializedProperty prop } } + public static SerializedProperty FindLast(this SerializedProperty property, Func predicate) + { + Debug.Assert(predicate != null, "Missing predicate for FindLast function."); + Debug.Assert(property != null, "SerializedProperty missing for FindLast function."); + + if (property.isArray == false) + return null; + + for (int i = property.arraySize - 1; i >= 0; i--) + { + var element = property.GetArrayElementAtIndex(i); + if (predicate(element)) + return element; + } + return null; + } + public static SerializedProperty FirstOrDefault(this SerializedProperty property) { if (property == null) diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/ProjectWideActions/ProjectWideActionsAsset.cs b/Packages/com.unity.inputsystem/InputSystem/Editor/ProjectWideActions/ProjectWideActionsAsset.cs index 77a3614f0e..c654a08a40 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Editor/ProjectWideActions/ProjectWideActionsAsset.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/ProjectWideActions/ProjectWideActionsAsset.cs @@ -1,6 +1,7 @@ #if UNITY_EDITOR && UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS using System; +using System.Collections.Generic; using System.IO; using System.Linq; using UnityEditor; @@ -10,147 +11,199 @@ namespace UnityEngine.InputSystem.Editor { internal static class ProjectWideActionsAsset { - internal const string kDefaultAssetPath = "Packages/com.unity.inputsystem/InputSystem/Editor/ProjectWideActions/ProjectWideActionsTemplate.json"; - internal const string kAssetPath = "ProjectSettings/InputManager.asset"; - internal const string kAssetName = InputSystem.kProjectWideActionsAssetName; + private const string kDefaultAssetName = "InputSystem_Actions"; + private const string kDefaultAssetPath = "Assets/" + kDefaultAssetName + ".inputactions"; + private const string kDefaultTemplateAssetPath = "Packages/com.unity.inputsystem/InputSystem/Editor/ProjectWideActions/ProjectWideActionsTemplate.json"; - static string s_DefaultAssetPath = kDefaultAssetPath; - static string s_AssetPath = kAssetPath; - -#if UNITY_INCLUDE_TESTS - internal static void SetAssetPaths(string defaultAssetPath, string assetPath) + internal static class ProjectSettingsProjectWideActionsAssetConverter { - s_DefaultAssetPath = defaultAssetPath; - s_AssetPath = assetPath; - } + private const string kAssetPathInputManager = "ProjectSettings/InputManager.asset"; + private const string kAssetNameProjectWideInputActions = "ProjectWideInputActions"; - internal static void Reset() - { - s_DefaultAssetPath = kDefaultAssetPath; - s_AssetPath = kAssetPath; - } + class ProjectSettingsPostprocessor : AssetPostprocessor + { + private static bool migratedInputActionAssets = false; +#if UNITY_2021_2_OR_NEWER + private static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths, bool didDomainReload) +#else + private static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) #endif - - [InitializeOnLoadMethod] - internal static void InstallProjectWideActions() - { - GetOrCreate(); - } - - internal static InputActionAsset GetOrCreate() - { - var objects = AssetDatabase.LoadAllAssetsAtPath(s_AssetPath); - if (objects != null) - { - var inputActionsAsset = objects.FirstOrDefault(o => o != null && o.name == kAssetName) as InputActionAsset; - if (inputActionsAsset != null) - return inputActionsAsset; + { + if (!migratedInputActionAssets) + { + MoveInputManagerAssetActionsToProjectWideInputActionAsset(); + migratedInputActionAssets = true; + } + } } - return CreateNewActionAsset(); - } + private static void MoveInputManagerAssetActionsToProjectWideInputActionAsset() + { + var objects = AssetDatabase.LoadAllAssetsAtPath(EditorHelpers.GetPhysicalPath(kAssetPathInputManager)); + if (objects == null) + return; - internal static InputActionAsset CreateNewActionAsset() - { - var json = File.ReadAllText(Path.Combine(Environment.CurrentDirectory, s_DefaultAssetPath)); + var inputActionsAsset = objects.FirstOrDefault(o => o != null && o.name == kAssetNameProjectWideInputActions) as InputActionAsset; + if (inputActionsAsset != default) + { + // Found some actions in the InputManager.asset file + // + string path = ProjectWideActionsAsset.kDefaultAssetPath; - var asset = ScriptableObject.CreateInstance(); - asset.LoadFromJson(json); - asset.name = kAssetName; + if (File.Exists(EditorHelpers.GetPhysicalPath(path))) + { + // We already have a path containing inputactions, find a new unique filename + // + // eg Assets/InputSystem_Actions.inputactions -> + // Assets/InputSystem_Actions (1).inputactions -> + // Assets/InputSystem_Actions (2).inputactions ... + // + string[] files = Directory.GetFiles("Assets", "*.inputactions"); + List names = new List(); + for (int i = 0; i < files.Length; i++) + { + names.Add(System.IO.Path.GetFileNameWithoutExtension(files[i])); + } + string unique = ObjectNames.GetUniqueName(names.ToArray(), kDefaultAssetName); + path = "Assets/" + unique + ".inputactions"; + } - AssetDatabase.AddObjectToAsset(asset, s_AssetPath); + var json = inputActionsAsset.ToJson(); + InputActionAssetManager.SaveAsset(EditorHelpers.GetPhysicalPath(path), json); - // Make sure all the elements in the asset have GUIDs and that they are indeed unique. - var maps = asset.actionMaps; - foreach (var map in maps) - { - // Make sure action map has GUID. - if (string.IsNullOrEmpty(map.m_Id) || asset.actionMaps.Count(x => x.m_Id == map.m_Id) > 1) - map.GenerateId(); + Debug.Log($"Migrated Project-wide Input Actions from '{kAssetPathInputManager}' to '{path}' asset"); - // Make sure all actions have GUIDs. - foreach (var action in map.actions) - { - var actionId = action.m_Id; - if (string.IsNullOrEmpty(actionId) || asset.actionMaps.Sum(m => m.actions.Count(a => a.m_Id == actionId)) > 1) - action.GenerateId(); + // Update current project-wide settings if needed (don't replace if already set to something else) + // + if (InputSystem.actions == null || InputSystem.actions.name == kAssetNameProjectWideInputActions) + { + InputSystem.actions = (InputActionAsset)AssetDatabase.LoadAssetAtPath(path, typeof(InputActionAsset)); + Debug.Log($"Loaded Project-wide Input Actions from '{path}' asset"); + } } - // Make sure all bindings have GUIDs. - for (var i = 0; i < map.m_Bindings.LengthSafe(); ++i) + // Handle deleting all InputActionAssets as older 1.8.0 pre release could create more than one project wide input asset in the file + foreach (var obj in objects) { - var bindingId = map.m_Bindings[i].m_Id; - if (string.IsNullOrEmpty(bindingId) || asset.actionMaps.Sum(m => m.bindings.Count(b => b.m_Id == bindingId)) > 1) - map.m_Bindings[i].GenerateId(); + if (obj is InputActionReference) + { + var actionReference = obj as InputActionReference; + AssetDatabase.RemoveObjectFromAsset(obj); + Object.DestroyImmediate(actionReference); + } + else if (obj is InputActionAsset) + { + AssetDatabase.RemoveObjectFromAsset(obj); + } } + + AssetDatabase.SaveAssets(); } + } + + // Returns the default asset path for where to create project-wide actions asset. + internal static string defaultAssetPath => kDefaultAssetPath; - CreateInputActionReferences(asset); + // Returns the default template JSON content. + internal static string GetDefaultAssetJson() + { + return File.ReadAllText(EditorHelpers.GetPhysicalPath(kDefaultTemplateAssetPath)); + } + + // Creates an asset at the given path containing the default template JSON. + internal static InputActionAsset CreateDefaultAssetAtPath(string assetPath = kDefaultAssetPath) + { + return CreateAssetAtPathFromJson(assetPath, File.ReadAllText(EditorHelpers.GetPhysicalPath(kDefaultTemplateAssetPath))); + } - AssetDatabase.SaveAssets(); + // These may be moved out to internal types if decided to extend validation at a later point. - return asset; + internal interface IReportInputActionAssetValidationErrors + { + bool OnValidationError(InputAction action, string message); } - private static void CreateInputActionReferences(InputActionAsset asset) + private class DefaultInputActionAssetValidationReporter : IReportInputActionAssetValidationErrors { - var maps = asset.actionMaps; - foreach (var map in maps) + public bool OnValidationError(InputAction action, string message) { - foreach (var action in map.actions) - { - var actionReference = ScriptableObject.CreateInstance(); - actionReference.Set(action); - AssetDatabase.AddObjectToAsset(actionReference, asset); - } + Debug.LogWarning(message); + return true; } } + internal static bool Validate(InputActionAsset asset, IReportInputActionAssetValidationErrors reporter = null) + { +#if UNITY_2023_2_OR_NEWER + reporter ??= new DefaultInputActionAssetValidationReporter(); + CheckForDefaultUIActionMapChanges(asset, reporter); +#endif // UNITY_2023_2_OR_NEWER + return true; + } + + private static bool ReportError(IReportInputActionAssetValidationErrors reporter, InputAction action, string message) + { + return reporter.OnValidationError(action, message); + } + +#if UNITY_2023_2_OR_NEWER /// - /// Updates the input action references in the asset by updating names, removing dangling references - /// and adding new ones. + /// Checks if the default InputForUI UI action map has been modified or removed, to let the user know if their changes will + /// break the UI input at runtime, when using the UI Toolkit. /// - /// - internal static void UpdateInputActionReferences() + internal static bool CheckForDefaultUIActionMapChanges(InputActionAsset asset, IReportInputActionAssetValidationErrors reporter = null) { - var asset = GetOrCreate(); - var existingReferences = InputActionImporter.LoadInputActionReferencesFromAsset(asset).ToList(); + reporter ??= new DefaultInputActionAssetValidationReporter(); - // Check if referenced input action exists in the asset and remove the reference if it doesn't. - foreach (var actionReference in existingReferences) + var defaultUIActionMap = GetDefaultUIActionMap(); + var uiMapIndex = asset.actionMaps.IndexOf(x => x.name == "UI"); + + // "UI" action map has been removed or renamed. + if (uiMapIndex == -1) { - var action = asset.FindAction(actionReference.action.id); - if (action == null) - { - actionReference.Set(null); - AssetDatabase.RemoveObjectFromAsset(actionReference); - } + ReportError(reporter, null, + "The action map named 'UI' does not exist.\r\n " + + "This will break the UI input at runtime. Please revert the changes to have an action map named 'UI'."); + return false; } - - // Check if all actions have a reference - foreach (var action in asset) + var uiMap = asset.m_ActionMaps[uiMapIndex]; + foreach (var action in defaultUIActionMap.actions) { - var actionReference = existingReferences.FirstOrDefault(r => r.m_ActionId == action.id.ToString()); - // The input action doesn't have a reference, create a new one. - if (actionReference == null) - { - var actionReferenceNew = ScriptableObject.CreateInstance(); - actionReferenceNew.Set(action); - AssetDatabase.AddObjectToAsset(actionReferenceNew, asset); - } - else + // "UI" actions have been modified. + if (uiMap.FindAction(action.name) == null) { - // Update the name of the reference if it doesn't match the action name. - if (actionReference.name != InputActionReference.GetDisplayName(action)) - { - AssetDatabase.RemoveObjectFromAsset(actionReference); - actionReference.name = InputActionReference.GetDisplayName(action); - AssetDatabase.AddObjectToAsset(actionReference, asset); - } + var abort = !ReportError(reporter, action, + $"The UI action '{action.name}' name has been modified.\r\n" + + $"This will break the UI input at runtime. Please make sure the action name with '{action.name}' exists."); + if (abort) + return false; } + + // TODO Add additional validation here, e.g. check expected action type etc. this is currently missing. } + + return true; + } + +#endif // UNITY_2023_2_OR_NEWER + + // Returns the default UI action map as represented by the default template JSON. + private static InputActionMap GetDefaultUIActionMap() + { + var actionMaps = InputActionMap.FromJson(GetDefaultAssetJson()); + return actionMaps[actionMaps.IndexOf(x => x.name == "UI")]; + } + + // Creates an asset at the given path containing the given JSON content. + private static InputActionAsset CreateAssetAtPathFromJson(string assetPath, string json) + { + // Note that the extra work here is to override the JSON name from the source asset + var inputActionAsset = InputActionAsset.FromJson(json); + inputActionAsset.name = InputActionImporter.NameFromAssetPath(assetPath); + InputActionAssetManager.SaveAsset(assetPath, inputActionAsset.ToJson()); + return AssetDatabase.LoadAssetAtPath(assetPath); } } } -#endif +#endif // UNITY_EDITOR && UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/ProjectWideActions/ProjectWideActionsBuildProvider.cs b/Packages/com.unity.inputsystem/InputSystem/Editor/ProjectWideActions/ProjectWideActionsBuildProvider.cs new file mode 100644 index 0000000000..afdff6f134 --- /dev/null +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/ProjectWideActions/ProjectWideActionsBuildProvider.cs @@ -0,0 +1,74 @@ +#if UNITY_EDITOR && UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS +using System; +using System.Linq; +using UnityEditor; +using UnityEditor.Build; +using UnityEditor.Build.Reporting; +using UnityEngine.InputSystem.Utilities; + +namespace UnityEngine.InputSystem.Editor +{ + internal class ProjectWideActionsBuildProvider : IPreprocessBuildWithReport, IPostprocessBuildWithReport + { + private Object m_Asset; + public int callbackOrder => 0; + + // In the editor, we keep track of the appointed project-wide action asset through EditorBuildSettings. + internal const string EditorBuildSettingsActionsConfigKey = "com.unity.input.settings.actions"; + + /// + /// Holds an editor build setting for which InputActionAsset to be included as a preloaded asset in + /// player builds. + /// + internal static InputActionAsset actionsToIncludeInPlayerBuild + { + get + { + // Attempt to get any persisted configuration + EditorBuildSettings.TryGetConfigObject(EditorBuildSettingsActionsConfigKey, out InputActionAsset value); + return value; + } + set + { + // Get the current persisted configuration and remove tag when changed + if (EditorBuildSettings.TryGetConfigObject(EditorBuildSettingsActionsConfigKey, + out InputActionAsset current)) + { + current.m_IsProjectWide = false; + } + + // Get asset path (note that this will fail if this is an in-memory object) + var path = AssetDatabase.GetAssetPath(value); + if (string.IsNullOrEmpty(path)) + { + // Remove the object to not keep a broken reference + EditorBuildSettings.RemoveConfigObject(EditorBuildSettingsActionsConfigKey); + } + else + { + // Add configuration object as a persisted setting + value.m_IsProjectWide = true; + EditorBuildSettings.AddConfigObject(EditorBuildSettingsActionsConfigKey, value, true); + } + } + } + + public void OnPreprocessBuild(BuildReport report) + { + // Make sure flag is set to indicate project-wide in build + var actions = actionsToIncludeInPlayerBuild; + if (actions != null) + actions.m_IsProjectWide = true; + + // Add asset + m_Asset = BuildProviderHelpers.PreProcessSinglePreloadedAsset(actions); + } + + public void OnPostprocessBuild(BuildReport report) + { + BuildProviderHelpers.PostProcessSinglePreloadedAsset(ref m_Asset); + } + } +} + +#endif // UNITY_EDITOR && UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/ProjectWideActions/ProjectWideActionsBuildProvider.cs.meta b/Packages/com.unity.inputsystem/InputSystem/Editor/ProjectWideActions/ProjectWideActionsBuildProvider.cs.meta new file mode 100644 index 0000000000..6edd1dd07f --- /dev/null +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/ProjectWideActions/ProjectWideActionsBuildProvider.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 1cbae3eee4bd4f6f9b9ad85aab8174e4 +timeCreated: 1709540697 \ No newline at end of file diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/ProjectWideActions/ProjectWideActionsTemplate.json b/Packages/com.unity.inputsystem/InputSystem/Editor/ProjectWideActions/ProjectWideActionsTemplate.json index a0655634fd..7fd93a4d49 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Editor/ProjectWideActions/ProjectWideActionsTemplate.json +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/ProjectWideActions/ProjectWideActionsTemplate.json @@ -61,21 +61,21 @@ }, { "name": "Previous", - "type": "Value", + "type": "Button", "id": "2776c80d-3c14-4091-8c56-d04ced07a2b0", - "expectedControlType": "Axis", + "expectedControlType": "Button", "processors": "", "interactions": "", - "initialStateCheck": true + "initialStateCheck": false }, { "name": "Next", - "type": "Value", + "type": "Button", "id": "b7230bb6-fc9b-4f52-8b25-f5e19cb2c2ba", - "expectedControlType": "Axis", + "expectedControlType": "Button", "processors": "", "interactions": "", - "initialStateCheck": true + "initialStateCheck": false }, { "name": "Sprint", diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/PropertyDrawers/InputActionAssetDrawer.cs b/Packages/com.unity.inputsystem/InputSystem/Editor/PropertyDrawers/InputActionAssetDrawer.cs index a31d736f9a..779a5da2d3 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Editor/PropertyDrawers/InputActionAssetDrawer.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/PropertyDrawers/InputActionAssetDrawer.cs @@ -1,103 +1,28 @@ +// Note: If not UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS we do not use a custom property drawer and +// picker for InputActionAsset but rather rely on default (classic) object picker. #if UNITY_EDITOR && UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS - using UnityEditor; +using UnityEditor.Search; namespace UnityEngine.InputSystem.Editor { /// - /// Enum describing the asset option selected. - /// - enum AssetOptions - { - [InspectorName("Project-Wide Actions")] - ProjectWideActions, - ActionsAsset - } - - /// - /// Property drawer for . + /// Custom property drawer in order to use the "Advanced Picker" from UnityEditor.Search. /// - /// This property drawer allows for choosing the action asset field as either project-wide actions or - /// a user created actions asset [CustomPropertyDrawer(typeof(InputActionAsset))] - internal class InputActionAssetDrawer : PropertyDrawer + internal sealed class InputActionAssetDrawer : PropertyDrawer { - static readonly string[] k_ActionsTypeOptions = new[] { "Project-Wide Actions", "Actions Asset" }; - - public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + private readonly SearchContext m_Context = UnityEditor.Search.SearchService.CreateContext(new[] { - EditorGUI.BeginProperty(position, label, property); - - var isAssetProjectWideActions = IsAssetProjectWideActions(property); - var selectedAssetOptionIndex = isAssetProjectWideActions ? AssetOptions.ProjectWideActions : AssetOptions.ActionsAsset; + InputActionAssetSearchProviders.CreateInputActionAssetSearchProvider(), + InputActionAssetSearchProviders.CreateInputActionAssetSearchProviderForProjectWideActions(), + }, string.Empty, SearchConstants.PickerSearchFlags); - EditorGUILayout.BeginHorizontal(); - // Draw dropdown menu to select between using project-wide actions or an action asset - var selected = (AssetOptions)EditorGUILayout.EnumPopup(label, selectedAssetOptionIndex); - // Draw button to edit the asset - DoOpenAssetButtonUI(property, selected); - EditorGUILayout.EndHorizontal(); - // Update property in case there's a change in the dropdown popup - if (selectedAssetOptionIndex != selected) - { - UpdatePropertyWithSelectedOption(property, selected); - selectedAssetOptionIndex = selected; - } - - // Show relevant UI elements depending on the option selected - // In case project-wide actions are selected, the object picker is not shown. - if (selectedAssetOptionIndex == AssetOptions.ActionsAsset) - { - ++EditorGUI.indentLevel; - EditorGUILayout.PropertyField(property, new GUIContent("Actions Asset") , true); - --EditorGUI.indentLevel; - } - - EditorGUI.EndProperty(); - } - - static void DoOpenAssetButtonUI(SerializedProperty property, AssetOptions selected) - { - if (selected == AssetOptions.ProjectWideActions) - { - GUIContent buttonText = new GUIContent("Open"); - Vector2 buttonSize = GUI.skin.button.CalcSize(buttonText); - // Create a new Rect with the calculated size - // Rect buttonRect = new Rect(position.x, position.y, buttonSize.x, buttonSize.y); - if (GUILayout.Button(buttonText, GUILayout.Width(buttonSize.x))) - SettingsService.OpenProjectSettings(InputActionsEditorSettingsProvider.kSettingsPath); - } - } - - static void UpdatePropertyWithSelectedOption(SerializedProperty assetProperty, AssetOptions selected) - { - if (selected == AssetOptions.ProjectWideActions) - { - assetProperty.objectReferenceValue = ProjectWideActionsAsset.GetOrCreate(); - } - else - { - // Reset the actions asset to null if the first time user selects the "Actions Asset" option - assetProperty.objectReferenceValue = null; - } - - assetProperty.serializedObject.ApplyModifiedProperties(); - } - - static bool IsAssetProjectWideActions(SerializedProperty property) + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { - var isAssetProjectWideActions = false; - - // Check if the property InputActionAsset name is the same as project-wide actions to determine if - // project-wide actions are set - if (property.objectReferenceValue != null) - { - var asset = (InputActionAsset)property.objectReferenceValue; - isAssetProjectWideActions = asset?.name == ProjectWideActionsAsset.kAssetName; - } - - return isAssetProjectWideActions; + ObjectField.DoObjectField(position, property, typeof(InputActionAsset), label, + m_Context, SearchConstants.PickerViewFlags); } } } diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/PropertyDrawers/InputActionAssetSearchProvider.cs b/Packages/com.unity.inputsystem/InputSystem/Editor/PropertyDrawers/InputActionAssetSearchProvider.cs new file mode 100644 index 0000000000..1b0e638e10 --- /dev/null +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/PropertyDrawers/InputActionAssetSearchProvider.cs @@ -0,0 +1,123 @@ +#if UNITY_EDITOR && UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS +using System; +using System.Collections.Generic; +using UnityEditor; +using UnityEditor.Search; +using UnityEngine.Search; + +namespace UnityEngine.InputSystem.Editor +{ + internal static class InputActionAssetSearchProviders + { + const string k_AssetFolderSearchProviderId = "AssetsInputActionAssetSearchProvider"; + const string k_ProjectWideActionsSearchProviderId = "ProjectWideInputActionAssetSearchProvider"; + + const string k_ProjectWideAssetIdentificationString = " [Project Wide Input Actions]"; + + internal static SearchProvider CreateInputActionAssetSearchProvider() + { + return CreateInputActionAssetSearchProvider(k_AssetFolderSearchProviderId, + "Asset Input Action Assets", + (obj) => { return obj != null ? AssetDatabase.GetAssetPath(obj) : "Null"; }, + () => LoadInputActionAssetsFromAssetDatabase(skipProjectWide: true)); + } + + internal static SearchProvider CreateInputActionAssetSearchProviderForProjectWideActions() + { + return CreateInputActionAssetSearchProvider(k_ProjectWideActionsSearchProviderId, + "Project-Wide Input Action Asset", + (obj) => { return obj != null ? AssetDatabase.GetAssetPath(obj) : "Null"; }, + () => LoadInputActionReferencesFromAsset()); + } + + private static IEnumerable LoadInputActionReferencesFromAsset() + { + var asset = InputSystem.actions; + if (asset == null) + return Array.Empty(); + + return new List() { asset }; + } + + private static IEnumerable LoadInputActionAssetsFromAssetDatabase(bool skipProjectWide) + { + string[] searchFolders = new string[] { "Assets" }; + + var inputActionAssetGUIDs = AssetDatabase.FindAssets($"t:{typeof(InputActionAsset).Name}", searchFolders); + + var inputActionAssetList = new List(); + foreach (var guid in inputActionAssetGUIDs) + { + var assetPath = AssetDatabase.GUIDToAssetPath(guid); + var assetInputActionAsset = AssetDatabase.LoadAssetAtPath(assetPath); + + if (skipProjectWide) + { + if (assetInputActionAsset == InputSystem.actions) + continue; + } + + inputActionAssetList.Add(assetInputActionAsset); + } + + return inputActionAssetList; + } + + private static SearchProvider CreateInputActionAssetSearchProvider(string id, string displayName, + Func createItemFetchDescription, Func> fetchAssets) + { + // We assign description+label in FilteredSearch but also provide a fetchDescription+fetchLabel below. + // This is needed to support all zoom-modes for an unknown reason. + // Also, fetchLabel/fetchDescription and what is provided to CreateItem is playing different + // roles at different zoom levels. + var inputActionAssetIcon = InputActionAssetIconLoader.LoadAssetIcon(); + + return new SearchProvider(id, displayName) + { + priority = 25, + fetchDescription = FetchLabel, + fetchItems = (context, items, provider) => FilteredSearch(context, provider, FetchLabel, createItemFetchDescription, + fetchAssets), + fetchLabel = FetchLabel, + fetchPreview = (item, context, size, options) => inputActionAssetIcon, + fetchThumbnail = (item, context) => inputActionAssetIcon, + toObject = ToObject, + }; + } + + private static Object ToObject(SearchItem item, Type type) + { + return item.data as Object; + } + + // Custom search function with label matching filtering. + private static IEnumerable FilteredSearch(SearchContext context, SearchProvider provider, + Func fetchObjectLabel, Func createItemFetchDescription, Func> fetchAssets) + { + foreach (var asset in fetchAssets()) + { + var label = fetchObjectLabel(asset); + Texture2D thumbnail = null; // filled in later + + if (!label.Contains(context.searchText, System.StringComparison.InvariantCultureIgnoreCase)) + continue; // Ignore due to filtering + yield return provider.CreateItem(context, asset.GetInstanceID().ToString(), label, createItemFetchDescription(asset), + thumbnail, asset); + } + } + + // Note that this is overloaded to allow utilizing FetchLabel inside fetchItems to keep label formatting + // consistent between CreateItem and additional fetchLabel calls. + private static string FetchLabel(Object obj) + { + // if (obj == InputSystem.actions) return $"{obj.name}{k_ProjectWideAssetIdentificationString}"; + return obj.name; + } + + private static string FetchLabel(SearchItem item, SearchContext context) + { + return FetchLabel((item.data as Object) !); + } + } +} +#endif diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/UITKAssetEditor/Views/InputActionViewsControlsHolder.cs.meta b/Packages/com.unity.inputsystem/InputSystem/Editor/PropertyDrawers/InputActionAssetSearchProvider.cs.meta similarity index 83% rename from Packages/com.unity.inputsystem/InputSystem/Editor/UITKAssetEditor/Views/InputActionViewsControlsHolder.cs.meta rename to Packages/com.unity.inputsystem/InputSystem/Editor/PropertyDrawers/InputActionAssetSearchProvider.cs.meta index 21dfaffe06..fb9323b4c0 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Editor/UITKAssetEditor/Views/InputActionViewsControlsHolder.cs.meta +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/PropertyDrawers/InputActionAssetSearchProvider.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 08ab31769bde64d3cb067b9b9d166e64 +guid: 15ce6d517ffb81e44bc72545abacdc9c MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/PropertyDrawers/InputActionReferencePropertyDrawer.cs b/Packages/com.unity.inputsystem/InputSystem/Editor/PropertyDrawers/InputActionReferencePropertyDrawer.cs index 3186315b9f..398c99b14b 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Editor/PropertyDrawers/InputActionReferencePropertyDrawer.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/PropertyDrawers/InputActionReferencePropertyDrawer.cs @@ -1,7 +1,6 @@ // Note: If not UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS we do not use a custom property drawer and // picker for InputActionReferences but rather rely on default (classic) object picker. #if UNITY_EDITOR && UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS - using UnityEditor; using UnityEditor.Search; @@ -34,7 +33,7 @@ static void ValidatePropertyWithDanglingInputActionReferences(SerializedProperty if (property?.objectReferenceValue is InputActionReference reference) { // Check only if the reference is a project-wide action. - if (reference?.asset?.name == ProjectWideActionsAsset.kAssetName) + if (reference?.asset == InputSystem.actions) { var action = reference?.asset?.FindAction(reference.action.id); if (action is null) diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/PropertyDrawers/InputActionReferenceSearchProviders.cs b/Packages/com.unity.inputsystem/InputSystem/Editor/PropertyDrawers/InputActionReferenceSearchProviders.cs index 8830de0a41..e73ad93af4 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Editor/PropertyDrawers/InputActionReferenceSearchProviders.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/PropertyDrawers/InputActionReferenceSearchProviders.cs @@ -33,7 +33,7 @@ internal static SearchProvider CreateInputActionReferenceSearchProviderForAssets "Asset Input Actions", // Show the asset path in the description. (obj) => AssetDatabase.GetAssetPath((obj as InputActionReference).asset), - () => InputActionImporter.LoadInputActionReferencesFromAssetDatabase()); + () => InputActionImporter.LoadInputActionReferencesFromAssetDatabase(skipProjectWide: true)); } // Search provider for InputActionReferences for project-wide actions @@ -42,7 +42,14 @@ internal static SearchProvider CreateInputActionReferenceSearchProviderForProjec return CreateInputActionReferenceSearchProvider(k_ProjectWideActionsSearchProviderId, "Project-Wide Input Actions", (obj) => "(Project-Wide Input Actions)", - () => InputActionImporter.LoadInputActionReferencesFromAsset(ProjectWideActionsAsset.GetOrCreate())); + () => + { + var asset = InputSystem.actions; + if (asset == null) + return Array.Empty(); + var assetPath = AssetDatabase.GetAssetPath(asset); + return InputActionImporter.LoadInputActionReferencesFromAsset(assetPath); + }); } private static SearchProvider CreateInputActionReferenceSearchProvider(string id, string displayName, diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/Settings/InputSettingsBuildProvider.cs b/Packages/com.unity.inputsystem/InputSystem/Editor/Settings/InputSettingsBuildProvider.cs index 539f70f28a..5844221112 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Editor/Settings/InputSettingsBuildProvider.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/Settings/InputSettingsBuildProvider.cs @@ -1,48 +1,23 @@ #if UNITY_EDITOR -using System.Linq; -using UnityEditor; using UnityEditor.Build; using UnityEditor.Build.Reporting; -using UnityEngine.InputSystem.Utilities; namespace UnityEngine.InputSystem.Editor { internal class InputSettingsBuildProvider : IPreprocessBuildWithReport, IPostprocessBuildWithReport { - InputActionAsset m_ProjectWideActions; - Object[] m_OriginalPreloadedAssets; + private Object m_Asset; + public int callbackOrder => 0; public void OnPreprocessBuild(BuildReport report) { - m_OriginalPreloadedAssets = PlayerSettings.GetPreloadedAssets(); - var preloadedAssets = PlayerSettings.GetPreloadedAssets(); - -#if UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS - m_ProjectWideActions = Editor.ProjectWideActionsAsset.GetOrCreate(); - if (m_ProjectWideActions != null) - { - if (!preloadedAssets.Contains(m_ProjectWideActions)) - { - ArrayHelpers.Append(ref preloadedAssets, m_ProjectWideActions); - PlayerSettings.SetPreloadedAssets(preloadedAssets); - } - } -#endif - if (InputSystem.settings == null) - return; - - if (!preloadedAssets.Contains(InputSystem.settings)) - { - ArrayHelpers.Append(ref preloadedAssets, InputSystem.settings); - PlayerSettings.SetPreloadedAssets(preloadedAssets); - } + m_Asset = BuildProviderHelpers.PreProcessSinglePreloadedAsset(InputSystem.settings); } public void OnPostprocessBuild(BuildReport report) { - // Revert back to original state - PlayerSettings.SetPreloadedAssets(m_OriginalPreloadedAssets); + BuildProviderHelpers.PostProcessSinglePreloadedAsset(ref m_Asset); } } } diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/Settings/InputSettingsProvider.cs b/Packages/com.unity.inputsystem/InputSystem/Editor/Settings/InputSettingsProvider.cs index 3270693fed..a700ed025e 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Editor/Settings/InputSettingsProvider.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/Settings/InputSettingsProvider.cs @@ -1,6 +1,5 @@ #if UNITY_EDITOR using System; -using System.IO; using System.Linq; using UnityEditor; using UnityEditorInternal; @@ -21,7 +20,6 @@ internal static class InputSettingsPath internal class InputSettingsProvider : SettingsProvider, IDisposable { public const string kEditorBuildSettingsConfigKey = "com.unity.input.settings"; - public const string kEditorBuildSettingsActionsConfigKey = "com.unity.input.settings.actions"; #if UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS // When Project Wide Actions are enabled we place this as a child node to main settings node. @@ -191,41 +189,19 @@ private static void ShowPlatformSettings() private static void CreateNewSettingsAsset(string relativePath) { - // Create settings file. - var settings = ScriptableObject.CreateInstance(); - AssetDatabase.CreateAsset(settings, relativePath); - EditorGUIUtility.PingObject(settings); - // Install the settings. This will lead to an InputSystem.onSettingsChange event which in turn + // Create and install the settings. This will lead to an InputSystem.onSettingsChange event which in turn // will cause us to re-initialize. - InputSystem.settings = settings; + InputSystem.settings = InputAssetEditorUtils.CreateAsset(ScriptableObject.CreateInstance(), relativePath); } private static void CreateNewSettingsAsset() { - // Query for file name. - var projectName = PlayerSettings.productName; - var path = EditorUtility.SaveFilePanel("Create Input Settings File", "Assets", - projectName + ".inputsettings", "asset"); - if (string.IsNullOrEmpty(path)) - return; - - // Make sure the path is in the Assets/ folder. - path = path.Replace("\\", "/"); // Make sure we only get '/' separators. - var dataPath = Application.dataPath + "/"; - if (!path.StartsWith(dataPath, StringComparison.CurrentCultureIgnoreCase)) - { - Debug.LogError($"Input settings must be stored in Assets folder of the project (got: '{path}')"); - return; - } - - // Make sure it ends with .asset. - var extension = Path.GetExtension(path); - if (string.Compare(extension, ".asset", StringComparison.InvariantCultureIgnoreCase) != 0) - path += ".asset"; - - // Create settings file. - var relativePath = "Assets/" + path.Substring(dataPath.Length); - CreateNewSettingsAsset(relativePath); + var result = InputAssetEditorUtils.PromptUserForAsset( + friendlyName: "Input Settings", + suggestedAssetFilePathWithoutExtension: InputAssetEditorUtils.MakeProjectFileName("inputsettings"), + assetFileExtension: "asset"); + if (result.result == InputAssetEditorUtils.DialogResult.Valid) + CreateNewSettingsAsset(result.relativePath); } private void InitializeWithCurrentSettingsIfNecessary() @@ -487,24 +463,20 @@ internal class InputSettingsEditor : UnityEditor.Editor { public override void OnInspectorGUI() { - GUILayout.Space(10); + EditorGUILayout.Space(); + if (GUILayout.Button("Open Input Settings Window", GUILayout.Height(30))) InputSettingsProvider.Open(); - GUILayout.Space(10); - if (InputSystem.settings == target) - EditorGUILayout.HelpBox("This asset contains the currently active settings for the Input System.", MessageType.Info); - else - { - string currentlyActiveAssetsPath = null; - if (InputSystem.settings != null) - currentlyActiveAssetsPath = AssetDatabase.GetAssetPath(InputSystem.settings); - if (!string.IsNullOrEmpty(currentlyActiveAssetsPath)) - currentlyActiveAssetsPath = $"The currently active settings are stored in {currentlyActiveAssetsPath}. "; - EditorGUILayout.HelpBox($"Note that this asset does not contain the currently active settings for the Input System. {currentlyActiveAssetsPath??""}Click \"Make Active\" below to make {target.name} the active one.", MessageType.Warning); - if (GUILayout.Button($"Make active", EditorStyles.miniButton)) - InputSystem.settings = (InputSettings)target; - } + EditorGUILayout.Space(); + + InputAssetEditorUtils.DrawMakeActiveGui(InputSystem.settings, target as InputSettings, + target.name, "settings", (value) => InputSystem.settings = value); + } + + protected override bool ShouldHideOpenButton() + { + return true; } } } diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/UITKAssetEditor/Commands/Commands.cs b/Packages/com.unity.inputsystem/InputSystem/Editor/UITKAssetEditor/Commands/Commands.cs index 0173727209..e2a9cfcd06 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Editor/UITKAssetEditor/Commands/Commands.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/UITKAssetEditor/Commands/Commands.cs @@ -1,6 +1,7 @@ #if UNITY_EDITOR && UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS using System; using System.Collections.Generic; +using System.IO; using System.Linq; using UnityEditor; using UnityEngine.InputSystem.Editor.Lists; @@ -17,6 +18,11 @@ public static Command SelectAction(string actionName) return (in InputActionsEditorState state) => state.SelectAction(actionName); } + public static Command SelectAction(int index) + { + return (in InputActionsEditorState state) => state.SelectAction(index); + } + public static Command SelectActionMap(string actionMapName) { return (in InputActionsEditorState state) => state.SelectActionMap(actionMapName); @@ -89,14 +95,188 @@ public static Command DeleteActionMap(int actionMapIndex) { var actionMap = Selectors.GetActionMapAtIndex(state, actionMapIndex)?.wrappedProperty; var actionMapID = InputActionSerializationHelpers.GetId(actionMap); + var isCut = state.IsActionMapCut(actionMapIndex); InputActionSerializationHelpers.DeleteActionMap(state.serializedObject, actionMapID); state.serializedObject.ApplyModifiedProperties(); if (state.selectedActionMapIndex == actionMapIndex) - return SelectPrevActionMap(state); + return isCut ? SelectPrevActionMap(state).ClearCutElements() : SelectPrevActionMap(state); + if (isCut) + return state.SelectActionMap(state.selectedActionMapIndex > actionMapIndex ? state.selectedActionMapIndex - 1 : state.selectedActionMapIndex).ClearCutElements(); return state.SelectActionMap(state.selectedActionMapIndex > actionMapIndex ? state.selectedActionMapIndex - 1 : state.selectedActionMapIndex); }; } + public static Command CopyActionMapSelection() + { + return (in InputActionsEditorState state) => + { + CopyPasteHelper.CopyActionMap(state); + return state.ClearCutElements(); + }; + } + + public static Command CutActionMapSelection() + { + return (in InputActionsEditorState state) => + { + CopyPasteHelper.CutActionMap(state); + return state.CutActionMaps(); + }; + } + + public static Command CopyActionBindingSelection() + { + return (in InputActionsEditorState state) => + { + CopyPasteHelper.Copy(state); + return state.ClearCutElements(); + }; + } + + public static Command CutActionsOrBindings() + { + return (in InputActionsEditorState state) => + { + CopyPasteHelper.Cut(state); + return state.CutActionOrBinding(); + }; + } + + public static Command PasteActionMaps(IReadOnlyList pasteListeners) + { + return (in InputActionsEditorState state) => + { + var newIndex = -99; + if (state.hasCutElements) + newIndex = CopyPasteHelper.DeleteCutElements(state); + else + { + foreach (var pasteListener in pasteListeners) + pasteListener.OnPaste(state); + } + var lastPastedElement = CopyPasteHelper.PasteActionMapsFromClipboard(state.With(selectedActionMapIndex: newIndex >= -1 ? newIndex : state.selectedActionMapIndex)); + if (lastPastedElement != null) + { + state.serializedObject.ApplyModifiedProperties(); + return state.With(selectedActionMapIndex: lastPastedElement.GetIndexOfArrayElement()).ClearCutElements(); + } + return state.ClearCutElements(); + }; + } + + public static Command DeleteCutElements() + { + return (in InputActionsEditorState state) => + { + if (!state.hasCutElements) + return state; + CopyPasteHelper.DeleteCutElements(state); + state.serializedObject.ApplyModifiedProperties(); + return state.ClearCutElements(); + }; + } + + public static Command PasteActionIntoActionMap(int actionMapIndex) + { + return (in InputActionsEditorState state) => + { + CopyPasteHelper.Copy(state); + var action = Selectors.GetSelectedAction(state); + var actionMap = Selectors.GetActionMapForAction(state, action?.id); + var isCut = action.HasValue && state.IsActionCut(actionMap.GetIndexOfArrayElement(), + action.Value.wrappedProperty.GetIndexOfArrayElement()); + InputActionSerializationHelpers.DeleteActionAndBindings(actionMap, InputActionSerializationHelpers.GetId(action?.wrappedProperty)); + var lastPastedElement = CopyPasteHelper.PasteActionsOrBindingsFromClipboard(state, true, actionMapIndex); + if (lastPastedElement != null) + state.serializedObject.ApplyModifiedProperties(); + EditorHelpers.SetSystemCopyBufferContents(string.Empty); + if (isCut) + return state.ClearCutElements(); + return state; + }; + } + + public static Command PasteActionFromActionMap(List pasteListeners) + { + return (in InputActionsEditorState state) => + { + var newIndex = -1; + if (state.hasCutElements) + newIndex = CopyPasteHelper.DeleteCutElements(state); + else + { + foreach (var pasteListener in pasteListeners) + pasteListener.OnPaste(state); + } + var lastPastedElement = CopyPasteHelper.PasteActionsOrBindingsFromClipboard(state.With(selectedActionIndex: newIndex >= 0 ? newIndex : state.selectedActionIndex), true); + if (lastPastedElement != null) + { + state.serializedObject.ApplyModifiedProperties(); + return state.With(selectedActionIndex: lastPastedElement.GetIndexOfArrayElement(), selectionType: SelectionType.Action).ClearCutElements(); + } + return state.ClearCutElements(); + }; + } + + public static Command PasteActionsOrBindings(List pasteListeners) + { + return (in InputActionsEditorState state) => + { + var typeOfCopiedData = CopyPasteHelper.GetCopiedClipboardType(); + SerializedInputAction? relatedAction = null; + if (state.selectionType == SelectionType.Binding) + relatedAction = Selectors.GetRelatedInputAction(state); + + var newIndex = -1; + if (state.hasCutElements) + newIndex = CopyPasteHelper.DeleteCutElements(state); + else + { + foreach (var pasteListener in pasteListeners) + pasteListener.OnPaste(state); + } + SerializedProperty lastPastedElement = null; + if (state.selectionType == SelectionType.Action) + { + var actionMap = Selectors.GetSelectedActionMap(state)?.wrappedProperty; + var actions = Selectors.GetActionCount(actionMap); + if (actions.HasValue && actions.Value > 0) + lastPastedElement = CopyPasteHelper.PasteActionsOrBindingsFromClipboard( + state.With(selectedActionIndex: newIndex >= 0 ? newIndex : state.selectedActionIndex), + typeOfCopiedData == typeof(InputBinding)); + else + { + lastPastedElement = + CopyPasteHelper.PasteActionsOrBindingsFromClipboard( + state.With(selectedActionMapIndex: actionMap.GetIndexOfArrayElement()), addLast: true); + } + } + else if (state.selectionType == SelectionType.Binding) + { + if (relatedAction != null) + { + var bindings = Selectors.GetBindingsForAction(relatedAction.Value.name, state); + if (bindings.Count == 0) //add cutted binding into action instead if there are no bindings left for the action + lastPastedElement = CopyPasteHelper.PasteActionsOrBindingsFromClipboard(state.With(selectedActionIndex: relatedAction.Value.wrappedProperty.GetIndexOfArrayElement(), selectionType: SelectionType.Action)); + else + lastPastedElement = CopyPasteHelper.PasteActionsOrBindingsFromClipboard(state.With(selectedBindingIndex: newIndex >= 0 ? newIndex : state.selectedBindingIndex)); + + lastPastedElement.FindPropertyRelative("m_Action").stringValue = relatedAction.Value.name; + } + } + + if (lastPastedElement != null) + { + state.serializedObject.ApplyModifiedProperties(); + if (typeOfCopiedData == typeof(InputAction)) + return state.With(selectedActionIndex: lastPastedElement.GetIndexOfArrayElement()).ClearCutElements(); + if (typeOfCopiedData == typeof(InputBinding)) + return state.With(selectedBindingIndex: lastPastedElement.GetIndexOfArrayElement()).ClearCutElements(); + } + return state.ClearCutElements(); + }; + } + public static Command DuplicateActionMap(int actionMapIndex) { return (in InputActionsEditorState state) => @@ -104,7 +284,7 @@ public static Command DuplicateActionMap(int actionMapIndex) var actionMapArray = state.serializedObject.FindProperty(nameof(InputActionAsset.m_ActionMaps)); var actionMap = Selectors.GetActionMapAtIndex(state, actionMapIndex)?.wrappedProperty; var name = actionMap?.FindPropertyRelative(nameof(InputAction.m_Name)).stringValue; - var newMap = InputActionSerializationHelpers.DuplicateElement(actionMapArray, actionMap, name, actionMap.GetIndexOfArrayElement() + 1); + var newMap = CopyPasteHelper.DuplicateElement(actionMapArray, actionMap, name, actionMap.GetIndexOfArrayElement() + 1); state.serializedObject.ApplyModifiedProperties(); return state.SelectActionMap(newMap.FindPropertyRelative(nameof(InputAction.m_Name)).stringValue); }; @@ -115,10 +295,9 @@ public static Command DuplicateAction() return (in InputActionsEditorState state) => { var action = Selectors.GetSelectedAction(state)?.wrappedProperty; - var actionName = action?.FindPropertyRelative(nameof(InputAction.m_Name)).stringValue; var actionMap = Selectors.GetActionMapAtIndex(state, state.selectedActionMapIndex)?.wrappedProperty; var actionArray = actionMap?.FindPropertyRelative(nameof(InputActionMap.m_Actions)); - InputActionSerializationHelpers.DuplicateAction(actionMap, actionArray, action, actionName); + CopyPasteHelper.DuplicateAction(actionArray, action, actionMap, state); state.serializedObject.ApplyModifiedProperties(); return state.SelectAction(state.selectedActionIndex + 1); }; @@ -132,7 +311,7 @@ public static Command DuplicateBinding() var actionName = binding?.FindPropertyRelative("m_Action").stringValue; var actionMap = Selectors.GetActionMapAtIndex(state, state.selectedActionMapIndex)?.wrappedProperty; var bindingsArray = actionMap?.FindPropertyRelative(nameof(InputActionMap.m_Bindings)); - var newIndex = InputActionSerializationHelpers.DuplicateBinding(bindingsArray, binding, actionName, binding.GetIndexOfArrayElement() + 1); + var newIndex = CopyPasteHelper.DuplicateBinding(bindingsArray, binding, actionName, binding.GetIndexOfArrayElement() + 1); state.serializedObject.ApplyModifiedProperties(); return state.SelectBinding(newIndex); }; @@ -141,68 +320,155 @@ public static Command DuplicateBinding() private static InputActionsEditorState SelectPrevActionMap(InputActionsEditorState state) { var count = Selectors.GetActionMapCount(state); - int index = 0; + var index = 0; if (count != null && count.Value > 0) index = Math.Max(state.selectedActionMapIndex - 1, 0); return state.SelectActionMap(index); } - public static Command DeleteAction(int actionMapIndex, string actionName) + public static Command ReorderActionMap(int oldIndex, int newIndex) { return (in InputActionsEditorState state) => { - var actionMap = Selectors.GetActionMapAtIndex(state, actionMapIndex)?.wrappedProperty; - var action = Selectors.GetActionInMap(state, actionMapIndex, actionName).wrappedProperty; - var actionIndex = action.GetIndexOfArrayElement(); - var actionID = InputActionSerializationHelpers.GetId(action); - InputActionSerializationHelpers.DeleteActionAndBindings(actionMap, actionID); + InputActionSerializationHelpers.MoveActionMap(state.serializedObject, oldIndex, newIndex); state.serializedObject.ApplyModifiedProperties(); - if (state.selectedActionIndex >= actionIndex) - return SelectPrevAction(state, actionMap); - return state.SelectAction(state.selectedActionIndex); + return state.SelectActionMap(newIndex); }; } - private static InputActionsEditorState SelectPrevAction(InputActionsEditorState state, SerializedProperty actionMap) + public static Command MoveAction(int oldIndex, int newIndex) { - var count = Selectors.GetActionCount(actionMap); - int index = -1; - if (count != null && count.Value > 0) - index = Math.Max(state.selectedActionIndex - 1, 0); - return state.SelectAction(index); + return (in InputActionsEditorState state) => + { + var actionMap = Selectors.GetSelectedActionMap(state)?.wrappedProperty; + InputActionSerializationHelpers.MoveAction(actionMap, oldIndex, newIndex); + state.serializedObject.ApplyModifiedProperties(); + return state.SelectAction(newIndex); + }; } - public static Command DeleteBinding(int actionMapIndex, int bindingIndex) + public static Command MoveBinding(int oldIndex, int actionIndex, int childIndex) { return (in InputActionsEditorState state) => { - var actionMap = Selectors.GetActionMapAtIndex(state, actionMapIndex)?.wrappedProperty; - var binding = Selectors.GetCompositeOrBindingInMap(actionMap, bindingIndex).wrappedProperty; - InputActionSerializationHelpers.DeleteBinding(binding, actionMap); + var newBindingIndex = MoveBindingOrComposite(state, oldIndex, actionIndex, childIndex); state.serializedObject.ApplyModifiedProperties(); - if (state.selectedBindingIndex >= bindingIndex) - return SelectPrevBinding(state, actionMap); - return state.SelectBinding(state.selectedBindingIndex); + return state.SelectBinding(newBindingIndex); }; } - private static InputActionsEditorState SelectPrevBinding(InputActionsEditorState state, SerializedProperty actionMap) + public static Command MoveComposite(int oldIndex, int actionIndex, int childIndex) { - var count = Selectors.GetBindingCount(actionMap); - var index = -1; - if (count != null && count.Value > 0) - index = Math.Max(state.selectedBindingIndex - 1, 0); - return state.SelectBinding(index); + return (in InputActionsEditorState state) => + { + var actionMap = Selectors.GetSelectedActionMap(state)?.wrappedProperty; + var compositeBindings = CopyPasteHelper.GetBindingsForComposite(actionMap?.FindPropertyRelative(nameof(InputActionMap.m_Bindings)), oldIndex); + //move the composite element + var newBindingIndex = MoveBindingOrComposite(state, oldIndex, actionIndex, childIndex); + var actionTo = Selectors.GetActionForIndex(actionMap, actionIndex).FindPropertyRelative(nameof(InputAction.m_Name)).stringValue; + var toIndex = newBindingIndex; + foreach (var compositePart in compositeBindings) + { + // the index of the composite part stays the same if composite was moved down as previous elements are shifted down (the index seems to update async so it's safer to use the oldIndex) + // if the composite was moved up, the index of the composite part is not changing so we are safe to use it + var from = oldIndex < newBindingIndex ? oldIndex : compositePart.GetIndexOfArrayElement(); + // if added below the old position the array changes as composite parts are added on top (increase the index) + // if added above the oldIndex, the index does not change + var to = oldIndex < newBindingIndex ? newBindingIndex : ++toIndex; + InputActionSerializationHelpers.MoveBinding(actionMap, from, to); + Selectors.GetCompositeOrBindingInMap(actionMap, to).wrappedProperty.FindPropertyRelative("m_Action").stringValue = actionTo; + } + state.serializedObject.ApplyModifiedProperties(); + return state.SelectBinding(newBindingIndex); + }; } - public static Command ExpandCompositeBinding(SerializedInputBinding binding) + private static int MoveBindingOrComposite(InputActionsEditorState state, int oldIndex, int actionIndex, int childIndex) { - return (in InputActionsEditorState state) => state.ExpandCompositeBinding(binding); + var actionMap = Selectors.GetSelectedActionMap(state)?.wrappedProperty; + var bindingsForAction = Selectors.GetBindingsForAction(state, actionMap, actionIndex); + var allBindings = actionMap?.FindPropertyRelative(nameof(InputActionMap.m_Bindings)); + var actionTo = Selectors.GetActionForIndex(actionMap, actionIndex).FindPropertyRelative(nameof(InputAction.m_Name)).stringValue; + var actionFrom = Selectors.GetCompositeOrBindingInMap(actionMap, oldIndex).wrappedProperty.FindPropertyRelative("m_Action"); + int newBindingIndex; + if (bindingsForAction.Count == 0) //if there are no bindings for an action retrieve the first binding index of a binding before (iterate previous actions) + newBindingIndex = Selectors.GetBindingIndexBeforeAction(allBindings, actionIndex, allBindings); + else + { + var toSkip = GetNumberOfCompositePartItemsToSkip(bindingsForAction, childIndex, oldIndex); //skip composite parts if there are - avoid moving into a composite + newBindingIndex = bindingsForAction[0].GetIndexOfArrayElement() + Math.Clamp(childIndex + toSkip, 0, bindingsForAction.Count); + newBindingIndex -= newBindingIndex > oldIndex && !actionTo.Equals(actionFrom.stringValue) ? 1 : 0; // reduce index by one in case the moved binding will be shifted underneath to another action + } + + actionFrom.stringValue = actionTo; + InputActionSerializationHelpers.MoveBinding(actionMap, oldIndex, newBindingIndex); + return newBindingIndex; } - public static Command CollapseCompositeBinding(SerializedInputBinding binding) + private static int GetNumberOfCompositePartItemsToSkip(List bindings, int childIndex, int oldIndex) { - return (in InputActionsEditorState state) => state.CollapseCompositeBinding(binding); + var toSkip = 0; + var normalBindings = 0; + foreach (var binding in bindings) + { + if (binding.GetIndexOfArrayElement() == oldIndex) + continue; + if (normalBindings > childIndex) + break; + if (binding.FindPropertyRelative(nameof(InputBinding.m_Flags)).intValue == + (int)InputBinding.Flags.PartOfComposite) + toSkip++; + else + normalBindings++; + } + return toSkip; + } + + public static Command MovePartOfComposite(int oldIndex, int newIndex, int compositeIndex) + { + return (in InputActionsEditorState state) => + { + var actionMap = Selectors.GetSelectedActionMap(state)?.wrappedProperty; + var actionTo = actionMap?.FindPropertyRelative(nameof(InputActionMap.m_Bindings)).GetArrayElementAtIndex(compositeIndex).FindPropertyRelative("m_Action").stringValue; + InputActionSerializationHelpers.MoveBinding(actionMap, oldIndex, newIndex); + Selectors.GetCompositeOrBindingInMap(actionMap, newIndex).wrappedProperty.FindPropertyRelative("m_Action").stringValue = actionTo; + state.serializedObject.ApplyModifiedProperties(); + return state.SelectBinding(newIndex); + }; + } + + public static Command DeleteAction(int actionMapIndex, string actionName) + { + return (in InputActionsEditorState state) => + { + var actionMap = Selectors.GetActionMapAtIndex(state, actionMapIndex)?.wrappedProperty; + var action = Selectors.GetActionInMap(state, actionMapIndex, actionName).wrappedProperty; + var actionIndex = action.GetIndexOfArrayElement(); + var actionID = InputActionSerializationHelpers.GetId(action); + var isCut = state.IsActionCut(actionMapIndex, actionIndex); + InputActionSerializationHelpers.DeleteActionAndBindings(actionMap, actionID); + state.serializedObject.ApplyModifiedProperties(); + + if (isCut) + return state.With(selectedActionIndex: -1, selectionType: SelectionType.Action).ClearCutElements(); + return state.With(selectedActionIndex: -1, selectionType: SelectionType.Action); // ActionsTreeView will dispatch a separate command to select the previous Action + }; + } + + public static Command DeleteBinding(int actionMapIndex, int bindingIndex) + { + return (in InputActionsEditorState state) => + { + var actionMap = Selectors.GetActionMapAtIndex(state, actionMapIndex)?.wrappedProperty; + var binding = Selectors.GetCompositeOrBindingInMap(actionMap, bindingIndex).wrappedProperty; + var isCut = state.IsBindingCut(actionMapIndex, bindingIndex); + InputActionSerializationHelpers.DeleteBinding(binding, actionMap); + state.serializedObject.ApplyModifiedProperties(); + + if (isCut) + return state.With(selectedBindingIndex: -1, selectionType: SelectionType.Binding).ClearCutElements(); + return state.With(selectedBindingIndex: -1, selectionType: SelectionType.Binding); // ActionsTreeView will dispatch a separate command to select the previous Binding + }; } public static Command SelectBinding(int bindingIndex) @@ -245,7 +511,7 @@ public static Command SetCompositeBindingPartName(SerializedInputBinding binding { return (in InputActionsEditorState state) => { - InputActionSerializationHelpers.ChangeBinding(bindingProperty.wrappedProperty, partName); + InputActionSerializationHelpers.SetBindingPartName(bindingProperty.wrappedProperty, partName); state.serializedObject.ApplyModifiedProperties(); return state; }; @@ -306,7 +572,9 @@ public static Command SaveAsset(Action postSaveAction) { return (in InputActionsEditorState state) => { - InputActionsEditorWindowUtils.SaveAsset(state.serializedObject); + // TODO This needs to callback to owning editor to save or have asset GUID + // TODO It makes more sense to call back to editor since editor owns target object? + //InputActionAssetManager.SaveAsset(state.serializedObject.targetObject as InputActionAsset); postSaveAction?.Invoke(); return state; }; @@ -321,7 +589,7 @@ public static Command ToggleAutoSave(bool newValue, Action postSaveAction) // If it changed from disabled to enabled, perform an initial save. if (newValue) { - InputActionsEditorWindowUtils.SaveAsset(state.serializedObject); + //InputActionAssetManager.SaveAsset(state.serializedObject.targetObject as InputActionAsset); postSaveAction?.Invoke(); } @@ -367,13 +635,36 @@ public static Command ChangeCompositeName(int actionMapIndex, int bindingIndex, }; } - public static Command ResetGlobalInputAsset(Action postResetAction) + // Removes all action maps and their content from the associated serialized InputActionAsset. + public static Command ClearActionMaps() { return (in InputActionsEditorState state) => { - var asset = ProjectWideActionsAsset.CreateNewActionAsset(); - postResetAction?.Invoke(asset); - return state; + InputActionSerializationHelpers.DeleteAllActionMaps(state.serializedObject); + state.serializedObject.ApplyModifiedProperties(); + return state.ClearCutElements(); + }; + } + + // Replaces all action maps of the associated serialized InputActionAsset with the action maps contained in + // the given source asset. + public static Command ReplaceActionMaps(string inputActionAssetJsonContent) + { + return (in InputActionsEditorState state) => + { + // First delete all existing data + InputActionSerializationHelpers.DeleteAllActionMaps(state.serializedObject); + InputActionSerializationHelpers.DeleteAllControlSchemes(state.serializedObject); + + // Create new data based on source + var temp = InputActionAsset.FromJson(inputActionAssetJsonContent); + using (var tmp = new SerializedObject(temp)) + { + InputActionSerializationHelpers.AddControlSchemes(state.serializedObject, tmp); + InputActionSerializationHelpers.AddActionMaps(state.serializedObject, tmp); + } + state.serializedObject.ApplyModifiedProperties(); + return state.ClearCutElements(); }; } } diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/UITKAssetEditor/Commands/ControlSchemeCommands.cs b/Packages/com.unity.inputsystem/InputSystem/Editor/UITKAssetEditor/Commands/ControlSchemeCommands.cs index 4d7e87f5c1..2db9ead78c 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Editor/UITKAssetEditor/Commands/ControlSchemeCommands.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/UITKAssetEditor/Commands/ControlSchemeCommands.cs @@ -28,8 +28,13 @@ public static Command RemoveDeviceRequirement(int selectedDeviceIndex) { return (in InputActionsEditorState state) => { + var newDeviceIndex = + Mathf.Clamp( + selectedDeviceIndex <= state.selectedDeviceRequirementIndex + ? state.selectedDeviceRequirementIndex - 1 + : state.selectedDeviceRequirementIndex, -1, state.selectedDeviceRequirementIndex); return state.With(selectedControlScheme: new InputControlScheme(state.selectedControlScheme.name, - state.selectedControlScheme.deviceRequirements.Where((r, i) => i != selectedDeviceIndex))); + state.selectedControlScheme.deviceRequirements.Where((r, i) => i != selectedDeviceIndex)), selectedDeviceRequirementIndex: newDeviceIndex); }; } @@ -126,6 +131,31 @@ public static Command SelectControlScheme(int controlSchemeIndex) }; } + public static Command ResetSelectedControlScheme() + { + return (in InputActionsEditorState state) => + { + var controlSchemeSerializedProperty = state.serializedObject + .FindProperty(nameof(InputActionAsset.m_ControlSchemes)) + .GetArrayElementAtIndex(state.selectedControlSchemeIndex); + + if (controlSchemeSerializedProperty == null) + { + return state.With( + selectedControlSchemeIndex: -1, + selectedControlScheme: new InputControlScheme()); + } + + return state.With( + selectedControlScheme: new InputControlScheme(controlSchemeSerializedProperty)); + }; + } + + public static Command SelectDeviceRequirement(int deviceRequirementIndex) + { + return (in InputActionsEditorState state) => state.With(selectedDeviceRequirementIndex: deviceRequirementIndex); + } + /// /// Duplicate creates a new instance of the selected control scheme and places it in the selected /// control scheme property of the state but doesn't persist anything. @@ -143,30 +173,32 @@ public static Command DeleteSelectedControlScheme() { var selectedControlSchemeName = state.selectedControlScheme.name; - var serializedArray = state.serializedObject.FindProperty(nameof(InputActionAsset.m_ControlSchemes)); - var serializedControlScheme = serializedArray - .FirstOrDefault(sp => sp.FindPropertyRelative(nameof(InputControlScheme.m_Name)).stringValue == selectedControlSchemeName); - - if (serializedControlScheme == null) + var serializedArray = InputActionSerializationHelpers.GetControlSchemesArray(state.serializedObject); + var indexOfArrayElement = InputActionSerializationHelpers.IndexOfControlScheme(serializedArray, selectedControlSchemeName); + if (indexOfArrayElement < 0) throw new InvalidOperationException("Control scheme doesn't exist in collection."); - var indexOfArrayElement = serializedControlScheme.GetIndexOfArrayElement(); + // Ask for confirmation. + if (Dialog.Result.Cancel == Dialog.ControlScheme.ShowDeleteControlScheme(selectedControlSchemeName)) + return state; + serializedArray.DeleteArrayElementAtIndex(indexOfArrayElement); state.serializedObject.ApplyModifiedProperties(); if (serializedArray.arraySize == 0) return state.With( selectedControlSchemeIndex: -1, - selectedControlScheme: new InputControlScheme()); + selectedControlScheme: new InputControlScheme(), + selectedDeviceRequirementIndex: -1); if (indexOfArrayElement > serializedArray.arraySize - 1) return state.With( selectedControlSchemeIndex: serializedArray.arraySize - 1, - selectedControlScheme: new InputControlScheme(serializedArray.GetArrayElementAtIndex(serializedArray.arraySize - 1))); + selectedControlScheme: new InputControlScheme(serializedArray.GetArrayElementAtIndex(serializedArray.arraySize - 1)), selectedDeviceRequirementIndex: -1); return state.With( selectedControlSchemeIndex: indexOfArrayElement, - selectedControlScheme: new InputControlScheme(serializedArray.GetArrayElementAtIndex(indexOfArrayElement))); + selectedControlScheme: new InputControlScheme(serializedArray.GetArrayElementAtIndex(indexOfArrayElement)), selectedDeviceRequirementIndex: -1); }; } diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/UITKAssetEditor/InputActionsEditorConstants.cs b/Packages/com.unity.inputsystem/InputSystem/Editor/UITKAssetEditor/InputActionsEditorConstants.cs index 1695edfd31..2e1e160ca6 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Editor/UITKAssetEditor/InputActionsEditorConstants.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/UITKAssetEditor/InputActionsEditorConstants.cs @@ -1,12 +1,15 @@ #if UNITY_EDITOR + namespace UnityEngine.InputSystem.Editor { - internal class InputActionsEditorConstants + internal static class InputActionsEditorConstants { + // Paths public const string PackagePath = "Packages/com.unity.inputsystem"; public const string ResourcesPath = "/InputSystem/Editor/UITKAssetEditor/Resources"; /// Template names + public const string ProjectSettingsUxml = "/InputActionsProjectSettings.uxml"; public const string MainEditorViewNameUxml = "/InputActionsEditor.uxml"; public const string BindingsPanelRowTemplateUxml = "/BindingPanelRowTemplate.uxml"; public const string NameAndParametersListViewItemUxml = "/NameAndParameterListViewItemTemplate.uxml"; @@ -30,6 +33,17 @@ internal class InputActionsEditorConstants "Whether in the next input update after the action was enabled, the action should " + "immediately trigger if any of its bound controls are currently in a non-default state. " + "This check happens implicitly for Value actions but can be explicitly enabled for Button and Pass-Through actions."; + + public struct CommandEvents + { + public const string Rename = "Rename"; + public const string Delete = "Delete"; + public const string SoftDelete = "SoftDelete"; + public const string Duplicate = "Duplicate"; + public const string Copy = "Copy"; + public const string Cut = "Cut"; + public const string Paste = "Paste"; + } } } diff --git a/Packages/com.unity.inputsystem/InputSystem/Editor/UITKAssetEditor/InputActionsEditorSettingsProvider.cs b/Packages/com.unity.inputsystem/InputSystem/Editor/UITKAssetEditor/InputActionsEditorSettingsProvider.cs index 5d30c3d2a0..81236699fa 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Editor/UITKAssetEditor/InputActionsEditorSettingsProvider.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Editor/UITKAssetEditor/InputActionsEditorSettingsProvider.cs @@ -1,18 +1,27 @@ #if UNITY_EDITOR && UNITY_INPUT_SYSTEM_PROJECT_WIDE_ACTIONS using System.Collections.Generic; +using System.Threading.Tasks; using UnityEditor; +using UnityEditor.ShortcutManagement; using UnityEngine.UIElements; +using UnityEditor.UIElements; namespace UnityEngine.InputSystem.Editor { internal class InputActionsEditorSettingsProvider : SettingsProvider { - public const string kSettingsPath = InputSettingsPath.kSettingsRootPath; + public static string SettingsPath => InputSettingsPath.kSettingsRootPath; [SerializeField] InputActionsEditorState m_State; VisualElement m_RootVisualElement; private bool m_HasEditFocus; + private bool m_IgnoreActionChangedCallback; + private bool m_IsActivated; + private static bool m_IMGUIDropdownVisible; StateContainer m_StateContainer; + private static InputActionsEditorSettingsProvider m_ActiveSettingsProvider; + + private InputActionsEditorView m_View; public InputActionsEditorSettingsProvider(string path, SettingsScope scopes, IEnumerable keywords = null) : base(path, scopes, keywords) @@ -21,26 +30,46 @@ public InputActionsEditorSettingsProvider(string path, SettingsScope scopes, IEn public override void OnActivate(string searchContext, VisualElement rootElement) { - m_RootVisualElement = rootElement; - var asset = ProjectWideActionsAsset.GetOrCreate(); - var serializedAsset = new SerializedObject(asset); - m_State = new InputActionsEditorState(serializedAsset); - BuildUI(); + // There is an editor bug UUM-55238 that may cause OnActivate and OnDeactivate to be called in unexpected order. + // This flag avoids making assumptions and executing logic twice. + if (m_IsActivated) + return; - // Monitor focus state of root element + // Monitor play mode state changes + EditorApplication.playModeStateChanged += ModeChanged; + + // Setup root element with focus monitoring + m_RootVisualElement = rootElement; m_RootVisualElement.focusable = true; m_RootVisualElement.RegisterCallback(OnEditFocusLost); m_RootVisualElement.RegisterCallback(OnEditFocus); - // Note that focused element will be set if we are navigating back to - // an existing instance when switching setting in the left project settings panel since - // this doesn't recreate the editor. + CreateUI(); + + // Monitor any changes to InputSystem.actions for as long as this editor is active + InputSystem.onActionsChange += BuildUI; + + // Set the asset assigned with the editor which indirectly builds the UI based on setting + BuildUI(); + + // Note that focused element will be set if we are navigating back to an existing instance when switching + // setting in the left project settings panel since this doesn't recreate the editor. if (m_RootVisualElement?.focusController?.focusedElement != null) OnEditFocus(null); + + m_IsActivated = true; } public override void OnDeactivate() { + // There is an editor bug UUM-55238 that may cause OnActivate and OnDeactivate to be called in unexpected order. + // This flag avoids making assumptions and executing logic twice. + if (!m_IsActivated) + return; + + // Stop monitoring play mode state changes + EditorApplication.playModeStateChanged -= ModeChanged; + if (m_RootVisualElement != null) { m_RootVisualElement.UnregisterCallback(OnEditFocusLost); @@ -54,6 +83,12 @@ public override void OnDeactivate() OnEditFocusLost(null); m_HasEditFocus = false; } + + InputSystem.onActionsChange -= BuildUI; + + m_IsActivated = false; + + m_View?.DestroyView(); } private void OnEditFocus(FocusInEvent @event) @@ -61,6 +96,51 @@ private void OnEditFocus(FocusInEvent @event) if (!m_HasEditFocus) { m_HasEditFocus = true; + m_ActiveSettingsProvider = this; + SetIMGUIDropdownVisible(false, false); + } + } + + void SaveAssetOnFocusLost() + { + #if UNITY_INPUT_SYSTEM_INPUT_ACTIONS_EDITOR_AUTO_SAVE_ON_FOCUS_LOST + var asset = GetAsset(); + if (asset != null) + ValidateAndSaveAsset(asset); + #endif + } + + public static void SetIMGUIDropdownVisible(bool visible, bool optionWasSelected) + { + // If we selected an item from the dropdown, we *should* still be focused on this settings window - but + // since the IMGUI dropdown is technically a separate window, we have to refocus manually. + // + // If we didn't select a dropdown option, there's not a simple way to know where the focus has gone, + // so assume we lost focus and save if appropriate. ISXB-801 + if (!visible && m_IMGUIDropdownVisible) + { + if (optionWasSelected) + m_ActiveSettingsProvider.m_RootVisualElement.Focus(); + else + m_ActiveSettingsProvider.SaveAssetOnFocusLost(); + } + else if (visible && !m_IMGUIDropdownVisible) + { + m_ActiveSettingsProvider.m_HasEditFocus = false; + } + + m_IMGUIDropdownVisible = visible; + } + + private async void DelayFocusLost(bool relatedTargetWasNull) + { + await Task.Delay(120); + + // We delay this call to ensure that the IMGUI flag has a chance to change first. + if (relatedTargetWasNull && m_HasEditFocus && !m_IMGUIDropdownVisible) + { + m_HasEditFocus = false; + SaveAssetOnFocusLost(); } } @@ -71,14 +151,7 @@ private void OnEditFocusLost(FocusOutEvent @event) // elements outside of project settings Editor Window. Also note that @event is null when we call this // from OnDeactivate(). var element = (VisualElement)@event?.relatedTarget; - if (element == null && m_HasEditFocus) - { - m_HasEditFocus = false; - - #if UNITY_INPUT_SYSTEM_INPUT_ACTIONS_EDITOR_AUTO_SAVE_ON_FOCUS_LOST - InputActionsEditorWindowUtils.SaveAsset(m_State.serializedObject); - #endif - } + DelayFocusLost(element == null); } private void OnStateChanged(InputActionsEditorState newState) @@ -87,40 +160,153 @@ private void OnStateChanged(InputActionsEditorState newState) // No action, auto-saved on edit-focus lost #else // Project wide input actions always auto save - don't check the asset auto save status - InputActionsEditorWindowUtils.SaveAsset(m_State.serializedObject); + var asset = GetAsset(); + if (asset != null) + ValidateAndSaveAsset(asset); #endif } - private void BuildUI() + private void ValidateAndSaveAsset(InputActionAsset asset) { - m_StateContainer = new StateContainer(m_RootVisualElement, m_State); - m_StateContainer.StateChanged += OnStateChanged; + ProjectWideActionsAsset.Validate(asset); // Ignore validation result for save + EditorHelpers.SaveAsset(AssetDatabase.GetAssetPath(asset), asset.ToJson()); + } + + private void CreateUI() + { + var projectSettingsAsset = AssetDatabase.LoadAssetAtPath( + InputActionsEditorConstants.PackagePath + + InputActionsEditorConstants.ResourcesPath + + InputActionsEditorConstants.ProjectSettingsUxml); + + projectSettingsAsset.CloneTree(m_RootVisualElement); + m_RootVisualElement.styleSheets.Add(InputActionsEditorWindowUtils.theme); - var view = new InputActionsEditorView(m_RootVisualElement, m_StateContainer); - view.postResetAction += OnResetAsset; - m_StateContainer.Initialize(); - - // Hide the save / auto save buttons in the project wide input actions - // Project wide input actions always auto save - var element = m_RootVisualElement.Q("save-asset-toolbar-container"); - if (element != null) + } + + private void BuildUI() + { + // Construct from InputSystem.actions asset + var asset = InputSystem.actions; + var hasAsset = asset != null; + m_State = (asset != null) ? new InputActionsEditorState(new SerializedObject(asset)) : default; + + // Dynamically show a section indicating that an asset is missing if not currently having an associated asset + var missingAssetSection = m_RootVisualElement.Q("missing-asset-section"); + if (missingAssetSection != null) + { + missingAssetSection.style.visibility = hasAsset ? Visibility.Hidden : Visibility.Visible; + missingAssetSection.style.display = hasAsset ? DisplayStyle.None : DisplayStyle.Flex; + } + + // Allow the user to select an asset out of the assets available in the project via picker. + // Note that we show "None" (null) even if InputSystem.actions is currently a broken/missing reference. + var objectField = m_RootVisualElement.Q("current-asset"); + if (objectField != null) + { + objectField.value = (asset == null) ? null : asset; + objectField.RegisterCallback>((evt) => + { + if (evt.newValue != asset) + InputSystem.actions = evt.newValue as InputActionAsset; + }); + + // Prevent reassignment in in editor which would result in exception during play-mode + objectField.SetEnabled(!EditorApplication.isPlayingOrWillChangePlaymode); + } + + // Configure a button to allow the user to create and assign a new project-wide asset based on default template + var createAssetButton = m_RootVisualElement.Q