From 3359efe49d4896287d06757dcbf6d85b8c46f50b Mon Sep 17 00:00:00 2001 From: shenjianxing <”315615051@qq.com“> Date: Thu, 20 Mar 2025 17:31:29 +0800 Subject: [PATCH] =?UTF-8?q?VR=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Art/UIPrefab/UI3DObjSelect.prefab | 10 +- Assets/Art/UIPrefab/UI3DObjShow.prefab | 26 +- Assets/Art/UIPrefab/UIBackPack.prefab | 28 +- Assets/Art/UIPrefab/UIBody3D.prefab | 24 +- Assets/Art/UIPrefab/UIBody3DInfo.prefab | 26 +- Assets/Art/UIPrefab/UIBody3DMenuTree.prefab | 56 +- Assets/Art/UIPrefab/UIBody3DMouse.prefab | 12 +- Assets/Art/UIPrefab/UIBtns.prefab | 8 +- Assets/Art/UIPrefab/UICameraSwitch.prefab | 2 +- Assets/Art/UIPrefab/UIDeviceTip.prefab | 8 +- Assets/Art/UIPrefab/UIDraw.prefab | 58 +- Assets/Art/UIPrefab/UIHint.prefab | 10 +- Assets/Art/UIPrefab/UIImageTip.prefab | 16 +- Assets/Art/UIPrefab/UIInput.prefab | 24 +- Assets/Art/UIPrefab/UIInstruction.prefab | 2 +- Assets/Art/UIPrefab/UILoading.prefab | 2 +- Assets/Art/UIPrefab/UIMain.prefab | 4 +- Assets/Art/UIPrefab/UIModeSelect.prefab | 16 +- Assets/Art/UIPrefab/UIModuleSelect.prefab | 16 +- Assets/Art/UIPrefab/UIOperationList.prefab | 4 +- Assets/Art/UIPrefab/UIPointQuestion.prefab | 8 +- Assets/Art/UIPrefab/UIResultTip.prefab | 14 +- Assets/Art/UIPrefab/UIScore.prefab | 86 +- Assets/Art/UIPrefab/UITextQuestion.prefab | 2 +- Assets/Art/UIPrefab/UITextTip.prefab | 2 +- Assets/Art/UIPrefab/UITextWindow.prefab | 2 +- Assets/Art/UIPrefab/UITimeTip.prefab | 8 +- Assets/Art/UIPrefab/UITools.prefab | 28 +- Assets/Art/UIPrefab/UIVideo.prefab | 4 +- Assets/Plugins/IngameDebugConsole.meta | 9 + .../Plugins/IngameDebugConsole/Android.meta | 9 + .../Android/DebugLogLogcatListener.cs | 55 + .../Android/DebugLogLogcatListener.cs.meta | 12 + .../Android/IngameDebugConsole.aar | Bin 0 -> 3343 bytes .../Android/IngameDebugConsole.aar.meta | 33 + Assets/Plugins/IngameDebugConsole/Editor.meta | 9 + .../Editor/DebugLogManagerEditor.cs | 195 + .../Editor/DebugLogManagerEditor.cs.meta | 12 + .../Editor/IngameDebugConsole.Editor.asmdef | 17 + .../IngameDebugConsole.Editor.asmdef.meta | 7 + .../IngameDebugConsole.Runtime.asmdef | 6 + .../IngameDebugConsole.Runtime.asmdef.meta | 7 + .../IngameDebugConsole.prefab | 4060 +++++++++++++++++ .../IngameDebugConsole.prefab.meta | 8 + .../Plugins/IngameDebugConsole/Prefabs.meta | 9 + .../Prefabs/CommandSuggestion.prefab | 87 + .../Prefabs/CommandSuggestion.prefab.meta | 9 + .../Prefabs/DebugLogItem.prefab | 640 +++ .../Prefabs/DebugLogItem.prefab.meta | 8 + Assets/Plugins/IngameDebugConsole/README.txt | 7 + .../IngameDebugConsole/README.txt.meta | 8 + .../Plugins/IngameDebugConsole/Scripts.meta | 9 + .../Scripts/Attributes.meta | 8 + .../Scripts/Attributes/ConsoleAttribute.cs | 21 + .../Attributes/ConsoleAttribute.cs.meta | 2 + .../ConsoleCustomTypeParserAttribute.cs | 24 + .../ConsoleCustomTypeParserAttribute.cs.meta | 2 + .../Attributes/ConsoleMethodAttribute.cs | 30 + .../Attributes/ConsoleMethodAttribute.cs.meta | 12 + .../Scripts/CircularBuffer.cs | 304 ++ .../Scripts/CircularBuffer.cs.meta | 12 + .../IngameDebugConsole/Scripts/Commands.meta | 8 + .../Scripts/Commands/PlayerPrefsCommands.cs | 60 + .../Commands/PlayerPrefsCommands.cs.meta | 11 + .../Scripts/Commands/SceneCommands.cs | 60 + .../Scripts/Commands/SceneCommands.cs.meta | 11 + .../Scripts/Commands/TimeCommands.cs | 21 + .../Scripts/Commands/TimeCommands.cs.meta | 11 + .../Scripts/DebugLogConsole.cs | 1531 +++++++ .../Scripts/DebugLogConsole.cs.meta | 12 + .../Scripts/DebugLogEntry.cs | 187 + .../Scripts/DebugLogEntry.cs.meta | 12 + .../Scripts/DebugLogItem.cs | 282 ++ .../Scripts/DebugLogItem.cs.meta | 12 + .../Scripts/DebugLogItemCopyWebGL.cs | 36 + .../Scripts/DebugLogItemCopyWebGL.cs.meta | 11 + .../Scripts/DebugLogManager.cs | 1889 ++++++++ .../Scripts/DebugLogManager.cs.meta | 12 + .../Scripts/DebugLogPopup.cs | 281 ++ .../Scripts/DebugLogPopup.cs.meta | 12 + .../Scripts/DebugLogRecycledListView.cs | 483 ++ .../Scripts/DebugLogRecycledListView.cs.meta | 12 + .../Scripts/DebugLogResizeListener.cs | 24 + .../Scripts/DebugLogResizeListener.cs.meta | 12 + .../Scripts/DebugsOnScrollListener.cs | 47 + .../Scripts/DebugsOnScrollListener.cs.meta | 12 + .../Scripts/EventSystemHandler.cs | 75 + .../Scripts/EventSystemHandler.cs.meta | 12 + .../Scripts/InputFieldWarningsFixer.cs | 29 + .../Scripts/InputFieldWarningsFixer.cs.meta | 12 + .../Plugins/IngameDebugConsole/Sprites.meta | 9 + .../IngameDebugConsole/Sprites/IconClear.psd | Bin 0 -> 44641 bytes .../Sprites/IconClear.psd.meta | 128 + .../Sprites/IconCollapse.psd | Bin 0 -> 40403 bytes .../Sprites/IconCollapse.psd.meta | 92 + .../IngameDebugConsole/Sprites/IconError.psd | Bin 0 -> 49243 bytes .../Sprites/IconError.psd.meta | 92 + .../IngameDebugConsole/Sprites/IconHide.psd | Bin 0 -> 36589 bytes .../Sprites/IconHide.psd.meta | 92 + .../IngameDebugConsole/Sprites/IconInfo.psd | Bin 0 -> 53469 bytes .../Sprites/IconInfo.psd.meta | 92 + .../Sprites/IconResizeAllDirections.psd | Bin 0 -> 38406 bytes .../Sprites/IconResizeAllDirections.psd.meta | 92 + .../Sprites/IconResizeVertialOnly.psd | Bin 0 -> 31569 bytes .../Sprites/IconResizeVertialOnly.psd.meta | 92 + .../Sprites/IconSnapToBottom.psd | Bin 0 -> 30022 bytes .../Sprites/IconSnapToBottom.psd.meta | 92 + .../Sprites/IconSnapToBottomBg.psd | Bin 0 -> 34684 bytes .../Sprites/IconSnapToBottomBg.psd.meta | 92 + .../Sprites/IconWarning.psd | Bin 0 -> 48956 bytes .../Sprites/IconWarning.psd.meta | 92 + .../IngameDebugConsoleSpriteAtlas.spriteatlas | 64 + ...meDebugConsoleSpriteAtlas.spriteatlas.meta | 8 + .../IngameDebugConsole/Sprites/SearchIcon.psd | Bin 0 -> 34138 bytes .../Sprites/SearchIcon.psd.meta | 128 + .../Sprites/SlicedBackground.psd | Bin 0 -> 32526 bytes .../Sprites/SlicedBackground.psd.meta | 128 + .../Sprites/SlicedBackground2.psd | Bin 0 -> 30284 bytes .../Sprites/SlicedBackground2.psd.meta | 92 + .../Sprites/SlicedBackground3.psd | Bin 0 -> 34920 bytes .../Sprites/SlicedBackground3.psd.meta | 92 + .../IngameDebugConsole/Sprites/Unused.meta | 9 + .../Sprites/Unused/IconErrorHighRes.psd | Bin 0 -> 54471 bytes .../Sprites/Unused/IconErrorHighRes.psd.meta | 92 + .../Sprites/Unused/IconInfoHighRes.psd | Bin 0 -> 61819 bytes .../Sprites/Unused/IconInfoHighRes.psd.meta | 92 + .../Sprites/Unused/IconWarningHighRes.psd | Bin 0 -> 54256 bytes .../Unused/IconWarningHighRes.psd.meta | 92 + Assets/Plugins/IngameDebugConsole/WebGL.meta | 9 + .../WebGL/IngameDebugConsole.jslib | 70 + .../WebGL/IngameDebugConsole.jslib.meta | 39 + Assets/Plugins/IngameDebugConsole/iOS.meta | 9 + .../iOS/IngameDebugConsole.mm | 4 + .../iOS/IngameDebugConsole.mm.meta | 33 + .../UIKit/Scripts/Resources/VRUIRoot.prefab | 314 ++ Assets/Scripts/Conditions/UIClickCondition.cs | 22 +- Assets/Scripts/Item/DeviceItem.cs | 37 + Assets/Scripts/Item/TipItem.cs | 18 + 138 files changed, 13377 insertions(+), 254 deletions(-) create mode 100644 Assets/Plugins/IngameDebugConsole.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Android.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Android/DebugLogLogcatListener.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Android/DebugLogLogcatListener.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Android/IngameDebugConsole.aar create mode 100644 Assets/Plugins/IngameDebugConsole/Android/IngameDebugConsole.aar.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Editor.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Editor/DebugLogManagerEditor.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Editor/DebugLogManagerEditor.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Editor/IngameDebugConsole.Editor.asmdef create mode 100644 Assets/Plugins/IngameDebugConsole/Editor/IngameDebugConsole.Editor.asmdef.meta create mode 100644 Assets/Plugins/IngameDebugConsole/IngameDebugConsole.Runtime.asmdef create mode 100644 Assets/Plugins/IngameDebugConsole/IngameDebugConsole.Runtime.asmdef.meta create mode 100644 Assets/Plugins/IngameDebugConsole/IngameDebugConsole.prefab create mode 100644 Assets/Plugins/IngameDebugConsole/IngameDebugConsole.prefab.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Prefabs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Prefabs/CommandSuggestion.prefab create mode 100644 Assets/Plugins/IngameDebugConsole/Prefabs/CommandSuggestion.prefab.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Prefabs/DebugLogItem.prefab create mode 100644 Assets/Plugins/IngameDebugConsole/Prefabs/DebugLogItem.prefab.meta create mode 100644 Assets/Plugins/IngameDebugConsole/README.txt create mode 100644 Assets/Plugins/IngameDebugConsole/README.txt.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/Attributes.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleAttribute.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleAttribute.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleCustomTypeParserAttribute.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleCustomTypeParserAttribute.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleMethodAttribute.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleMethodAttribute.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/CircularBuffer.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/CircularBuffer.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/Commands.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/Commands/PlayerPrefsCommands.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/Commands/PlayerPrefsCommands.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/Commands/SceneCommands.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/Commands/SceneCommands.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/Commands/TimeCommands.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/Commands/TimeCommands.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogConsole.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogConsole.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogEntry.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogEntry.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItem.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItem.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItemCopyWebGL.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItemCopyWebGL.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogManager.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogManager.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogPopup.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogPopup.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogRecycledListView.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogRecycledListView.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogResizeListener.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugLogResizeListener.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugsOnScrollListener.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/DebugsOnScrollListener.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/EventSystemHandler.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/EventSystemHandler.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/InputFieldWarningsFixer.cs create mode 100644 Assets/Plugins/IngameDebugConsole/Scripts/InputFieldWarningsFixer.cs.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconClear.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconClear.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconCollapse.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconCollapse.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconError.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconError.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconHide.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconHide.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconInfo.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconInfo.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconResizeAllDirections.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconResizeAllDirections.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconResizeVertialOnly.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconResizeVertialOnly.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconSnapToBottom.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconSnapToBottom.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconSnapToBottomBg.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconSnapToBottomBg.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconWarning.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IconWarning.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IngameDebugConsoleSpriteAtlas.spriteatlas create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/IngameDebugConsoleSpriteAtlas.spriteatlas.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/SearchIcon.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/SearchIcon.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/SlicedBackground.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/SlicedBackground.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/SlicedBackground2.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/SlicedBackground2.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/SlicedBackground3.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/SlicedBackground3.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/Unused.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/Unused/IconErrorHighRes.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/Unused/IconErrorHighRes.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/Unused/IconInfoHighRes.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/Unused/IconInfoHighRes.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/Unused/IconWarningHighRes.psd create mode 100644 Assets/Plugins/IngameDebugConsole/Sprites/Unused/IconWarningHighRes.psd.meta create mode 100644 Assets/Plugins/IngameDebugConsole/WebGL.meta create mode 100644 Assets/Plugins/IngameDebugConsole/WebGL/IngameDebugConsole.jslib create mode 100644 Assets/Plugins/IngameDebugConsole/WebGL/IngameDebugConsole.jslib.meta create mode 100644 Assets/Plugins/IngameDebugConsole/iOS.meta create mode 100644 Assets/Plugins/IngameDebugConsole/iOS/IngameDebugConsole.mm create mode 100644 Assets/Plugins/IngameDebugConsole/iOS/IngameDebugConsole.mm.meta diff --git a/Assets/Art/UIPrefab/UI3DObjSelect.prefab b/Assets/Art/UIPrefab/UI3DObjSelect.prefab index 81f582b2..c15dace3 100644 --- a/Assets/Art/UIPrefab/UI3DObjSelect.prefab +++ b/Assets/Art/UIPrefab/UI3DObjSelect.prefab @@ -10,7 +10,7 @@ GameObject: m_Component: - component: {fileID: 3757608316288059836} - component: {fileID: 9054926475848466949} - m_Layer: 0 + m_Layer: 5 m_Name: UI3DObjSelect m_TagString: Untagged m_Icon: {fileID: 0} @@ -65,7 +65,7 @@ GameObject: - component: {fileID: 4015390979414886710} - component: {fileID: 6574349689579670411} - component: {fileID: 3394718864618735294} - m_Layer: 0 + m_Layer: 5 m_Name: BtnItem m_TagString: Untagged m_Icon: {fileID: 0} @@ -201,7 +201,7 @@ GameObject: - component: {fileID: 7069376765433692083} - component: {fileID: 8639447311258167166} - component: {fileID: 8275426332140666664} - m_Layer: 0 + m_Layer: 5 m_Name: Content m_TagString: Untagged m_Icon: {fileID: 0} @@ -276,7 +276,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 8853058799213559304} - m_Layer: 0 + m_Layer: 5 m_Name: Prefabs m_TagString: Untagged m_Icon: {fileID: 0} @@ -314,7 +314,7 @@ GameObject: - component: {fileID: 2637009452797290299} - component: {fileID: 1822324956339504325} - component: {fileID: 7483671490167212526} - m_Layer: 0 + m_Layer: 5 m_Name: Label m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Art/UIPrefab/UI3DObjShow.prefab b/Assets/Art/UIPrefab/UI3DObjShow.prefab index b6e0a459..1eaea369 100644 --- a/Assets/Art/UIPrefab/UI3DObjShow.prefab +++ b/Assets/Art/UIPrefab/UI3DObjShow.prefab @@ -13,7 +13,7 @@ GameObject: - component: {fileID: 1826394720132835709} - component: {fileID: 4987523079939159319} - component: {fileID: 3942906496295632508} - m_Layer: 0 + m_Layer: 5 m_Name: ItemPrefab m_TagString: Untagged m_Icon: {fileID: 0} @@ -155,7 +155,7 @@ GameObject: - component: {fileID: 1885211785160074565} - component: {fileID: 8272526244216789332} - component: {fileID: 4840548641561535226} - m_Layer: 0 + m_Layer: 5 m_Name: Name m_TagString: Untagged m_Icon: {fileID: 0} @@ -290,7 +290,7 @@ GameObject: - component: {fileID: 3370089183326341287} - component: {fileID: 7397484820841873523} - component: {fileID: 6588407399979732995} - m_Layer: 0 + m_Layer: 5 m_Name: DeviceRawImage m_TagString: Untagged m_Icon: {fileID: 0} @@ -379,7 +379,7 @@ GameObject: - component: {fileID: 7277770534815806214} - component: {fileID: 5964642934946449171} - component: {fileID: 5887092968505518654} - m_Layer: 0 + m_Layer: 5 m_Name: Right m_TagString: Untagged m_Icon: {fileID: 0} @@ -473,7 +473,7 @@ GameObject: - component: {fileID: 5468229884088645180} - component: {fileID: 4147329925826600491} - component: {fileID: 4647039171796394276} - m_Layer: 0 + m_Layer: 5 m_Name: Scroll m_TagString: Untagged m_Icon: {fileID: 0} @@ -596,7 +596,7 @@ GameObject: - component: {fileID: 3190141395984966533} - component: {fileID: 7592982024277439227} - component: {fileID: 8645385913932230175} - m_Layer: 0 + m_Layer: 5 m_Name: Viewport m_TagString: Untagged m_Icon: {fileID: 0} @@ -685,7 +685,7 @@ GameObject: - component: {fileID: 2993659619756489948} - component: {fileID: 9142951468929579946} - component: {fileID: 2142741602967855509} - m_Layer: 0 + m_Layer: 5 m_Name: CurSelect m_TagString: Untagged m_Icon: {fileID: 0} @@ -761,7 +761,7 @@ GameObject: - component: {fileID: 1954549762747143972} - component: {fileID: 2228057524689582266} - component: {fileID: 4892270682288098217} - m_Layer: 0 + m_Layer: 5 m_Name: ObjBg m_TagString: Untagged m_Icon: {fileID: 0} @@ -847,7 +847,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 2836954293480787745} - m_Layer: 0 + m_Layer: 5 m_Name: Prefabs m_TagString: Untagged m_Icon: {fileID: 0} @@ -885,7 +885,7 @@ GameObject: - component: {fileID: 7536532178961312589} - component: {fileID: 1200259361618426797} - component: {fileID: 7420892993111462157} - m_Layer: 0 + m_Layer: 5 m_Name: Icon m_TagString: Untagged m_Icon: {fileID: 0} @@ -959,7 +959,7 @@ GameObject: m_Component: - component: {fileID: 8188781184013275445} - component: {fileID: -6608259679228875983} - m_Layer: 0 + m_Layer: 5 m_Name: UI3DObjShow m_TagString: Untagged m_Icon: {fileID: 0} @@ -1020,7 +1020,7 @@ GameObject: - component: {fileID: 6163647579972378307} - component: {fileID: 4184670730983142247} - component: {fileID: 9021371395075346806} - m_Layer: 0 + m_Layer: 5 m_Name: Content m_TagString: Untagged m_Icon: {fileID: 0} @@ -1124,7 +1124,7 @@ GameObject: - component: {fileID: 1175461932259494640} - component: {fileID: 8182201665260437679} - component: {fileID: 3032770430978378459} - m_Layer: 0 + m_Layer: 5 m_Name: IconBg m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Art/UIPrefab/UIBackPack.prefab b/Assets/Art/UIPrefab/UIBackPack.prefab index bfdf34a8..403204a2 100644 --- a/Assets/Art/UIPrefab/UIBackPack.prefab +++ b/Assets/Art/UIPrefab/UIBackPack.prefab @@ -12,7 +12,7 @@ GameObject: - component: {fileID: 720179284218664828} - component: {fileID: 8627238894211572052} - component: {fileID: 5534949437245616353} - m_Layer: 0 + m_Layer: 5 m_Name: Viewport m_TagString: Untagged m_Icon: {fileID: 0} @@ -101,7 +101,7 @@ GameObject: - component: {fileID: 1179437840221257607} - component: {fileID: 5993226364604944433} - component: {fileID: 7589938469968452857} - m_Layer: 0 + m_Layer: 5 m_Name: CurSelect m_TagString: Untagged m_Icon: {fileID: 0} @@ -177,7 +177,7 @@ GameObject: - component: {fileID: 1831670476936566405} - component: {fileID: 1965798369331663024} - component: {fileID: 7103229461446632614} - m_Layer: 0 + m_Layer: 5 m_Name: bg m_TagString: Untagged m_Icon: {fileID: 0} @@ -271,7 +271,7 @@ GameObject: - component: {fileID: 254227601228506374} - component: {fileID: 1040135018577296874} - component: {fileID: 7356074359862289526} - m_Layer: 0 + m_Layer: 5 m_Name: Scroll m_TagString: Untagged m_Icon: {fileID: 0} @@ -393,7 +393,7 @@ GameObject: - component: {fileID: 2689415831119182590} - component: {fileID: 3273573817221224419} - component: {fileID: 6436825421739101952} - m_Layer: 0 + m_Layer: 5 m_Name: Selected m_TagString: Untagged m_Icon: {fileID: 0} @@ -528,7 +528,7 @@ GameObject: - component: {fileID: 5912537021221064421} - component: {fileID: 3560637060377120700} - component: {fileID: 3136112080371682209} - m_Layer: 0 + m_Layer: 5 m_Name: Content m_TagString: Untagged m_Icon: {fileID: 0} @@ -617,7 +617,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 2829940346850861066} - m_Layer: 0 + m_Layer: 5 m_Name: Prefabs m_TagString: Untagged m_Icon: {fileID: 0} @@ -655,7 +655,7 @@ GameObject: - component: {fileID: 4298471471318501847} - component: {fileID: 4876354504712037638} - component: {fileID: 500444381068990267} - m_Layer: 0 + m_Layer: 5 m_Name: Icon m_TagString: Untagged m_Icon: {fileID: 0} @@ -736,7 +736,7 @@ GameObject: - component: {fileID: 3997541015826516678} - component: {fileID: 2942751017101116083} - component: {fileID: 852343187983825115} - m_Layer: 0 + m_Layer: 5 m_Name: ItemPrefab m_TagString: Untagged m_Icon: {fileID: 0} @@ -888,7 +888,7 @@ GameObject: - component: {fileID: 2858233519595284804} - component: {fileID: 7470382041958119283} - component: {fileID: 6908862309512493659} - m_Layer: 0 + m_Layer: 5 m_Name: Name m_TagString: Untagged m_Icon: {fileID: 0} @@ -1021,7 +1021,7 @@ GameObject: m_Component: - component: {fileID: 8884541322144313253} - component: {fileID: -9076045857728266771} - m_Layer: 0 + m_Layer: 5 m_Name: UIBackPack m_TagString: Untagged m_Icon: {fileID: 0} @@ -1076,7 +1076,7 @@ GameObject: - component: {fileID: 8156089695026575318} - component: {fileID: 6830142910111002741} - component: {fileID: 8183087573598537193} - m_Layer: 0 + m_Layer: 5 m_Name: IconBg m_TagString: Untagged m_Icon: {fileID: 0} @@ -1152,7 +1152,7 @@ GameObject: - component: {fileID: 8432229706393150763} - component: {fileID: 7998702343858188311} - component: {fileID: 4826648473444851839} - m_Layer: 0 + m_Layer: 5 m_Name: Wrong m_TagString: Untagged m_Icon: {fileID: 0} @@ -1227,7 +1227,7 @@ GameObject: - component: {fileID: 1359517404646008911} - component: {fileID: 8909650154369111679} - component: {fileID: 5855586488784585236} - m_Layer: 0 + m_Layer: 5 m_Name: Right m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Art/UIPrefab/UIBody3D.prefab b/Assets/Art/UIPrefab/UIBody3D.prefab index 4fedac65..d2c7f8f7 100644 --- a/Assets/Art/UIPrefab/UIBody3D.prefab +++ b/Assets/Art/UIPrefab/UIBody3D.prefab @@ -264,7 +264,7 @@ GameObject: - component: {fileID: 1925313831941949437} - component: {fileID: 8217181496106074158} - component: {fileID: 2728586638895794672} - m_Layer: 0 + m_Layer: 5 m_Name: MenuBtn m_TagString: Untagged m_Icon: {fileID: 0} @@ -1498,7 +1498,7 @@ GameObject: - component: {fileID: 4953482758554625882} - component: {fileID: 2347760259618684183} - component: {fileID: 5918762461572323184} - m_Layer: 0 + m_Layer: 5 m_Name: Label m_TagString: Untagged m_Icon: {fileID: 0} @@ -1632,7 +1632,7 @@ GameObject: - component: {fileID: 3033046206669775460} - component: {fileID: 1682419669064365991} - component: {fileID: 6605250588679030740} - m_Layer: 0 + m_Layer: 5 m_Name: BodyItem m_TagString: Untagged m_Icon: {fileID: 0} @@ -1867,7 +1867,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 3238461836348479573} - m_Layer: 0 + m_Layer: 5 m_Name: Prefabs m_TagString: Untagged m_Icon: {fileID: 0} @@ -1906,7 +1906,7 @@ GameObject: - component: {fileID: 5601864313735818432} - component: {fileID: 2854415066566960052} - component: {fileID: 1910592752469583054} - m_Layer: 0 + m_Layer: 5 m_Name: BodyContent m_TagString: Untagged m_Icon: {fileID: 0} @@ -2317,7 +2317,7 @@ GameObject: - component: {fileID: 857771760272880181} - component: {fileID: 7828263869541264493} - component: {fileID: 4614220537224331151} - m_Layer: 0 + m_Layer: 5 m_Name: Checkmark m_TagString: Untagged m_Icon: {fileID: 0} @@ -2391,7 +2391,7 @@ GameObject: m_Component: - component: {fileID: 1062102287437619772} - component: {fileID: 1899516771925541136} - m_Layer: 0 + m_Layer: 5 m_Name: UIBody3D m_TagString: Untagged m_Icon: {fileID: 0} @@ -3203,7 +3203,7 @@ GameObject: - component: {fileID: 7905154595963713286} - component: {fileID: 2446502681928384974} - component: {fileID: 4878151049820995865} - m_Layer: 0 + m_Layer: 5 m_Name: Label m_TagString: Untagged m_Icon: {fileID: 0} @@ -3481,7 +3481,7 @@ GameObject: - component: {fileID: 2230561609608687225} - component: {fileID: 5985358514496059563} - component: {fileID: 7493184969676800220} - m_Layer: 0 + m_Layer: 5 m_Name: LeftContent m_TagString: Untagged m_Icon: {fileID: 0} @@ -3945,7 +3945,7 @@ GameObject: - component: {fileID: 1264121378949306667} - component: {fileID: 6079762615507445171} - component: {fileID: 4700084135801314771} - m_Layer: 0 + m_Layer: 5 m_Name: Background m_TagString: Untagged m_Icon: {fileID: 0} @@ -4219,7 +4219,7 @@ GameObject: - component: {fileID: 7012541589931891369} - component: {fileID: 889925841178914852} - component: {fileID: 5269464421851659385} - m_Layer: 0 + m_Layer: 5 m_Name: RightContent m_TagString: Untagged m_Icon: {fileID: 0} @@ -4383,7 +4383,7 @@ GameObject: - component: {fileID: 7473498730775191750} - component: {fileID: 3011504180940896098} - component: {fileID: 1037810077572345310} - m_Layer: 0 + m_Layer: 5 m_Name: BodyList m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Art/UIPrefab/UIBody3DInfo.prefab b/Assets/Art/UIPrefab/UIBody3DInfo.prefab index b1a65a12..b61581a3 100644 --- a/Assets/Art/UIPrefab/UIBody3DInfo.prefab +++ b/Assets/Art/UIPrefab/UIBody3DInfo.prefab @@ -9,7 +9,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 3704119434299023873} - m_Layer: 0 + m_Layer: 5 m_Name: Prefabs m_TagString: Untagged m_Icon: {fileID: 0} @@ -49,7 +49,7 @@ GameObject: - component: {fileID: 8707609089676575336} - component: {fileID: 6309894902403129698} - component: {fileID: 5431530855365952215} - m_Layer: 0 + m_Layer: 5 m_Name: PartName m_TagString: Untagged m_Icon: {fileID: 0} @@ -782,7 +782,7 @@ GameObject: - component: {fileID: 830889130275351780} - component: {fileID: 5301118011458687740} - component: {fileID: 8755480884770592513} - m_Layer: 0 + m_Layer: 5 m_Name: ListContent m_TagString: Untagged m_Icon: {fileID: 0} @@ -1148,7 +1148,7 @@ GameObject: m_Component: - component: {fileID: 6190215392520032477} - component: {fileID: -1321096431916288768} - m_Layer: 0 + m_Layer: 5 m_Name: UIBody3DInfo m_TagString: Untagged m_Icon: {fileID: 0} @@ -1621,7 +1621,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 6827284989092321893} - m_Layer: 0 + m_Layer: 5 m_Name: bg m_TagString: Untagged m_Icon: {fileID: 0} @@ -1937,7 +1937,7 @@ GameObject: - component: {fileID: 4459085572747613946} - component: {fileID: 4894733014413346296} - component: {fileID: 521060644256314275} - m_Layer: 0 + m_Layer: 5 m_Name: ShowTip m_TagString: Untagged m_Icon: {fileID: 0} @@ -2370,7 +2370,7 @@ GameObject: - component: {fileID: 7517546175823580742} - component: {fileID: 3323726988613458574} - component: {fileID: 4257239027467645739} - m_Layer: 0 + m_Layer: 5 m_Name: Des m_TagString: Untagged m_Icon: {fileID: 0} @@ -2520,7 +2520,7 @@ GameObject: - component: {fileID: 683708360215293002} - component: {fileID: 504216954137080686} - component: {fileID: 4783679322056164110} - m_Layer: 0 + m_Layer: 5 m_Name: Center m_TagString: Untagged m_Icon: {fileID: 0} @@ -2735,7 +2735,7 @@ GameObject: - component: {fileID: 6527817913563806369} - component: {fileID: 6029649610812130588} - component: {fileID: 418754800741770927} - m_Layer: 0 + m_Layer: 5 m_Name: Background m_TagString: Untagged m_Icon: {fileID: 0} @@ -2810,7 +2810,7 @@ GameObject: m_Component: - component: {fileID: 9020717879163851555} - component: {fileID: 3421682449047198639} - m_Layer: 0 + m_Layer: 5 m_Name: Audio m_TagString: Untagged m_Icon: {fileID: 0} @@ -3017,7 +3017,7 @@ GameObject: - component: {fileID: 6172743479764615161} - component: {fileID: 7778926504159604487} - component: {fileID: 8977262465905793402} - m_Layer: 0 + m_Layer: 5 m_Name: Checkmark m_TagString: Untagged m_Icon: {fileID: 0} @@ -3520,7 +3520,7 @@ GameObject: - component: {fileID: 4398165297683719602} - component: {fileID: 7813395870198244871} - component: {fileID: 1100525409918473002} - m_Layer: 0 + m_Layer: 5 m_Name: Content m_TagString: Untagged m_Icon: {fileID: 0} @@ -3629,7 +3629,7 @@ GameObject: - component: {fileID: 6142069136662953391} - component: {fileID: 1516042631190191173} - component: {fileID: 8748741714269200721} - m_Layer: 0 + m_Layer: 5 m_Name: Btns m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Art/UIPrefab/UIBody3DMenuTree.prefab b/Assets/Art/UIPrefab/UIBody3DMenuTree.prefab index 0d027d54..5d927b8d 100644 --- a/Assets/Art/UIPrefab/UIBody3DMenuTree.prefab +++ b/Assets/Art/UIPrefab/UIBody3DMenuTree.prefab @@ -11,7 +11,7 @@ GameObject: - component: {fileID: 5541630126728550664} - component: {fileID: 7059217903814836235} - component: {fileID: 5690934278568581149} - m_Layer: 0 + m_Layer: 5 m_Name: SearchItem m_TagString: Untagged m_Icon: {fileID: 0} @@ -91,7 +91,7 @@ GameObject: - component: {fileID: 6691901692687776613} - component: {fileID: 8604668127201442417} - component: {fileID: 6111203637309125883} - m_Layer: 0 + m_Layer: 5 m_Name: Text (TMP) m_TagString: Untagged m_Icon: {fileID: 0} @@ -225,7 +225,7 @@ GameObject: - component: {fileID: 3253026650041459306} - component: {fileID: 7657823456554628219} - component: {fileID: 7323728187780005847} - m_Layer: 0 + m_Layer: 5 m_Name: Background m_TagString: Untagged m_Icon: {fileID: 0} @@ -301,7 +301,7 @@ GameObject: - component: {fileID: 968044794616394021} - component: {fileID: 1992922879845837021} - component: {fileID: 5100270314888121104} - m_Layer: 0 + m_Layer: 5 m_Name: ToggleContent m_TagString: Untagged m_Icon: {fileID: 0} @@ -387,7 +387,7 @@ GameObject: - component: {fileID: 1314588679329502247} - component: {fileID: 6791851927171983665} - component: {fileID: 3361460339878902209} - m_Layer: 0 + m_Layer: 5 m_Name: Checkmark m_TagString: Untagged m_Icon: {fileID: 0} @@ -463,7 +463,7 @@ GameObject: - component: {fileID: 1833753178836462036} - component: {fileID: 8836301810932972658} - component: {fileID: 2870834805563361516} - m_Layer: 0 + m_Layer: 5 m_Name: Placeholder m_TagString: Untagged m_Icon: {fileID: 0} @@ -618,7 +618,7 @@ GameObject: - component: {fileID: 3198770288120255536} - component: {fileID: 233082391983418149} - component: {fileID: 6304575409659534821} - m_Layer: 0 + m_Layer: 5 m_Name: Scroll View m_TagString: Untagged m_Icon: {fileID: 0} @@ -722,7 +722,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 2765956842469010051} - m_Layer: 0 + m_Layer: 5 m_Name: Prefabs m_TagString: Untagged m_Icon: {fileID: 0} @@ -760,7 +760,7 @@ GameObject: m_Component: - component: {fileID: 7413620028793613176} - component: {fileID: 4284310081592403002} - m_Layer: 0 + m_Layer: 5 m_Name: UI m_TagString: Untagged m_Icon: {fileID: 0} @@ -846,7 +846,7 @@ GameObject: - component: {fileID: 5894363737722245234} - component: {fileID: 4513527160489183252} - component: {fileID: 6563839704117627199} - m_Layer: 0 + m_Layer: 5 m_Name: Half m_TagString: Untagged m_Icon: {fileID: 0} @@ -920,7 +920,7 @@ GameObject: m_Component: - component: {fileID: 8239230575637970371} - component: {fileID: 4035371880123791218} - m_Layer: 0 + m_Layer: 5 m_Name: UIBody3DMenuTree m_TagString: Untagged m_Icon: {fileID: 0} @@ -978,7 +978,7 @@ GameObject: - component: {fileID: 8756084538072946943} - component: {fileID: 6720028438850695846} - component: {fileID: 6865219576372528947} - m_Layer: 0 + m_Layer: 5 m_Name: Item m_TagString: Untagged m_Icon: {fileID: 0} @@ -1059,7 +1059,7 @@ GameObject: - component: {fileID: 6328242271330880581} - component: {fileID: 5822037825308611511} - component: {fileID: 8829331589693888189} - m_Layer: 0 + m_Layer: 5 m_Name: Full m_TagString: Untagged m_Icon: {fileID: 0} @@ -1136,7 +1136,7 @@ GameObject: - component: {fileID: 1447526701205576668} - component: {fileID: 4548797959966114877} - component: {fileID: 2490883577000194266} - m_Layer: 0 + m_Layer: 5 m_Name: Close m_TagString: Untagged m_Icon: {fileID: 0} @@ -1272,7 +1272,7 @@ GameObject: - component: {fileID: 1649761711985542949} - component: {fileID: 1115528623557144614} - component: {fileID: 4375380806897849957} - m_Layer: 0 + m_Layer: 5 m_Name: Label m_TagString: Untagged m_Icon: {fileID: 0} @@ -1407,7 +1407,7 @@ GameObject: - component: {fileID: 2513262253907134897} - component: {fileID: 8995589607768803785} - component: {fileID: 424829580646518385} - m_Layer: 0 + m_Layer: 5 m_Name: Obj m_TagString: Untagged m_Icon: {fileID: 0} @@ -1530,7 +1530,7 @@ GameObject: - component: {fileID: 952298444247433949} - component: {fileID: 6269862821162942835} - component: {fileID: 5781164482939738454} - m_Layer: 0 + m_Layer: 5 m_Name: Button m_TagString: Untagged m_Icon: {fileID: 0} @@ -1676,7 +1676,7 @@ GameObject: - component: {fileID: 3809433158938133721} - component: {fileID: 5081294388593249996} - component: {fileID: 5572334278771085631} - m_Layer: 0 + m_Layer: 5 m_Name: Text m_TagString: Untagged m_Icon: {fileID: 0} @@ -1812,7 +1812,7 @@ GameObject: - component: {fileID: 5612136304832395205} - component: {fileID: 8717882674060703838} - component: {fileID: 1393690702991313535} - m_Layer: 0 + m_Layer: 5 m_Name: Input m_TagString: Untagged m_Icon: {fileID: 0} @@ -2003,7 +2003,7 @@ GameObject: - component: {fileID: 1862316355096272692} - component: {fileID: 8647292842559282075} - component: {fileID: 4056347865810146947} - m_Layer: 0 + m_Layer: 5 m_Name: Content m_TagString: Untagged m_Icon: {fileID: 0} @@ -2096,7 +2096,7 @@ GameObject: - component: {fileID: 3729434292113330344} - component: {fileID: 60149285316496278} - component: {fileID: 8058058459736564283} - m_Layer: 0 + m_Layer: 5 m_Name: Label m_TagString: Untagged m_Icon: {fileID: 0} @@ -2231,7 +2231,7 @@ GameObject: - component: {fileID: 6570752734218630378} - component: {fileID: 8083432661066997205} - component: {fileID: 1546129111403102217} - m_Layer: 0 + m_Layer: 5 m_Name: RootContent m_TagString: Untagged m_Icon: {fileID: 0} @@ -2419,7 +2419,7 @@ GameObject: m_Component: - component: {fileID: 7751237830732954166} - component: {fileID: 3511587815147998542} - m_Layer: 0 + m_Layer: 5 m_Name: SubContent m_TagString: Untagged m_Icon: {fileID: 0} @@ -2481,7 +2481,7 @@ GameObject: m_Component: - component: {fileID: 348112869011454683} - component: {fileID: 8036619762038645936} - m_Layer: 0 + m_Layer: 5 m_Name: Title m_TagString: Untagged m_Icon: {fileID: 0} @@ -2546,7 +2546,7 @@ GameObject: m_Component: - component: {fileID: 5665479011557647546} - component: {fileID: 9098222183318483024} - m_Layer: 0 + m_Layer: 5 m_Name: Text Area m_TagString: Untagged m_Icon: {fileID: 0} @@ -2600,7 +2600,7 @@ GameObject: - component: {fileID: 6547758707784887598} - component: {fileID: 6566445527134288257} - component: {fileID: 3549564371066931878} - m_Layer: 0 + m_Layer: 5 m_Name: Viewport m_TagString: Untagged m_Icon: {fileID: 0} @@ -2691,7 +2691,7 @@ GameObject: - component: {fileID: 5380101656063997442} - component: {fileID: 6246179184432923500} - component: {fileID: 7391309138291511606} - m_Layer: 0 + m_Layer: 5 m_Name: SearchContent m_TagString: Untagged m_Icon: {fileID: 0} @@ -2784,7 +2784,7 @@ GameObject: - component: {fileID: 5386886549002144015} - component: {fileID: 2324784443955434651} - component: {fileID: 3156810407322175504} - m_Layer: 0 + m_Layer: 5 m_Name: Text (TMP) m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Art/UIPrefab/UIBody3DMouse.prefab b/Assets/Art/UIPrefab/UIBody3DMouse.prefab index 7da19ae4..0bbf1156 100644 --- a/Assets/Art/UIPrefab/UIBody3DMouse.prefab +++ b/Assets/Art/UIPrefab/UIBody3DMouse.prefab @@ -189,7 +189,7 @@ GameObject: - component: {fileID: 5993706344011097893} - component: {fileID: 634775337829811055} - component: {fileID: 5185512972209820422} - m_Layer: 0 + m_Layer: 5 m_Name: BodyName m_TagString: Untagged m_Icon: {fileID: 0} @@ -338,7 +338,7 @@ GameObject: m_Component: - component: {fileID: 7407754821700687508} - component: {fileID: -8202134762901074300} - m_Layer: 0 + m_Layer: 5 m_Name: UIBody3DMouse m_TagString: Untagged m_Icon: {fileID: 0} @@ -526,7 +526,7 @@ GameObject: - component: {fileID: 5808926026687105467} - component: {fileID: 2698497219859193594} - component: {fileID: 2462325859475754173} - m_Layer: 0 + m_Layer: 5 m_Name: Image m_TagString: Untagged m_Icon: {fileID: 0} @@ -601,7 +601,7 @@ GameObject: - component: {fileID: 1130625050664635630} - component: {fileID: 2807966281413911632} - component: {fileID: 2378378933056289467} - m_Layer: 0 + m_Layer: 5 m_Name: Image m_TagString: Untagged m_Icon: {fileID: 0} @@ -677,7 +677,7 @@ GameObject: - component: {fileID: 6443540540920022219} - component: {fileID: 1458989459021954194} - component: {fileID: 7867841589952432844} - m_Layer: 0 + m_Layer: 5 m_Name: Point m_TagString: Untagged m_Icon: {fileID: 0} @@ -770,7 +770,7 @@ GameObject: - component: {fileID: 6107282832060519988} - component: {fileID: 5347646502657675852} - component: {fileID: 5204424892036882157} - m_Layer: 0 + m_Layer: 5 m_Name: Content m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Art/UIPrefab/UIBtns.prefab b/Assets/Art/UIPrefab/UIBtns.prefab index a8214ef7..6a104506 100644 --- a/Assets/Art/UIPrefab/UIBtns.prefab +++ b/Assets/Art/UIPrefab/UIBtns.prefab @@ -59,7 +59,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 + m_RaycastTarget: 0 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: @@ -145,7 +145,7 @@ GameObject: - component: {fileID: 1063180806212692488} - component: {fileID: 3954091486572503913} - component: {fileID: 4914371533134699198} - m_Layer: 0 + m_Layer: 5 m_Name: BtnContent m_TagString: Untagged m_Icon: {fileID: 0} @@ -399,7 +399,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 4586469886604357432} - m_Layer: 0 + m_Layer: 5 m_Name: Prefabs m_TagString: Untagged m_Icon: {fileID: 0} @@ -437,7 +437,7 @@ GameObject: - component: {fileID: 3292507068126063065} - component: {fileID: -6845373899084667377} - component: {fileID: 1930005135453026217} - m_Layer: 0 + m_Layer: 5 m_Name: UIBtns m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Art/UIPrefab/UICameraSwitch.prefab b/Assets/Art/UIPrefab/UICameraSwitch.prefab index d287323b..2f05eeec 100644 --- a/Assets/Art/UIPrefab/UICameraSwitch.prefab +++ b/Assets/Art/UIPrefab/UICameraSwitch.prefab @@ -449,7 +449,7 @@ GameObject: - component: {fileID: -7625989102853132987} - component: {fileID: 7631483854353468555} - component: {fileID: 4496501098154074593} - m_Layer: 0 + m_Layer: 5 m_Name: UICameraSwitch m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Art/UIPrefab/UIDeviceTip.prefab b/Assets/Art/UIPrefab/UIDeviceTip.prefab index 28086727..6c32b29a 100644 --- a/Assets/Art/UIPrefab/UIDeviceTip.prefab +++ b/Assets/Art/UIPrefab/UIDeviceTip.prefab @@ -10,7 +10,7 @@ GameObject: m_Component: - component: {fileID: 5742674533081898516} - component: {fileID: -7706593333074943589} - m_Layer: 0 + m_Layer: 5 m_Name: UIDeviceTip m_TagString: Untagged m_Icon: {fileID: 0} @@ -63,7 +63,7 @@ GameObject: - component: {fileID: 4957094274820776498} - component: {fileID: 1686418510651184821} - component: {fileID: 7627912183738674205} - m_Layer: 0 + m_Layer: 5 m_Name: Label m_TagString: Untagged m_Icon: {fileID: 0} @@ -215,7 +215,7 @@ GameObject: - component: {fileID: 8696217884722044736} - component: {fileID: 6262412644488086412} - component: {fileID: 6365232066139843090} - m_Layer: 0 + m_Layer: 5 m_Name: Bg m_TagString: Untagged m_Icon: {fileID: 0} @@ -330,7 +330,7 @@ GameObject: m_Component: - component: {fileID: 3498217952045278011} - component: {fileID: 3053206168475133008} - m_Layer: 0 + m_Layer: 5 m_Name: Point m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Art/UIPrefab/UIDraw.prefab b/Assets/Art/UIPrefab/UIDraw.prefab index d257f81c..1bfdd005 100644 --- a/Assets/Art/UIPrefab/UIDraw.prefab +++ b/Assets/Art/UIPrefab/UIDraw.prefab @@ -144,7 +144,7 @@ GameObject: m_Component: - component: {fileID: 5248266707218333243} - component: {fileID: -1922437267348909682} - m_Layer: 0 + m_Layer: 5 m_Name: UIDraw m_TagString: Untagged m_Icon: {fileID: 0} @@ -228,7 +228,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 8168689003635850591} - m_Layer: 0 + m_Layer: 5 m_Name: MenuContent m_TagString: Untagged m_Icon: {fileID: 0} @@ -914,7 +914,7 @@ GameObject: - component: {fileID: 6728798601003651372} - component: {fileID: 6514419430037573205} - component: {fileID: 4289768011730094507} - m_Layer: 0 + m_Layer: 5 m_Name: Label m_TagString: Untagged m_Icon: {fileID: 0} @@ -1542,7 +1542,7 @@ GameObject: - component: {fileID: 261820504887957599} - component: {fileID: 8636723733331364148} - component: {fileID: 8517671564551698385} - m_Layer: 0 + m_Layer: 5 m_Name: PenFill m_TagString: Untagged m_Icon: {fileID: 0} @@ -1615,7 +1615,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 2244867125360659356} - m_Layer: 0 + m_Layer: 5 m_Name: Fill Area m_TagString: Untagged m_Icon: {fileID: 0} @@ -1728,7 +1728,7 @@ GameObject: - component: {fileID: 7680141286834816999} - component: {fileID: 7609649003841633922} - component: {fileID: 6876269614391699274} - m_Layer: 0 + m_Layer: 5 m_Name: AlphaSlider m_TagString: Untagged m_Icon: {fileID: 0} @@ -2188,7 +2188,7 @@ GameObject: - component: {fileID: 31084923243399467} - component: {fileID: 1594643944354670706} - component: {fileID: 3673863312826482967} - m_Layer: 0 + m_Layer: 5 m_Name: RectImg m_TagString: Untagged m_Icon: {fileID: 0} @@ -2355,7 +2355,7 @@ GameObject: - component: {fileID: 3689577755995123420} - component: {fileID: 4601671526437018996} - component: {fileID: 7825958434919162129} - m_Layer: 0 + m_Layer: 5 m_Name: AlphaValue m_TagString: Untagged m_Icon: {fileID: 0} @@ -2648,7 +2648,7 @@ GameObject: - component: {fileID: 6174875567737795578} - component: {fileID: 6595069979675911202} - component: {fileID: 202888717378463401} - m_Layer: 0 + m_Layer: 5 m_Name: Content m_TagString: Untagged m_Icon: {fileID: 0} @@ -2811,7 +2811,7 @@ GameObject: - component: {fileID: 7885012002792199686} - component: {fileID: 5834594682419339802} - component: {fileID: 6453703547780102908} - m_Layer: 0 + m_Layer: 5 m_Name: AlphaFill m_TagString: Untagged m_Icon: {fileID: 0} @@ -3167,7 +3167,7 @@ GameObject: - component: {fileID: 3951373199249895382} - component: {fileID: 3124353302153448229} - component: {fileID: 5853308277782172275} - m_Layer: 0 + m_Layer: 5 m_Name: Background m_TagString: Untagged m_Icon: {fileID: 0} @@ -3601,7 +3601,7 @@ GameObject: - component: {fileID: 7412521316250416332} - component: {fileID: 5464280819655811615} - component: {fileID: 7202142325337995834} - m_Layer: 0 + m_Layer: 5 m_Name: Tools m_TagString: Untagged m_Icon: {fileID: 0} @@ -3685,7 +3685,7 @@ GameObject: - component: {fileID: 8842842148487093503} - component: {fileID: 5508971672908783626} - component: {fileID: 7361392164821074926} - m_Layer: 0 + m_Layer: 5 m_Name: PenHandle m_TagString: Untagged m_Icon: {fileID: 0} @@ -3919,7 +3919,7 @@ GameObject: m_Component: - component: {fileID: 5834119132936164118} - component: {fileID: 7714637065686556870} - m_Layer: 0 + m_Layer: 5 m_Name: Tools m_TagString: Untagged m_Icon: {fileID: 0} @@ -3986,7 +3986,7 @@ GameObject: - component: {fileID: 8008243382126065996} - component: {fileID: 3203995996440582448} - component: {fileID: 7327385147459692891} - m_Layer: 0 + m_Layer: 5 m_Name: Label m_TagString: Untagged m_Icon: {fileID: 0} @@ -4121,7 +4121,7 @@ GameObject: - component: {fileID: 3633560260765487631} - component: {fileID: 5658539083815298256} - component: {fileID: 1633689405063136780} - m_Layer: 0 + m_Layer: 5 m_Name: Icon m_TagString: Untagged m_Icon: {fileID: 0} @@ -4355,7 +4355,7 @@ GameObject: - component: {fileID: 1284705199744354948} - component: {fileID: 651633994972779311} - component: {fileID: 5263349108263655343} - m_Layer: 0 + m_Layer: 5 m_Name: Background m_TagString: Untagged m_Icon: {fileID: 0} @@ -4505,7 +4505,7 @@ GameObject: - component: {fileID: 9066997620206398552} - component: {fileID: 6210786392738512101} - component: {fileID: 466674863104921185} - m_Layer: 0 + m_Layer: 5 m_Name: PenSizeSlider m_TagString: Untagged m_Icon: {fileID: 0} @@ -4751,7 +4751,7 @@ GameObject: - component: {fileID: 4033881371188063280} - component: {fileID: 8768990730307991147} - component: {fileID: 6890220124340322844} - m_Layer: 0 + m_Layer: 5 m_Name: AlphaHandle m_TagString: Untagged m_Icon: {fileID: 0} @@ -4843,7 +4843,7 @@ GameObject: - component: {fileID: 2726400452956656333} - component: {fileID: 6328205184138556604} - component: {fileID: 2839568003275503191} - m_Layer: 0 + m_Layer: 5 m_Name: Label m_TagString: Untagged m_Icon: {fileID: 0} @@ -6248,7 +6248,7 @@ GameObject: m_Component: - component: {fileID: 3370876975330029569} - component: {fileID: 8825928122176273931} - m_Layer: 0 + m_Layer: 5 m_Name: Alpha m_TagString: Untagged m_Icon: {fileID: 0} @@ -6747,7 +6747,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 7340085417821350297} - m_Layer: 0 + m_Layer: 5 m_Name: Handle Slide Area m_TagString: Untagged m_Icon: {fileID: 0} @@ -6786,7 +6786,7 @@ GameObject: - component: {fileID: 8828149263381877660} - component: {fileID: 2203796515819680784} - component: {fileID: 8683794650347190296} - m_Layer: 0 + m_Layer: 5 m_Name: CirCleImg m_TagString: Untagged m_Icon: {fileID: 0} @@ -6878,7 +6878,7 @@ GameObject: - component: {fileID: 2454734828434235417} - component: {fileID: 3350589312635769069} - component: {fileID: 2503292002956440930} - m_Layer: 0 + m_Layer: 5 m_Name: RawImg m_TagString: Untagged m_Icon: {fileID: 0} @@ -7173,7 +7173,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 865200499040886691} - m_Layer: 0 + m_Layer: 5 m_Name: Handle Slide Area m_TagString: Untagged m_Icon: {fileID: 0} @@ -7346,7 +7346,7 @@ GameObject: - component: {fileID: 8721005985642254980} - component: {fileID: 3355715086126679907} - component: {fileID: 2813051238768453926} - m_Layer: 0 + m_Layer: 5 m_Name: Penvalue m_TagString: Untagged m_Icon: {fileID: 0} @@ -7495,7 +7495,7 @@ GameObject: m_Component: - component: {fileID: 8676304122337496716} - component: {fileID: 2945570745664429294} - m_Layer: 0 + m_Layer: 5 m_Name: Size m_TagString: Untagged m_Icon: {fileID: 0} @@ -7701,7 +7701,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 4617561787133819321} - m_Layer: 0 + m_Layer: 5 m_Name: Fill Area m_TagString: Untagged m_Icon: {fileID: 0} @@ -7874,7 +7874,7 @@ GameObject: - component: {fileID: 2820492126728528124} - component: {fileID: 2726755476368017795} - component: {fileID: 3799524082672765471} - m_Layer: 0 + m_Layer: 5 m_Name: Colors m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Art/UIPrefab/UIHint.prefab b/Assets/Art/UIPrefab/UIHint.prefab index 2481b853..85e4006b 100644 --- a/Assets/Art/UIPrefab/UIHint.prefab +++ b/Assets/Art/UIPrefab/UIHint.prefab @@ -14,7 +14,7 @@ GameObject: - component: {fileID: 5136855046950874331} - component: {fileID: 4452620901377531546} - component: {fileID: 2004835672152768862} - m_Layer: 0 + m_Layer: 5 m_Name: ItemPrefab m_TagString: Untagged m_Icon: {fileID: 0} @@ -154,7 +154,7 @@ GameObject: - component: {fileID: 5385302879215206585} - component: {fileID: 7798656301299361795} - component: {fileID: 8407845088832415332} - m_Layer: 0 + m_Layer: 5 m_Name: Icon m_TagString: Untagged m_Icon: {fileID: 0} @@ -265,7 +265,7 @@ GameObject: - component: {fileID: 5411250568078067334} - component: {fileID: 8744086733999426664} - component: {fileID: 8502429061060502134} - m_Layer: 0 + m_Layer: 5 m_Name: Content m_TagString: Untagged m_Icon: {fileID: 0} @@ -342,7 +342,7 @@ GameObject: m_Component: - component: {fileID: 3254113811648747782} - component: {fileID: 330474794235102399} - m_Layer: 0 + m_Layer: 5 m_Name: UIHint m_TagString: Untagged m_Icon: {fileID: 0} @@ -396,7 +396,7 @@ GameObject: - component: {fileID: 7300578004067312478} - component: {fileID: 9067620908784570888} - component: {fileID: 5737200879237289101} - m_Layer: 0 + m_Layer: 5 m_Name: Label m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Art/UIPrefab/UIImageTip.prefab b/Assets/Art/UIPrefab/UIImageTip.prefab index f031b483..59fa5ea5 100644 --- a/Assets/Art/UIPrefab/UIImageTip.prefab +++ b/Assets/Art/UIPrefab/UIImageTip.prefab @@ -13,7 +13,7 @@ GameObject: - component: {fileID: 8644373798225081904} - component: {fileID: 3944841449389482800} - component: {fileID: 6019649329575978101} - m_Layer: 0 + m_Layer: 5 m_Name: Loading m_TagString: Untagged m_Icon: {fileID: 0} @@ -214,7 +214,7 @@ GameObject: - component: {fileID: 7281622459385885556} - component: {fileID: 6226203286200918880} - component: {fileID: 7387790493629708447} - m_Layer: 0 + m_Layer: 5 m_Name: Img m_TagString: Untagged m_Icon: {fileID: 0} @@ -307,6 +307,12 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 0ddbdb059a0308e40b50b8affd380b70, type: 3} m_Name: m_EditorClassIdentifier: + OnBeginDragEvent: + m_PersistentCalls: + m_Calls: [] + OnEndDragEvent: + m_PersistentCalls: + m_Calls: [] --- !u!1 &4848351076784976432 GameObject: m_ObjectHideFlags: 0 @@ -319,7 +325,7 @@ GameObject: - component: {fileID: 6280186421294349216} - component: {fileID: 3487113180645688331} - component: {fileID: 204670043180775299} - m_Layer: 0 + m_Layer: 5 m_Name: Bg m_TagString: Untagged m_Icon: {fileID: 0} @@ -409,7 +415,7 @@ GameObject: m_Component: - component: {fileID: 457338256681516575} - component: {fileID: 7007927510195950176} - m_Layer: 0 + m_Layer: 5 m_Name: UIImageTip m_TagString: Untagged m_Icon: {fileID: 0} @@ -467,7 +473,7 @@ GameObject: - component: {fileID: 7515914936111753226} - component: {fileID: 8060087292099783694} - component: {fileID: 2170269065230433368} - m_Layer: 0 + m_Layer: 5 m_Name: CloseBtn m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Art/UIPrefab/UIInput.prefab b/Assets/Art/UIPrefab/UIInput.prefab index f91e84fd..9e5cb4fb 100644 --- a/Assets/Art/UIPrefab/UIInput.prefab +++ b/Assets/Art/UIPrefab/UIInput.prefab @@ -11,7 +11,7 @@ GameObject: - component: {fileID: 8100178790166699902} - component: {fileID: 7911051938717397792} - component: {fileID: 7084999328206355330} - m_Layer: 0 + m_Layer: 5 m_Name: Text m_TagString: Untagged m_Icon: {fileID: 0} @@ -310,7 +310,7 @@ GameObject: - component: {fileID: 4725815479797068311} - component: {fileID: 2191794021815542899} - component: {fileID: 6363919404990863040} - m_Layer: 0 + m_Layer: 5 m_Name: InputItem m_TagString: Untagged m_Icon: {fileID: 0} @@ -389,7 +389,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 4314000628692641735} - m_Layer: 0 + m_Layer: 5 m_Name: Prefabs m_TagString: Untagged m_Icon: {fileID: 0} @@ -428,7 +428,7 @@ GameObject: - component: {fileID: 5713198942243338701} - component: {fileID: 6094800226996078900} - component: {fileID: 5638502855852615458} - m_Layer: 0 + m_Layer: 5 m_Name: Name m_TagString: Untagged m_Icon: {fileID: 0} @@ -561,7 +561,7 @@ GameObject: m_Component: - component: {fileID: 3096815168054448789} - component: {fileID: 6445035671294373454} - m_Layer: 0 + m_Layer: 5 m_Name: Text Area m_TagString: Untagged m_Icon: {fileID: 0} @@ -615,7 +615,7 @@ GameObject: - component: {fileID: 7307409091144679381} - component: {fileID: 5924069694205131648} - component: {fileID: 6848695010149233200} - m_Layer: 0 + m_Layer: 5 m_Name: Placeholder m_TagString: Untagged m_Icon: {fileID: 0} @@ -771,7 +771,7 @@ GameObject: - component: {fileID: 8312562780388923968} - component: {fileID: 1845703835207110803} - component: {fileID: 6983037145689049102} - m_Layer: 0 + m_Layer: 5 m_Name: Input m_TagString: Untagged m_Icon: {fileID: 0} @@ -1100,7 +1100,7 @@ GameObject: - component: {fileID: 1862130413999992604} - component: {fileID: 381905247134971179} - component: {fileID: 1156849266482460236} - m_Layer: 0 + m_Layer: 5 m_Name: InputContent m_TagString: Untagged m_Icon: {fileID: 0} @@ -1198,7 +1198,7 @@ GameObject: m_Component: - component: {fileID: 7964080183519823441} - component: {fileID: -5799875677790081652} - m_Layer: 0 + m_Layer: 5 m_Name: UIInput m_TagString: Untagged m_Icon: {fileID: 0} @@ -1257,7 +1257,7 @@ GameObject: - component: {fileID: 3551001944589057452} - component: {fileID: 9017176752945006659} - component: {fileID: 6373261563929724895} - m_Layer: 0 + m_Layer: 5 m_Name: Bg m_TagString: Untagged m_Icon: {fileID: 0} @@ -1396,7 +1396,7 @@ GameObject: - component: {fileID: 2360334822120789333} - component: {fileID: 4925687183086586537} - component: {fileID: 8133337991877402896} - m_Layer: 0 + m_Layer: 5 m_Name: Title m_TagString: Untagged m_Icon: {fileID: 0} @@ -1546,7 +1546,7 @@ GameObject: - component: {fileID: 574820298932651410} - component: {fileID: 2048673236642627372} - component: {fileID: 5107770809804739899} - m_Layer: 0 + m_Layer: 5 m_Name: BtnContent m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Art/UIPrefab/UIInstruction.prefab b/Assets/Art/UIPrefab/UIInstruction.prefab index 7ccc214f..27948151 100644 --- a/Assets/Art/UIPrefab/UIInstruction.prefab +++ b/Assets/Art/UIPrefab/UIInstruction.prefab @@ -560,7 +560,7 @@ GameObject: m_Component: - component: {fileID: 4542275168344588311} - component: {fileID: -6974958523210231966} - m_Layer: 0 + m_Layer: 5 m_Name: UIInstruction m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Art/UIPrefab/UILoading.prefab b/Assets/Art/UIPrefab/UILoading.prefab index 2e453290..39390ef5 100644 --- a/Assets/Art/UIPrefab/UILoading.prefab +++ b/Assets/Art/UIPrefab/UILoading.prefab @@ -10,7 +10,7 @@ GameObject: m_Component: - component: {fileID: 1462941856791656077} - component: {fileID: 2283590042596315916} - m_Layer: 0 + m_Layer: 5 m_Name: UILoading m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Art/UIPrefab/UIMain.prefab b/Assets/Art/UIPrefab/UIMain.prefab index 49528d0f..96f6ee89 100644 --- a/Assets/Art/UIPrefab/UIMain.prefab +++ b/Assets/Art/UIPrefab/UIMain.prefab @@ -10,7 +10,7 @@ GameObject: m_Component: - component: {fileID: 4874118990941334261} - component: {fileID: -1391903058519345737} - m_Layer: 0 + m_Layer: 5 m_Name: UIMain m_TagString: Untagged m_Icon: {fileID: 0} @@ -61,7 +61,7 @@ GameObject: - component: {fileID: 2680956513247551632} - component: {fileID: 3543475391252404589} - component: {fileID: 2132780113420823669} - m_Layer: 0 + m_Layer: 5 m_Name: bg m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Art/UIPrefab/UIModeSelect.prefab b/Assets/Art/UIPrefab/UIModeSelect.prefab index 190fd031..9eecb2d5 100644 --- a/Assets/Art/UIPrefab/UIModeSelect.prefab +++ b/Assets/Art/UIPrefab/UIModeSelect.prefab @@ -11,7 +11,7 @@ GameObject: - component: {fileID: 1020823947787121032} - component: {fileID: 6804820570256297194} - component: {fileID: 692166962319785701} - m_Layer: 0 + m_Layer: 5 m_Name: Image m_TagString: Untagged m_Icon: {fileID: 0} @@ -85,7 +85,7 @@ GameObject: m_Component: - component: {fileID: 7515753778195365010} - component: {fileID: 1770745785940761647} - m_Layer: 0 + m_Layer: 5 m_Name: Content m_TagString: Untagged m_Icon: {fileID: 0} @@ -152,7 +152,7 @@ GameObject: - component: {fileID: 4244441256348132980} - component: {fileID: 5661434251009883789} - component: {fileID: 7124645401872917623} - m_Layer: 0 + m_Layer: 5 m_Name: TechBtn m_TagString: Untagged m_Icon: {fileID: 0} @@ -287,7 +287,7 @@ GameObject: - component: {fileID: 4072267013626064002} - component: {fileID: 6598139955846506630} - component: {fileID: 8279598138832270465} - m_Layer: 0 + m_Layer: 5 m_Name: bg m_TagString: Untagged m_Icon: {fileID: 0} @@ -363,7 +363,7 @@ GameObject: - component: {fileID: 3922333369959595232} - component: {fileID: 4875312519751514263} - component: {fileID: 4434101491510460861} - m_Layer: 0 + m_Layer: 5 m_Name: TitleImg m_TagString: Untagged m_Icon: {fileID: 0} @@ -453,7 +453,7 @@ GameObject: m_Component: - component: {fileID: 3000090787083124518} - component: {fileID: -4952582767999744099} - m_Layer: 0 + m_Layer: 5 m_Name: UIModeSelect m_TagString: Untagged m_Icon: {fileID: 0} @@ -512,7 +512,7 @@ GameObject: - component: {fileID: 7198951534508861460} - component: {fileID: 8035740322758882133} - component: {fileID: 1042130682020240210} - m_Layer: 0 + m_Layer: 5 m_Name: ExamBtn m_TagString: Untagged m_Icon: {fileID: 0} @@ -647,7 +647,7 @@ GameObject: - component: {fileID: 6169462885626948174} - component: {fileID: 1007982851582153361} - component: {fileID: 552328109237574556} - m_Layer: 0 + m_Layer: 5 m_Name: TitleBg m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Art/UIPrefab/UIModuleSelect.prefab b/Assets/Art/UIPrefab/UIModuleSelect.prefab index e300a7d2..ee521fbc 100644 --- a/Assets/Art/UIPrefab/UIModuleSelect.prefab +++ b/Assets/Art/UIPrefab/UIModuleSelect.prefab @@ -76,7 +76,7 @@ GameObject: - component: {fileID: 5743321063265399854} - component: {fileID: 7732197650971149665} - component: {fileID: 245046426725597867} - m_Layer: 0 + m_Layer: 5 m_Name: TitleImg m_TagString: Untagged m_Icon: {fileID: 0} @@ -167,7 +167,7 @@ GameObject: - component: {fileID: 1484905517737370236} - component: {fileID: 4814790296775418982} - component: {fileID: 1446218799282111401} - m_Layer: 0 + m_Layer: 5 m_Name: Image m_TagString: Untagged m_Icon: {fileID: 0} @@ -379,7 +379,7 @@ GameObject: - component: {fileID: 5800286210300119797} - component: {fileID: 7870331819941572208} - component: {fileID: 5640205172889648423} - m_Layer: 0 + m_Layer: 5 m_Name: Label m_TagString: Untagged m_Icon: {fileID: 0} @@ -970,7 +970,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 5394197843809455320} - m_Layer: 0 + m_Layer: 5 m_Name: Prefabs m_TagString: Untagged m_Icon: {fileID: 0} @@ -1087,7 +1087,7 @@ GameObject: - component: {fileID: 1784869494394930203} - component: {fileID: 2934180257946761475} - component: {fileID: 3426516642962399173} - m_Layer: 0 + m_Layer: 5 m_Name: bg m_TagString: Untagged m_Icon: {fileID: 0} @@ -1167,7 +1167,7 @@ GameObject: - component: {fileID: 4550875732490597684} - component: {fileID: 4625004704344151833} - component: {fileID: 4962082388971351777} - m_Layer: 0 + m_Layer: 5 m_Name: Content m_TagString: Untagged m_Icon: {fileID: 0} @@ -1246,7 +1246,7 @@ GameObject: - component: {fileID: 6538808322970037377} - component: {fileID: 1653496259422510438} - component: {fileID: 8276709950477989415} - m_Layer: 0 + m_Layer: 5 m_Name: BtnItem m_TagString: Untagged m_Icon: {fileID: 0} @@ -1381,7 +1381,7 @@ GameObject: m_Component: - component: {fileID: 2371428954183981037} - component: {fileID: 9157000915776065829} - m_Layer: 0 + m_Layer: 5 m_Name: UIModuleSelect m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Art/UIPrefab/UIOperationList.prefab b/Assets/Art/UIPrefab/UIOperationList.prefab index 1f4d179f..0177b348 100644 --- a/Assets/Art/UIPrefab/UIOperationList.prefab +++ b/Assets/Art/UIPrefab/UIOperationList.prefab @@ -620,7 +620,7 @@ GameObject: m_Component: - component: {fileID: 1169807955496525508} - component: {fileID: 6721244378093528673} - m_Layer: 0 + m_Layer: 5 m_Name: UIOperationList m_TagString: Untagged m_Icon: {fileID: 0} @@ -1387,7 +1387,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 5592478208735969645} - m_Layer: 0 + m_Layer: 5 m_Name: Prefabs m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Art/UIPrefab/UIPointQuestion.prefab b/Assets/Art/UIPrefab/UIPointQuestion.prefab index c34caffa..d09b0667 100644 --- a/Assets/Art/UIPrefab/UIPointQuestion.prefab +++ b/Assets/Art/UIPrefab/UIPointQuestion.prefab @@ -10,7 +10,7 @@ GameObject: m_Component: - component: {fileID: 2738191445737966357} - component: {fileID: 219387240853835304} - m_Layer: 0 + m_Layer: 5 m_Name: Content m_TagString: Untagged m_Icon: {fileID: 0} @@ -62,7 +62,7 @@ GameObject: m_Component: - component: {fileID: 2133215449220801895} - component: {fileID: -4007643406398167740} - m_Layer: 0 + m_Layer: 5 m_Name: UIPointQuestion m_TagString: Untagged m_Icon: {fileID: 0} @@ -113,7 +113,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 8362215090955255009} - m_Layer: 0 + m_Layer: 5 m_Name: Prefabs m_TagString: Untagged m_Icon: {fileID: 0} @@ -154,7 +154,7 @@ GameObject: - component: {fileID: 8969370947853943279} - component: {fileID: 5118569280143072156} - component: {fileID: 2680892099236042777} - m_Layer: 0 + m_Layer: 5 m_Name: PointPrefab m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Art/UIPrefab/UIResultTip.prefab b/Assets/Art/UIPrefab/UIResultTip.prefab index 5492213b..f6e60028 100644 --- a/Assets/Art/UIPrefab/UIResultTip.prefab +++ b/Assets/Art/UIPrefab/UIResultTip.prefab @@ -11,7 +11,7 @@ GameObject: - component: {fileID: 365086729845207681} - component: {fileID: 4997819874040068926} - component: {fileID: 3347390178951072532} - m_Layer: 0 + m_Layer: 5 m_Name: Label m_TagString: Untagged m_Icon: {fileID: 0} @@ -147,7 +147,7 @@ GameObject: - component: {fileID: 4918567329435497524} - component: {fileID: 6324636569593157022} - component: {fileID: 3893615147211164985} - m_Layer: 0 + m_Layer: 5 m_Name: Right m_TagString: Untagged m_Icon: {fileID: 0} @@ -285,7 +285,7 @@ GameObject: - component: {fileID: 2264351173302932420} - component: {fileID: 6557118859749394712} - component: {fileID: 6506845967804458640} - m_Layer: 0 + m_Layer: 5 m_Name: Wrong m_TagString: Untagged m_Icon: {fileID: 0} @@ -421,7 +421,7 @@ GameObject: - component: {fileID: 7750684961739492709} - component: {fileID: 4147321071499557612} - component: {fileID: 1159013028686416311} - m_Layer: 0 + m_Layer: 5 m_Name: Bg m_TagString: Untagged m_Icon: {fileID: 0} @@ -496,7 +496,7 @@ GameObject: m_Component: - component: {fileID: 1069161611871088469} - component: {fileID: -512014180136883835} - m_Layer: 0 + m_Layer: 5 m_Name: UIResultTip m_TagString: Untagged m_Icon: {fileID: 0} @@ -549,7 +549,7 @@ GameObject: - component: {fileID: 4683699032887366701} - component: {fileID: 1786355697415447432} - component: {fileID: 7821427460070907285} - m_Layer: 0 + m_Layer: 5 m_Name: Label m_TagString: Untagged m_Icon: {fileID: 0} @@ -683,7 +683,7 @@ GameObject: - component: {fileID: 7576996666880332672} - component: {fileID: 3980452352011299240} - component: {fileID: 8739814984810477398} - m_Layer: 0 + m_Layer: 5 m_Name: Bg m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Art/UIPrefab/UIScore.prefab b/Assets/Art/UIPrefab/UIScore.prefab index cf9d7e7b..9b13e9c2 100644 --- a/Assets/Art/UIPrefab/UIScore.prefab +++ b/Assets/Art/UIPrefab/UIScore.prefab @@ -11,7 +11,7 @@ GameObject: - component: {fileID: 6622449807813905834} - component: {fileID: 7381616912692206821} - component: {fileID: 1968583161602860649} - m_Layer: 0 + m_Layer: 5 m_Name: Label m_TagString: Untagged m_Icon: {fileID: 0} @@ -147,7 +147,7 @@ GameObject: - component: {fileID: 2028013221844376241} - component: {fileID: 7852759570162495077} - component: {fileID: 1553986149602824186} - m_Layer: 0 + m_Layer: 5 m_Name: Text m_TagString: Untagged m_Icon: {fileID: 0} @@ -316,7 +316,7 @@ GameObject: - component: {fileID: 4624066920643839887} - component: {fileID: 3653965703028593560} - component: {fileID: 1813857866621158027} - m_Layer: 0 + m_Layer: 5 m_Name: Label m_TagString: Untagged m_Icon: {fileID: 0} @@ -450,7 +450,7 @@ GameObject: - component: {fileID: 2778055984157146789} - component: {fileID: 3691120814938762418} - component: {fileID: 7973076803890623739} - m_Layer: 0 + m_Layer: 5 m_Name: IdText m_TagString: Untagged m_Icon: {fileID: 0} @@ -585,7 +585,7 @@ GameObject: - component: {fileID: 2687793395170619170} - component: {fileID: 4694496341520831355} - component: {fileID: 1267920471250502621} - m_Layer: 0 + m_Layer: 5 m_Name: Label (1) m_TagString: Untagged m_Icon: {fileID: 0} @@ -719,7 +719,7 @@ GameObject: - component: {fileID: 421051849226757986} - component: {fileID: 8927313808823801957} - component: {fileID: 1085229164660666648} - m_Layer: 0 + m_Layer: 5 m_Name: Text (TMP) m_TagString: Untagged m_Icon: {fileID: 0} @@ -854,7 +854,7 @@ GameObject: - component: {fileID: 631933613470352386} - component: {fileID: 4433289817734458753} - component: {fileID: 7218265752100356454} - m_Layer: 0 + m_Layer: 5 m_Name: Title m_TagString: Untagged m_Icon: {fileID: 0} @@ -1003,7 +1003,7 @@ GameObject: m_Component: - component: {fileID: 157736323905960893} - component: {fileID: 5073987848680816226} - m_Layer: 0 + m_Layer: 5 m_Name: UIScore m_TagString: Untagged m_Icon: {fileID: 0} @@ -1064,7 +1064,7 @@ GameObject: - component: {fileID: 4092823484524963867} - component: {fileID: 5435797429536167790} - component: {fileID: 3007497214680376381} - m_Layer: 0 + m_Layer: 5 m_Name: ItemPrefab m_TagString: Untagged m_Icon: {fileID: 0} @@ -1159,7 +1159,7 @@ GameObject: m_Component: - component: {fileID: 1254650904126577241} - component: {fileID: 5058964993338930413} - m_Layer: 0 + m_Layer: 5 m_Name: Text Area m_TagString: Untagged m_Icon: {fileID: 0} @@ -1210,7 +1210,7 @@ GameObject: m_Component: - component: {fileID: 6680455706668942114} - component: {fileID: 953479692232615749} - m_Layer: 0 + m_Layer: 5 m_Name: Text Area m_TagString: Untagged m_Icon: {fileID: 0} @@ -1262,7 +1262,7 @@ GameObject: - component: {fileID: 6057403404278413488} - component: {fileID: 3113132857532115773} - component: {fileID: 3047800988384583448} - m_Layer: 0 + m_Layer: 5 m_Name: Text (TMP) m_TagString: Untagged m_Icon: {fileID: 0} @@ -1396,7 +1396,7 @@ GameObject: - component: {fileID: 8454857034840805074} - component: {fileID: 5335879600177918878} - component: {fileID: 2065820100847983030} - m_Layer: 0 + m_Layer: 5 m_Name: Image m_TagString: Untagged m_Icon: {fileID: 0} @@ -1471,7 +1471,7 @@ GameObject: - component: {fileID: 6383769712544190367} - component: {fileID: 9176093258469984551} - component: {fileID: 9052944359260555314} - m_Layer: 0 + m_Layer: 5 m_Name: Label (2) m_TagString: Untagged m_Icon: {fileID: 0} @@ -1605,7 +1605,7 @@ GameObject: - component: {fileID: 4745315916541092926} - component: {fileID: 5376003380347815860} - component: {fileID: 4674082487045939440} - m_Layer: 0 + m_Layer: 5 m_Name: Label (3) m_TagString: Untagged m_Icon: {fileID: 0} @@ -1739,7 +1739,7 @@ GameObject: - component: {fileID: 8368738148425789927} - component: {fileID: 9101406519567744942} - component: {fileID: 8273170191365853440} - m_Layer: 0 + m_Layer: 5 m_Name: Image m_TagString: Untagged m_Icon: {fileID: 0} @@ -1814,7 +1814,7 @@ GameObject: - component: {fileID: 5514254500380091201} - component: {fileID: 1379316621494133402} - component: {fileID: 3460917725374566463} - m_Layer: 0 + m_Layer: 5 m_Name: Name m_TagString: Untagged m_Icon: {fileID: 0} @@ -1948,7 +1948,7 @@ GameObject: - component: {fileID: 2051387841350664386} - component: {fileID: 6505997283269428298} - component: {fileID: 3587334045587572389} - m_Layer: 0 + m_Layer: 5 m_Name: Mask m_TagString: Untagged m_Icon: {fileID: 0} @@ -2023,7 +2023,7 @@ GameObject: m_Component: - component: {fileID: 6582869306297561265} - component: {fileID: 133045599490504663} - m_Layer: 0 + m_Layer: 5 m_Name: TitleContent m_TagString: Untagged m_Icon: {fileID: 0} @@ -2091,7 +2091,7 @@ GameObject: - component: {fileID: 7101337169946216056} - component: {fileID: 305475299065571129} - component: {fileID: 780911623748276767} - m_Layer: 0 + m_Layer: 5 m_Name: DownLoad m_TagString: Untagged m_Icon: {fileID: 0} @@ -2248,7 +2248,7 @@ GameObject: - component: {fileID: 8732538034867420636} - component: {fileID: 8569453819569717099} - component: {fileID: 7705967409403919064} - m_Layer: 0 + m_Layer: 5 m_Name: Image m_TagString: Untagged m_Icon: {fileID: 0} @@ -2323,7 +2323,7 @@ GameObject: - component: {fileID: 1278578666436033895} - component: {fileID: 8591805451895611215} - component: {fileID: 7041397803246779499} - m_Layer: 0 + m_Layer: 5 m_Name: ScoreText m_TagString: Untagged m_Icon: {fileID: 0} @@ -2460,7 +2460,7 @@ GameObject: - component: {fileID: 8546891535102755119} - component: {fileID: 6639772863859017555} - component: {fileID: 636041715146852893} - m_Layer: 0 + m_Layer: 5 m_Name: Confirm m_TagString: Untagged m_Icon: {fileID: 0} @@ -2596,7 +2596,7 @@ GameObject: - component: {fileID: 5101582369575797162} - component: {fileID: 2804169207368668528} - component: {fileID: 5950452328281534580} - m_Layer: 0 + m_Layer: 5 m_Name: SumText m_TagString: Untagged m_Icon: {fileID: 0} @@ -2731,7 +2731,7 @@ GameObject: - component: {fileID: 6313004537294173397} - component: {fileID: 2336897292573972297} - component: {fileID: 9023339322983693216} - m_Layer: 0 + m_Layer: 5 m_Name: Bg m_TagString: Untagged m_Icon: {fileID: 0} @@ -2818,7 +2818,7 @@ GameObject: - component: {fileID: 2067022229310707115} - component: {fileID: 3747149884107059180} - component: {fileID: 205384142878027255} - m_Layer: 0 + m_Layer: 5 m_Name: Text m_TagString: Untagged m_Icon: {fileID: 0} @@ -2987,7 +2987,7 @@ GameObject: - component: {fileID: 6374958230319344022} - component: {fileID: 4283989899224652955} - component: {fileID: 4608100741570994884} - m_Layer: 0 + m_Layer: 5 m_Name: Image m_TagString: Untagged m_Icon: {fileID: 0} @@ -3060,7 +3060,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 3428560883049556863} - m_Layer: 0 + m_Layer: 5 m_Name: Prefabs m_TagString: Untagged m_Icon: {fileID: 0} @@ -3098,7 +3098,7 @@ GameObject: - component: {fileID: 4561368705012339586} - component: {fileID: 4075124172092144889} - component: {fileID: 2546273849902984568} - m_Layer: 0 + m_Layer: 5 m_Name: Image m_TagString: Untagged m_Icon: {fileID: 0} @@ -3176,7 +3176,7 @@ GameObject: - component: {fileID: 4979203795644233532} - component: {fileID: 377129186146029586} - component: {fileID: 3368861642127692899} - m_Layer: 0 + m_Layer: 5 m_Name: InputName m_TagString: Untagged m_Icon: {fileID: 0} @@ -3379,7 +3379,7 @@ GameObject: - component: {fileID: 6134803638936944893} - component: {fileID: 8694984006415910734} - component: {fileID: 750743108200898297} - m_Layer: 0 + m_Layer: 5 m_Name: Step m_TagString: Untagged m_Icon: {fileID: 0} @@ -3516,7 +3516,7 @@ GameObject: - component: {fileID: 3255853760588522096} - component: {fileID: 5536000802310149862} - component: {fileID: 4931014474674421077} - m_Layer: 0 + m_Layer: 5 m_Name: Sum m_TagString: Untagged m_Icon: {fileID: 0} @@ -3704,7 +3704,7 @@ GameObject: - component: {fileID: 4437247114788900715} - component: {fileID: 6106581845475998104} - component: {fileID: 350216339409081792} - m_Layer: 0 + m_Layer: 5 m_Name: Score m_TagString: Untagged m_Icon: {fileID: 0} @@ -3892,7 +3892,7 @@ GameObject: - component: {fileID: 8962587547789291161} - component: {fileID: 7547910362531276598} - component: {fileID: 230895421085474288} - m_Layer: 0 + m_Layer: 5 m_Name: InputId m_TagString: Untagged m_Icon: {fileID: 0} @@ -4096,7 +4096,7 @@ GameObject: - component: {fileID: 6657634885351015696} - component: {fileID: 5941145294133094020} - component: {fileID: 2776987357867177613} - m_Layer: 0 + m_Layer: 5 m_Name: Content m_TagString: Untagged m_Icon: {fileID: 0} @@ -4190,7 +4190,7 @@ GameObject: - component: {fileID: 814012992263053563} - component: {fileID: 8538801895562790904} - component: {fileID: 3767490347104869704} - m_Layer: 0 + m_Layer: 5 m_Name: Scroll View m_TagString: Untagged m_Icon: {fileID: 0} @@ -4296,7 +4296,7 @@ GameObject: - component: {fileID: 3712862906427304075} - component: {fileID: 1255384609415206450} - component: {fileID: 2469784723980472941} - m_Layer: 0 + m_Layer: 5 m_Name: Table m_TagString: Untagged m_Icon: {fileID: 0} @@ -4376,7 +4376,7 @@ GameObject: - component: {fileID: 453571843869154862} - component: {fileID: 332075872890819240} - component: {fileID: 7457255327224929562} - m_Layer: 0 + m_Layer: 5 m_Name: Viewport m_TagString: Untagged m_Icon: {fileID: 0} @@ -4465,7 +4465,7 @@ GameObject: - component: {fileID: 5687508853119961158} - component: {fileID: 4747278004755213859} - component: {fileID: 5592547323857928484} - m_Layer: 0 + m_Layer: 5 m_Name: Sum m_TagString: Untagged m_Icon: {fileID: 0} @@ -4599,7 +4599,7 @@ GameObject: - component: {fileID: 80368653826865948} - component: {fileID: 4799211664855503939} - component: {fileID: 1790690216066134687} - m_Layer: 0 + m_Layer: 5 m_Name: Label m_TagString: Untagged m_Icon: {fileID: 0} @@ -4733,7 +4733,7 @@ GameObject: - component: {fileID: 6121349226594453097} - component: {fileID: 7934116838918301636} - component: {fileID: 2423651657466311940} - m_Layer: 0 + m_Layer: 5 m_Name: NameText m_TagString: Untagged m_Icon: {fileID: 0} @@ -4868,7 +4868,7 @@ GameObject: - component: {fileID: 8375940470644918253} - component: {fileID: 1880006501927460651} - component: {fileID: 8387872434621096007} - m_Layer: 0 + m_Layer: 5 m_Name: Score m_TagString: Untagged m_Icon: {fileID: 0} @@ -5002,7 +5002,7 @@ GameObject: - component: {fileID: 3838505323793969621} - component: {fileID: 1005719035593567824} - component: {fileID: 8781334866964965054} - m_Layer: 0 + m_Layer: 5 m_Name: Image m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Art/UIPrefab/UITextQuestion.prefab b/Assets/Art/UIPrefab/UITextQuestion.prefab index 3580c367..2345b8ea 100644 --- a/Assets/Art/UIPrefab/UITextQuestion.prefab +++ b/Assets/Art/UIPrefab/UITextQuestion.prefab @@ -650,7 +650,7 @@ GameObject: m_Component: - component: {fileID: 6617638994804669045} - component: {fileID: -984869975408067112} - m_Layer: 0 + m_Layer: 5 m_Name: UITextQuestion m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Art/UIPrefab/UITextTip.prefab b/Assets/Art/UIPrefab/UITextTip.prefab index 14d14538..ced987c6 100644 --- a/Assets/Art/UIPrefab/UITextTip.prefab +++ b/Assets/Art/UIPrefab/UITextTip.prefab @@ -421,7 +421,7 @@ GameObject: m_Component: - component: {fileID: 1572216019607898400} - component: {fileID: -2350051490050798324} - m_Layer: 0 + m_Layer: 5 m_Name: UITextTip m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Art/UIPrefab/UITextWindow.prefab b/Assets/Art/UIPrefab/UITextWindow.prefab index 1189ee94..af9e97d3 100644 --- a/Assets/Art/UIPrefab/UITextWindow.prefab +++ b/Assets/Art/UIPrefab/UITextWindow.prefab @@ -712,7 +712,7 @@ GameObject: m_Component: - component: {fileID: 5455485558483003793} - component: {fileID: -8107289427418422115} - m_Layer: 0 + m_Layer: 5 m_Name: UITextWindow m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Art/UIPrefab/UITimeTip.prefab b/Assets/Art/UIPrefab/UITimeTip.prefab index 2b58fb49..b78c5bba 100644 --- a/Assets/Art/UIPrefab/UITimeTip.prefab +++ b/Assets/Art/UIPrefab/UITimeTip.prefab @@ -13,7 +13,7 @@ GameObject: - component: {fileID: 8182254919235648885} - component: {fileID: 583483157902746320} - component: {fileID: 2055087916925015097} - m_Layer: 0 + m_Layer: 5 m_Name: Bg m_TagString: Untagged m_Icon: {fileID: 0} @@ -149,7 +149,7 @@ GameObject: - component: {fileID: 3625459411194288952} - component: {fileID: 6722489477402136612} - component: {fileID: 6297324171505129751} - m_Layer: 0 + m_Layer: 5 m_Name: Img m_TagString: Untagged m_Icon: {fileID: 0} @@ -240,7 +240,7 @@ GameObject: m_Component: - component: {fileID: 7728496241126536716} - component: {fileID: -4071892789913795685} - m_Layer: 0 + m_Layer: 5 m_Name: UITimeTip m_TagString: Untagged m_Icon: {fileID: 0} @@ -417,7 +417,7 @@ GameObject: - component: {fileID: 110097343374372302} - component: {fileID: 8566658033236212259} - component: {fileID: 6027422294765596440} - m_Layer: 0 + m_Layer: 5 m_Name: Label m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Art/UIPrefab/UITools.prefab b/Assets/Art/UIPrefab/UITools.prefab index 382798ca..a781fa4a 100644 --- a/Assets/Art/UIPrefab/UITools.prefab +++ b/Assets/Art/UIPrefab/UITools.prefab @@ -10,7 +10,7 @@ GameObject: m_Component: - component: {fileID: 4477385101412774245} - component: {fileID: 2685393123942041945} - m_Layer: 0 + m_Layer: 5 m_Name: UITools m_TagString: Untagged m_Icon: {fileID: 0} @@ -66,7 +66,7 @@ GameObject: - component: {fileID: 5860908020037853715} - component: {fileID: 7866400216680767733} - component: {fileID: 5791653609135029984} - m_Layer: 0 + m_Layer: 5 m_Name: Wrong m_TagString: Untagged m_Icon: {fileID: 0} @@ -142,7 +142,7 @@ GameObject: - component: {fileID: 3394901463020080017} - component: {fileID: 1691005042306177730} - component: {fileID: 4058489914823578499} - m_Layer: 0 + m_Layer: 5 m_Name: Content m_TagString: Untagged m_Icon: {fileID: 0} @@ -233,7 +233,7 @@ GameObject: - component: {fileID: 642645979159612403} - component: {fileID: 187388140515659328} - component: {fileID: 1129476954602146971} - m_Layer: 0 + m_Layer: 5 m_Name: Name m_TagString: Untagged m_Icon: {fileID: 0} @@ -367,7 +367,7 @@ GameObject: - component: {fileID: 8568704472119011922} - component: {fileID: 7101804279542403468} - component: {fileID: 2670140060850873908} - m_Layer: 0 + m_Layer: 5 m_Name: Selected m_TagString: Untagged m_Icon: {fileID: 0} @@ -504,7 +504,7 @@ GameObject: - component: {fileID: 6025220162707536696} - component: {fileID: 3617749440597198166} - component: {fileID: 5740481659040249477} - m_Layer: 0 + m_Layer: 5 m_Name: ItemPrefab m_TagString: Untagged m_Icon: {fileID: 0} @@ -657,7 +657,7 @@ GameObject: - component: {fileID: 4545504739990289964} - component: {fileID: 1794351130890544133} - component: {fileID: 2846860655180433068} - m_Layer: 0 + m_Layer: 5 m_Name: Viewport m_TagString: Untagged m_Icon: {fileID: 0} @@ -748,7 +748,7 @@ GameObject: - component: {fileID: 3409229569130038097} - component: {fileID: 3666318679728618663} - component: {fileID: 8266634801480237958} - m_Layer: 0 + m_Layer: 5 m_Name: Scroll m_TagString: Untagged m_Icon: {fileID: 0} @@ -871,7 +871,7 @@ GameObject: - component: {fileID: 7995524027316056123} - component: {fileID: 2575765536656914917} - component: {fileID: 7995406576721174090} - m_Layer: 0 + m_Layer: 5 m_Name: bg m_TagString: Untagged m_Icon: {fileID: 0} @@ -961,7 +961,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 8969698929162076767} - m_Layer: 0 + m_Layer: 5 m_Name: Prefabs m_TagString: Untagged m_Icon: {fileID: 0} @@ -999,7 +999,7 @@ GameObject: - component: {fileID: 7464141640143892343} - component: {fileID: 1762322910487271115} - component: {fileID: 6617967277623010294} - m_Layer: 0 + m_Layer: 5 m_Name: CurSelect m_TagString: Untagged m_Icon: {fileID: 0} @@ -1074,7 +1074,7 @@ GameObject: - component: {fileID: 3051202814640239909} - component: {fileID: 7350519382121684649} - component: {fileID: 551947731831193796} - m_Layer: 0 + m_Layer: 5 m_Name: Icon m_TagString: Untagged m_Icon: {fileID: 0} @@ -1152,7 +1152,7 @@ GameObject: - component: {fileID: 1684458048730538019} - component: {fileID: 5254041420608300737} - component: {fileID: 3085671107610446919} - m_Layer: 0 + m_Layer: 5 m_Name: Right m_TagString: Untagged m_Icon: {fileID: 0} @@ -1227,7 +1227,7 @@ GameObject: - component: {fileID: 4775158531114985421} - component: {fileID: 5397078064978493576} - component: {fileID: 6634696415031054332} - m_Layer: 0 + m_Layer: 5 m_Name: IconBg m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Art/UIPrefab/UIVideo.prefab b/Assets/Art/UIPrefab/UIVideo.prefab index adb56d8e..ba3278a8 100644 --- a/Assets/Art/UIPrefab/UIVideo.prefab +++ b/Assets/Art/UIPrefab/UIVideo.prefab @@ -480,7 +480,7 @@ GameObject: m_Component: - component: {fileID: 738615454687717295} - component: {fileID: 7185169170615065054} - m_Layer: 0 + m_Layer: 5 m_Name: UIVideo m_TagString: Untagged m_Icon: {fileID: 0} @@ -1027,7 +1027,7 @@ GameObject: - component: {fileID: 2845967181337858383} - component: {fileID: 7995995583091341287} - component: {fileID: 7838324073001807066} - m_Layer: 0 + m_Layer: 5 m_Name: player m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Plugins/IngameDebugConsole.meta b/Assets/Plugins/IngameDebugConsole.meta new file mode 100644 index 00000000..92bcd439 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 3c57523b63ddb094b835b6613da12763 +folderAsset: yes +timeCreated: 1596819199 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/IngameDebugConsole/Android.meta b/Assets/Plugins/IngameDebugConsole/Android.meta new file mode 100644 index 00000000..fcaef243 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Android.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 3d7d7a61a5341904eb3c65af025b1d86 +folderAsset: yes +timeCreated: 1510075633 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/IngameDebugConsole/Android/DebugLogLogcatListener.cs b/Assets/Plugins/IngameDebugConsole/Android/DebugLogLogcatListener.cs new file mode 100644 index 00000000..b44b29b2 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Android/DebugLogLogcatListener.cs @@ -0,0 +1,55 @@ +#if UNITY_EDITOR || UNITY_ANDROID +using System.Collections.Generic; +using UnityEngine; + +// Credit: https://stackoverflow.com/a/41018028/2373034 +namespace IngameDebugConsole +{ + public class DebugLogLogcatListener : AndroidJavaProxy + { + private Queue queuedLogs; + private AndroidJavaObject nativeObject; + + public DebugLogLogcatListener() : base( "com.yasirkula.unity.DebugConsoleLogcatLogReceiver" ) + { + queuedLogs = new Queue( 16 ); + } + + ~DebugLogLogcatListener() + { + Stop(); + + if( nativeObject != null ) + nativeObject.Dispose(); + } + + public void Start( string arguments ) + { + if( nativeObject == null ) + nativeObject = new AndroidJavaObject( "com.yasirkula.unity.DebugConsoleLogcatLogger" ); + + nativeObject.Call( "Start", this, arguments ); + } + + public void Stop() + { + if( nativeObject != null ) + nativeObject.Call( "Stop" ); + } + + [UnityEngine.Scripting.Preserve] + public void OnLogReceived( string log ) + { + queuedLogs.Enqueue( log ); + } + + public string GetLog() + { + if( queuedLogs.Count > 0 ) + return queuedLogs.Dequeue(); + + return null; + } + } +} +#endif \ No newline at end of file diff --git a/Assets/Plugins/IngameDebugConsole/Android/DebugLogLogcatListener.cs.meta b/Assets/Plugins/IngameDebugConsole/Android/DebugLogLogcatListener.cs.meta new file mode 100644 index 00000000..8f332f61 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Android/DebugLogLogcatListener.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: dd3b7385882055d4a8c2b91deb6b2470 +timeCreated: 1510076185 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/IngameDebugConsole/Android/IngameDebugConsole.aar b/Assets/Plugins/IngameDebugConsole/Android/IngameDebugConsole.aar new file mode 100644 index 0000000000000000000000000000000000000000..759bab30c39e298e21a64411a7aa1dd65dfc7370 GIT binary patch literal 3343 zcmZ{ncTf}Bw#E}`qzMMep$dd5y-C#^nv}qij-iDBQKa{BX;MX61R*r(1`v=gNK23o z5hA@v6BJNNkSYjrId9&1&zbw)-m})4HGAg!X05+|+Xzlc#R>obK!A6)1QXbjDJJ8x z>$wc@WvF{N`FK8ZGDLYidVu!zlMHfqQ%HG7*CoxYMWXwqITHe=zG{+l1f?Rw>)kaC zOzNM`5SleY!sNQ!J$}SB|1f%xSsa(!9#!a^=I=dbM4VBx-;i3DwD*I0vslA?5=YlQ zSH-oYMs1z>R6}kv&5{z(sf+wGMkX#d-9B6<5os>&2P$%f9Hnac;*g#PL z1c3cO=c>$5<{=W}`X}cLL8tq~(~#UDIv7}?fil1C%PA`KF@Mlp+4X$RW9DL`sfGGe(HF;u zF0L|`iTT#%qd_2S`0$hWT-hPjuVs@mK&&d*)SsMP(+Yu8sjpL9D=mGP!;!ONoafrq zef@=w@2bZO*ol>Idw3{NV@D>wcdK}K3mO?m8srW2Ye@P8MMVy)eBGbB0}qpq>$D{u zk$ucZxo2B$xbQPM6mnSmA>-!z!;aCu_sk@<9-#lamLsHJLs~-us9(Xoh+Z(co_3?w zLzo{&%f`r_;KSgObppPrV$;i9{Q4CB z_ns!R{G84LDPNENT6zc4@WYW#<#Dx%E0N5zLhT_UOzK30W%Z46*tYEaIxz%Ck5DU+d-)!}r z>qFXrCdEWDBM|sLDI0f^RDOrA^c9=}RmvVrRBqeM8~b=RVoVFa>7{HmA1cF0My4i$ zehhqi#-aIKJK>4>HOmLmqpckj z!Tu-y&%Y2(mfs2vHXWPAa)Rcu!iu_dT5nX4Jtu zzI=Y#tYw9ZZSa0Y@#PTj2Xs^zyAr((y0g=!bvus}AE!KI0_|3e399s8QOo{T=-04n z7?w6$W|j<@BlT&Gc{Hky4j$&PY!fpS(;GA%Ag8?6Dq#m{dRkTXCHLaWSnVL05EZ{|tPKsDplW+_lZP)nur+QvG2p zwn-O`U0^h4a+ly~(D#Qi;b~lLUNk`Ytjs}^iQyIW*BX-{*{!LVvk#}d3hs&PI-^-L zjfgok72w-_002i2<$#S}A)+1aJ>DRMMP- z+h@&|8J3zbn(_(S3>6)GEQ@7ct>>mYw{JV!6-qlzSKQeyO3uVAn&$Rkvka`;?lRlkWT^@s58nFK`NdePP-sx0F#)Y~-a^WnyQy6E}o5c+jt0q?(V@`w81(ouBs}mb`o%!w`s1F%7R%+ocaHiUw^{_#E6U ziX3`cfE$0)hLg2-hOQ>zYKjp~m}s%?X7gQwB{BcWlct4SZuZePx%$+76EZFydm+z1 z19xk$s(E;yP(D9B68PxsXbTxn2ocje4@`Q_2c~%aYw(sQd$nn4Rv$Ak2RT#Kz3ZFH zC5(8*EKAUV?D{cbLu*pkf4$@hH{Y6_jQ=cK>t(<{gXt>QKNYbEk*qTak!s@A!a02R zuECAuc5=y#6NwmuDzB)tDrFX~j_6MbsXA-CvCvVKfL5&;1S@Fs)Z0d$VYN}@db+gk zi3I2*eY+RWm~!nQ(m@nklUn2A5hzf2kE}*o`%2tp7gZxpXYWN{uk>>-`%_hL7%l@T zOb7s_}jM$94kyfe7usUvqWnovReA;{fTt4Qn}Ii!d#)};K8UnxOP zL394=W39dhD=o1cY-=5w3-ke<6f>1EW`AsEgDD? z#@{fc4mFo~9#hE_I=yL`j6JXB?d6plxBK=TvIX1o-DKaQOv@~(RwowV7eigY9_VZK zEgRJGDK#mYqzlmFClTedqDLvP`Ut@P;_FCN zl1bu@nf%R5loYv)OM(S>`FK9`NBKBO`UUxo5C3H-VWc~vCoXBBJ3^YQG!P#VACer_ zn-Ci&ioco|Hz~LHP;XIAeW?kgxB>Y8&|ctD_wU2|U-|z8eY*dC1Oom5oWoNbPt2!* z|J3#+9Z8z|loC0symr{}cfK24z18UH||9 literal 0 HcmV?d00001 diff --git a/Assets/Plugins/IngameDebugConsole/Android/IngameDebugConsole.aar.meta b/Assets/Plugins/IngameDebugConsole/Android/IngameDebugConsole.aar.meta new file mode 100644 index 00000000..b67820ba --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Android/IngameDebugConsole.aar.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: bf909fab1c14af446b0a854de42289b2 +timeCreated: 1510086220 +licenseType: Store +PluginImporter: + serializedVersion: 2 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + isOverridable: 0 + platformData: + data: + first: + Android: Android + second: + enabled: 1 + settings: {} + data: + first: + Any: + second: + enabled: 0 + settings: {} + data: + first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/IngameDebugConsole/Editor.meta b/Assets/Plugins/IngameDebugConsole/Editor.meta new file mode 100644 index 00000000..89ddb4f2 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Editor.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 86f54622630720f4abe279acdbb8886f +folderAsset: yes +timeCreated: 1561217660 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/IngameDebugConsole/Editor/DebugLogManagerEditor.cs b/Assets/Plugins/IngameDebugConsole/Editor/DebugLogManagerEditor.cs new file mode 100644 index 00000000..1d32056f --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Editor/DebugLogManagerEditor.cs @@ -0,0 +1,195 @@ +using UnityEditor; +using UnityEngine; + +namespace IngameDebugConsole +{ + [CustomEditor( typeof( DebugLogManager ) )] + public class DebugLogManagerEditor : Editor + { + private SerializedProperty singleton; + private SerializedProperty minimumHeight; + private SerializedProperty enableHorizontalResizing; + private SerializedProperty resizeFromRight; + private SerializedProperty minimumWidth; + private SerializedProperty logWindowOpacity; + private SerializedProperty popupOpacity; + private SerializedProperty popupVisibility; + private SerializedProperty popupVisibilityLogFilter; + private SerializedProperty startMinimized; + private SerializedProperty toggleWithKey; + private SerializedProperty toggleKey; + private SerializedProperty enableSearchbar; + private SerializedProperty topSearchbarMinWidth; + private SerializedProperty receiveLogsWhileInactive; + private SerializedProperty receiveInfoLogs; + private SerializedProperty receiveWarningLogs; + private SerializedProperty receiveErrorLogs; + private SerializedProperty receiveExceptionLogs; + private SerializedProperty captureLogTimestamps; + private SerializedProperty alwaysDisplayTimestamps; + private SerializedProperty maxLogCount; + private SerializedProperty logsToRemoveAfterMaxLogCount; + private SerializedProperty queuedLogLimit; + private SerializedProperty clearCommandAfterExecution; + private SerializedProperty commandHistorySize; + private SerializedProperty showCommandSuggestions; + private SerializedProperty receiveLogcatLogsInAndroid; + private SerializedProperty logcatArguments; + private SerializedProperty avoidScreenCutout; + private SerializedProperty popupAvoidsScreenCutout; + private SerializedProperty autoFocusOnCommandInputField; + +#if UNITY_2017_3_OR_NEWER + private readonly GUIContent popupVisibilityLogFilterLabel = new GUIContent( "Log Filter", "Determines which log types will show the popup on screen" ); +#endif + private readonly GUIContent receivedLogTypesLabel = new GUIContent( "Received Log Types", "Only these logs will be received by the console window, other logs will simply be skipped" ); + private readonly GUIContent receiveInfoLogsLabel = new GUIContent( "Info" ); + private readonly GUIContent receiveWarningLogsLabel = new GUIContent( "Warning" ); + private readonly GUIContent receiveErrorLogsLabel = new GUIContent( "Error" ); + private readonly GUIContent receiveExceptionLogsLabel = new GUIContent( "Exception" ); + + private void OnEnable() + { + singleton = serializedObject.FindProperty( "singleton" ); + minimumHeight = serializedObject.FindProperty( "minimumHeight" ); + enableHorizontalResizing = serializedObject.FindProperty( "enableHorizontalResizing" ); + resizeFromRight = serializedObject.FindProperty( "resizeFromRight" ); + minimumWidth = serializedObject.FindProperty( "minimumWidth" ); + logWindowOpacity = serializedObject.FindProperty( "logWindowOpacity" ); + popupOpacity = serializedObject.FindProperty( "popupOpacity" ); + popupVisibility = serializedObject.FindProperty( "popupVisibility" ); + popupVisibilityLogFilter = serializedObject.FindProperty( "popupVisibilityLogFilter" ); + startMinimized = serializedObject.FindProperty( "startMinimized" ); + toggleWithKey = serializedObject.FindProperty( "toggleWithKey" ); +#if ENABLE_INPUT_SYSTEM && !ENABLE_LEGACY_INPUT_MANAGER + toggleKey = serializedObject.FindProperty( "toggleBinding" ); +#else + toggleKey = serializedObject.FindProperty( "toggleKey" ); +#endif + enableSearchbar = serializedObject.FindProperty( "enableSearchbar" ); + topSearchbarMinWidth = serializedObject.FindProperty( "topSearchbarMinWidth" ); + receiveLogsWhileInactive = serializedObject.FindProperty( "receiveLogsWhileInactive" ); + receiveInfoLogs = serializedObject.FindProperty( "receiveInfoLogs" ); + receiveWarningLogs = serializedObject.FindProperty( "receiveWarningLogs" ); + receiveErrorLogs = serializedObject.FindProperty( "receiveErrorLogs" ); + receiveExceptionLogs = serializedObject.FindProperty( "receiveExceptionLogs" ); + captureLogTimestamps = serializedObject.FindProperty( "captureLogTimestamps" ); + alwaysDisplayTimestamps = serializedObject.FindProperty( "alwaysDisplayTimestamps" ); + maxLogCount = serializedObject.FindProperty( "maxLogCount" ); + logsToRemoveAfterMaxLogCount = serializedObject.FindProperty( "logsToRemoveAfterMaxLogCount" ); + queuedLogLimit = serializedObject.FindProperty( "queuedLogLimit" ); + clearCommandAfterExecution = serializedObject.FindProperty( "clearCommandAfterExecution" ); + commandHistorySize = serializedObject.FindProperty( "commandHistorySize" ); + showCommandSuggestions = serializedObject.FindProperty( "showCommandSuggestions" ); + receiveLogcatLogsInAndroid = serializedObject.FindProperty( "receiveLogcatLogsInAndroid" ); + logcatArguments = serializedObject.FindProperty( "logcatArguments" ); + avoidScreenCutout = serializedObject.FindProperty( "avoidScreenCutout" ); + popupAvoidsScreenCutout = serializedObject.FindProperty( "popupAvoidsScreenCutout" ); + autoFocusOnCommandInputField = serializedObject.FindProperty( "autoFocusOnCommandInputField" ); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField( singleton ); + + EditorGUILayout.Space(); + + EditorGUILayout.PropertyField( minimumHeight ); + + EditorGUILayout.PropertyField( enableHorizontalResizing ); + if( enableHorizontalResizing.boolValue ) + { + DrawSubProperty( resizeFromRight ); + DrawSubProperty( minimumWidth ); + } + + EditorGUILayout.PropertyField( avoidScreenCutout ); + DrawSubProperty( popupAvoidsScreenCutout ); + + EditorGUILayout.Space(); + + EditorGUILayout.PropertyField( startMinimized ); + EditorGUILayout.PropertyField( logWindowOpacity ); + EditorGUILayout.PropertyField( popupOpacity ); + + EditorGUILayout.PropertyField( popupVisibility ); + if( popupVisibility.intValue == (int) PopupVisibility.WhenLogReceived ) + { + EditorGUI.indentLevel++; +#if UNITY_2017_3_OR_NEWER + Rect rect = EditorGUILayout.GetControlRect(); + EditorGUI.BeginProperty( rect, GUIContent.none, popupVisibilityLogFilter ); + popupVisibilityLogFilter.intValue = (int) (DebugLogFilter) EditorGUI.EnumFlagsField( rect, popupVisibilityLogFilterLabel, (DebugLogFilter) popupVisibilityLogFilter.intValue ); +#else + EditorGUI.BeginProperty( new Rect(), GUIContent.none, popupVisibilityLogFilter ); + EditorGUI.BeginChangeCheck(); + + bool infoLog = EditorGUILayout.Toggle( "Info", ( (DebugLogFilter) popupVisibilityLogFilter.intValue & DebugLogFilter.Info ) == DebugLogFilter.Info ); + bool warningLog = EditorGUILayout.Toggle( "Warning", ( (DebugLogFilter) popupVisibilityLogFilter.intValue & DebugLogFilter.Warning ) == DebugLogFilter.Warning ); + bool errorLog = EditorGUILayout.Toggle( "Error", ( (DebugLogFilter) popupVisibilityLogFilter.intValue & DebugLogFilter.Error ) == DebugLogFilter.Error ); + + if( EditorGUI.EndChangeCheck() ) + popupVisibilityLogFilter.intValue = ( infoLog ? (int) DebugLogFilter.Info : 0 ) | ( warningLog ? (int) DebugLogFilter.Warning : 0 ) | ( errorLog ? (int) DebugLogFilter.Error : 0 ); +#endif + EditorGUI.EndProperty(); + EditorGUI.indentLevel--; + } + + EditorGUILayout.PropertyField( toggleWithKey ); + if( toggleWithKey.boolValue ) + DrawSubProperty( toggleKey ); + + EditorGUILayout.Space(); + + EditorGUILayout.PropertyField( enableSearchbar ); + if( enableSearchbar.boolValue ) + DrawSubProperty( topSearchbarMinWidth ); + + EditorGUILayout.Space(); + + EditorGUILayout.PropertyField( receiveLogsWhileInactive ); + + EditorGUILayout.PrefixLabel( receivedLogTypesLabel ); + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField( receiveInfoLogs, receiveInfoLogsLabel ); + EditorGUILayout.PropertyField( receiveWarningLogs, receiveWarningLogsLabel ); + EditorGUILayout.PropertyField( receiveErrorLogs, receiveErrorLogsLabel ); + EditorGUILayout.PropertyField( receiveExceptionLogs, receiveExceptionLogsLabel ); + EditorGUI.indentLevel--; + + EditorGUILayout.PropertyField( receiveLogcatLogsInAndroid ); + if( receiveLogcatLogsInAndroid.boolValue ) + DrawSubProperty( logcatArguments ); + + EditorGUILayout.PropertyField( captureLogTimestamps ); + if( captureLogTimestamps.boolValue ) + DrawSubProperty( alwaysDisplayTimestamps ); + + EditorGUILayout.PropertyField( maxLogCount ); + DrawSubProperty( logsToRemoveAfterMaxLogCount ); + + EditorGUILayout.PropertyField( queuedLogLimit ); + + EditorGUILayout.Space(); + + EditorGUILayout.PropertyField( clearCommandAfterExecution ); + EditorGUILayout.PropertyField( commandHistorySize ); + EditorGUILayout.PropertyField( showCommandSuggestions ); + EditorGUILayout.PropertyField( autoFocusOnCommandInputField ); + + EditorGUILayout.Space(); + + DrawPropertiesExcluding( serializedObject, "m_Script" ); + serializedObject.ApplyModifiedProperties(); + } + + private void DrawSubProperty( SerializedProperty property ) + { + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField( property ); + EditorGUI.indentLevel--; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/IngameDebugConsole/Editor/DebugLogManagerEditor.cs.meta b/Assets/Plugins/IngameDebugConsole/Editor/DebugLogManagerEditor.cs.meta new file mode 100644 index 00000000..2fcd70ec --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Editor/DebugLogManagerEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4c23e5c521cb0c54b9a638b2a653d1d3 +timeCreated: 1561217671 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/IngameDebugConsole/Editor/IngameDebugConsole.Editor.asmdef b/Assets/Plugins/IngameDebugConsole/Editor/IngameDebugConsole.Editor.asmdef new file mode 100644 index 00000000..c2ac0063 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Editor/IngameDebugConsole.Editor.asmdef @@ -0,0 +1,17 @@ +{ + "name": "IngameDebugConsole.Editor", + "references": [ + "IngameDebugConsole.Runtime" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Plugins/IngameDebugConsole/Editor/IngameDebugConsole.Editor.asmdef.meta b/Assets/Plugins/IngameDebugConsole/Editor/IngameDebugConsole.Editor.asmdef.meta new file mode 100644 index 00000000..e2378b7e --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Editor/IngameDebugConsole.Editor.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 466e67dabd1db22468246c39eddb6c3f +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/IngameDebugConsole/IngameDebugConsole.Runtime.asmdef b/Assets/Plugins/IngameDebugConsole/IngameDebugConsole.Runtime.asmdef new file mode 100644 index 00000000..040f54bf --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/IngameDebugConsole.Runtime.asmdef @@ -0,0 +1,6 @@ +{ + "name": "IngameDebugConsole.Runtime", + "references": [ + "Unity.InputSystem" + ] +} \ No newline at end of file diff --git a/Assets/Plugins/IngameDebugConsole/IngameDebugConsole.Runtime.asmdef.meta b/Assets/Plugins/IngameDebugConsole/IngameDebugConsole.Runtime.asmdef.meta new file mode 100644 index 00000000..7e13cb2d --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/IngameDebugConsole.Runtime.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3de88c88fbbb8f944b9210d496af9762 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/IngameDebugConsole/IngameDebugConsole.prefab b/Assets/Plugins/IngameDebugConsole/IngameDebugConsole.prefab new file mode 100644 index 00000000..953be22e --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/IngameDebugConsole.prefab @@ -0,0 +1,4060 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100406 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22478474} + - component: {fileID: 22292746} + - component: {fileID: 11476740} + m_Layer: 5 + m_Name: NewInfoCount + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &109254 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 437128} + - component: {fileID: 11418932} + - component: {fileID: 11492840} + - component: {fileID: 114575087663981696} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &110786 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22460680} + - component: {fileID: 22261918} + - component: {fileID: 11431488} + - component: {fileID: 114538072837526774} + m_Layer: 5 + m_Name: DebugLogWindowResize + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &118212 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22429100} + - component: {fileID: 22207004} + - component: {fileID: 11499344} + - component: {fileID: 11414302} + - component: {fileID: 11460786} + m_Layer: 5 + m_Name: Scrollbar Vertical + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &119972 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22485076} + - component: {fileID: 11471588} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &121708 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22456566} + - component: {fileID: 222466100300644746} + - component: {fileID: 114944715489184838} + - component: {fileID: 114777798721274074} + m_Layer: 5 + m_Name: Buttons + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &123548 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22466754} + - component: {fileID: 22288586} + - component: {fileID: 11495556} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &132536 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22457152} + - component: {fileID: 22331464} + - component: {fileID: 11440770} + - component: {fileID: 11490438} + - component: {fileID: 11452418} + - component: {fileID: 114573443145823088} + m_Layer: 5 + m_Name: IngameDebugConsole + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &133140 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22428984} + - component: {fileID: 22231690} + - component: {fileID: 11400378} + - component: {fileID: 11466918} + m_Layer: 5 + m_Name: FilterLogButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &133612 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22468896} + - component: {fileID: 22255062} + - component: {fileID: 11448508} + - component: {fileID: 11477250} + m_Layer: 5 + m_Name: HideButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &135210 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22496878} + - component: {fileID: 22213036} + - component: {fileID: 11450122} + m_Layer: 5 + m_Name: ErrorCount + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &142160 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22488670} + - component: {fileID: 22236784} + - component: {fileID: 11491814} + - component: {fileID: 11437802} + m_Layer: 5 + m_Name: CollapseButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &145092 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22497984} + - component: {fileID: 22209426} + - component: {fileID: 11437286} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &148506 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22435388} + - component: {fileID: 22236120} + - component: {fileID: 11430762} + m_Layer: 5 + m_Name: WarningImage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &160714 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22439026} + - component: {fileID: 22209194} + - component: {fileID: 11486984} + m_Layer: 5 + m_Name: InfoImage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &161086 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22420992} + - component: {fileID: 22290652} + - component: {fileID: 11419610} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &163938 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22455554} + - component: {fileID: 22258478} + - component: {fileID: 11490350} + - component: {fileID: 11472314} + m_Layer: 5 + m_Name: FilterWarningButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &164562 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22485120} + - component: {fileID: 22261724} + - component: {fileID: 114435636144975300} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &165242 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22452256} + - component: {fileID: 22278414} + - component: {fileID: 11431640} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &166206 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22412306} + - component: {fileID: 22260676} + - component: {fileID: 11421290} + m_Layer: 5 + m_Name: ErrorImage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &168792 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22431144} + - component: {fileID: 22240830} + - component: {fileID: 11411602} + m_Layer: 5 + m_Name: NewErrorCount + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &170186 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22495692} + - component: {fileID: 22248262} + - component: {fileID: 11406916} + - component: {fileID: 11420596} + m_Layer: 5 + m_Name: FilterErrorButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &171206 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22482970} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &173314 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22436850} + - component: {fileID: 11405548} + - component: {fileID: 22273436} + - component: {fileID: 11410364} + - component: {fileID: 11414998} + m_Layer: 5 + m_Name: Debugs + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &176246 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22427174} + - component: {fileID: 22242412} + - component: {fileID: 11496004} + m_Layer: 5 + m_Name: WarningCount + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &176876 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22452314} + - component: {fileID: 22235120} + - component: {fileID: 11400274} + m_Layer: 5 + m_Name: LogCount + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &178532 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22414360} + - component: {fileID: 22223402} + - component: {fileID: 11410584} + - component: {fileID: 11491080} + - component: {fileID: 22505754} + m_Layer: 5 + m_Name: DebugLogPopup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &183006 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22477946} + - component: {fileID: 22230524} + - component: {fileID: 11400672} + - component: {fileID: 22509978} + m_Layer: 5 + m_Name: DebugLogWindow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &187566 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22400762} + - component: {fileID: 11453682} + m_Layer: 5 + m_Name: LogsContainer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &189604 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22426080} + - component: {fileID: 22270452} + - component: {fileID: 11419798} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &192924 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22436794} + - component: {fileID: 22260966} + - component: {fileID: 11414436} + m_Layer: 5 + m_Name: NewWarningCount + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &437128 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109254} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22457152} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &11400274 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 176876} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.83823526, g: 0.84439874, b: 0.84439874, a: 1} + m_RaycastTarget: 0 + 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: 16 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 2 + m_MaxSize: 16 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 0 +--- !u!114 &11400378 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 133140} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31617647, g: 0.31617647, b: 0.31617647, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11400672 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183006} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.21960784, g: 0.21960784, b: 0.21960784, a: 0.797} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11405548 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 173314} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1367256648, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 22400762} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 2 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.01 + m_ScrollSensitivity: 25 + m_Viewport: {fileID: 22485076} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 11414302} + m_HorizontalScrollbarVisibility: 2 + m_VerticalScrollbarVisibility: 0 + m_HorizontalScrollbarSpacing: -3 + m_VerticalScrollbarSpacing: -3 + 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 &11406916 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 170186} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31617647, g: 0.31617647, b: 0.31617647, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11410364 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 173314} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_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: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11410584 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 178532} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.30588236, g: 0.30588236, b: 0.30588236, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: b3f0d976f6d6802479d6465d11b3aa68, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11411602 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 168792} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.83823526, g: 0.84439874, b: 0.84439874, a: 1} + m_RaycastTarget: 0 + 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: 16 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 2 + m_MaxSize: 16 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 0 +--- !u!114 &11414302 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 118212} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2061169968, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11419798} + m_HandleRect: {fileID: 22426080} + m_Direction: 2 + m_Value: 0 + m_Size: 1 + m_NumberOfSteps: 0 + 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 &11414436 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 192924} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.83823526, g: 0.84439874, b: 0.84439874, a: 1} + m_RaycastTarget: 0 + 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: 16 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 2 + m_MaxSize: 16 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 0 +--- !u!114 &11414998 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 173314} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cb564dcb180e586429c57456166a76b5, type: 3} + m_Name: + m_EditorClassIdentifier: + debugsScrollRect: {fileID: 11405548} + debugLogManager: {fileID: 11452418} +--- !u!114 &11418932 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109254} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 0 + m_DragThreshold: 5 +--- !u!114 &11419610 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 161086} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.9485294, g: 0.9485294, b: 0.9485294, a: 1} + m_RaycastTarget: 0 + 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: a9fd8f6b461461f4a92eafc60921ee78, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11419798 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 189604} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.2509804, g: 0.2509804, b: 0.2509804, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11420596 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 170186} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11406916} + 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 &11421290 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 166206} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 66305a19e3614694f868c75a982e6b68, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11430762 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148506} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 05c7216c78d4dd34ebe2bac9c1e274d7, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11431488 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 110786} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31617647, g: 0.31617647, b: 0.31617647, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11431640 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 165242} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + 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: 66305a19e3614694f868c75a982e6b68, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11437286 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 145092} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + 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: 5a97d5afa6254804f81b7ba956296996, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11437802 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142160} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11491814} + 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 &11440770 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 132536} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 1 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!114 &11448508 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 133612} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31617647, g: 0.31617647, b: 0.31617647, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11450122 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 135210} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.83823526, g: 0.84439874, b: 0.84439874, a: 1} + m_RaycastTarget: 0 + 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: 16 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 2 + m_MaxSize: 16 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 0 +--- !u!114 &11452418 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 132536} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6a4f16ed905adcd4ab0d7c8c11f0d72c, type: 3} + m_Name: + m_EditorClassIdentifier: + singleton: 1 + minimumHeight: 200 + enableHorizontalResizing: 0 + resizeFromRight: 1 + minimumWidth: 240 + enablePopup: 1 + startInPopupMode: 1 + startMinimized: 0 + toggleWithKey: 1 + toggleKey: 96 + enableSearchbar: 1 + topSearchbarMinWidth: 360 + receiveLogsWhileInactive: 0 + receiveInfoLogs: 1 + receiveWarningLogs: 1 + receiveErrorLogs: 1 + receiveExceptionLogs: 1 + captureLogTimestamps: 0 + alwaysDisplayTimestamps: 0 + maxLogCount: 2147483647 + logsToRemoveAfterMaxLogCount: 16 + queuedLogLimit: 256 + clearCommandAfterExecution: 1 + commandHistorySize: 15 + showCommandSuggestions: 1 + receiveLogcatLogsInAndroid: 0 + logcatArguments: + avoidScreenCutout: 1 + popupAvoidsScreenCutout: 0 + maxLogLength: 10000 + autoFocusOnCommandInputField: 1 + logItemPrefab: {fileID: 11408050, guid: 391be5df5ef62f345bb76a1051c04da7, type: 2} + commandSuggestionPrefab: {fileID: 114169395487023046, guid: 5e66896448428cf46a1854dbdc014914, + type: 2} + infoLog: {fileID: 21300000, guid: 5a97d5afa6254804f81b7ba956296996, type: 3} + warningLog: {fileID: 21300000, guid: 05c7216c78d4dd34ebe2bac9c1e274d7, type: 3} + errorLog: {fileID: 21300000, guid: 66305a19e3614694f868c75a982e6b68, type: 3} + resizeIconAllDirections: {fileID: 21300000, guid: 7f0db3cf23c93fc4eac01cb3a52388ee, + type: 3} + resizeIconVerticalOnly: {fileID: 21300000, guid: a9fd8f6b461461f4a92eafc60921ee78, + type: 3} + collapseButtonNormalColor: {r: 0.31617647, g: 0.31617647, b: 0.31617647, a: 1} + collapseButtonSelectedColor: {r: 0.44117647, g: 0.4346886, b: 0.4346886, a: 1} + filterButtonsNormalColor: {r: 0.31617647, g: 0.31617647, b: 0.31617647, a: 1} + filterButtonsSelectedColor: {r: 0.44117647, g: 0.4346886, b: 0.4346886, a: 1} + commandSuggestionHighlightStart: + commandSuggestionHighlightEnd: + logWindowTR: {fileID: 22477946} + logItemsContainer: {fileID: 22400762} + commandSuggestionsContainer: {fileID: 224982529675224150} + commandInputField: {fileID: 114000010993257018} + hideButton: {fileID: 11477250} + clearButton: {fileID: 114466839828933532} + collapseButton: {fileID: 11491814} + filterInfoButton: {fileID: 11400378} + filterWarningButton: {fileID: 11490350} + filterErrorButton: {fileID: 11406916} + infoEntryCountText: {fileID: 11400274} + warningEntryCountText: {fileID: 11496004} + errorEntryCountText: {fileID: 11450122} + searchbar: {fileID: 224927884203097686} + searchbarSlotTop: {fileID: 224619367409363176} + searchbarSlotBottom: {fileID: 224755787573573022} + resizeButton: {fileID: 11419610} + snapToBottomButton: {fileID: 1486651836328188} + logWindowCanvasGroup: {fileID: 22509978} + popupManager: {fileID: 11491080} + logItemsScrollRect: {fileID: 11405548} + recycledListView: {fileID: 11453682} +--- !u!114 &11453682 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 187566} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ce231987d32488f43b6fb798f7df43f6, type: 3} + m_Name: + m_EditorClassIdentifier: + transformComponent: {fileID: 22400762} + viewportTransform: {fileID: 22485076} + logItemNormalColor1: {r: 0.23529412, g: 0.23529412, b: 0.23529412, a: 0.697} + logItemNormalColor2: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.697} + logItemSelectedColor: {r: 0.32941177, g: 0.4862745, b: 0.7058824, a: 0.697} +--- !u!114 &11460786 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 118212} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1862395651, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 13 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11414998} + m_MethodName: OnScrollbarDragStart + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + - eventID: 14 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11414998} + m_MethodName: OnScrollbarDragEnd + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.EventSystems.EventTrigger+TriggerEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + delegates: [] +--- !u!114 &11466918 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 133140} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11400378} + 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 &11471588 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119972} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -146154839, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &11472314 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 163938} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11490350} + 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 &11476740 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100406} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.83823526, g: 0.84439874, b: 0.84439874, a: 1} + m_RaycastTarget: 0 + 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: 16 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 2 + m_MaxSize: 16 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 0 +--- !u!114 &11477250 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 133612} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11448508} + 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 &11486984 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 160714} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 5a97d5afa6254804f81b7ba956296996, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11490350 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 163938} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31617647, g: 0.31617647, b: 0.31617647, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11490438 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 132536} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &11491080 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 178532} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 05cc4b1999716644c9308528e38e7081, type: 3} + m_Name: + m_EditorClassIdentifier: + debugManager: {fileID: 11452418} + newInfoCountText: {fileID: 11476740} + newWarningCountText: {fileID: 11414436} + newErrorCountText: {fileID: 11411602} + alertColorInfo: {r: 0.050980393, g: 0.32941177, b: 0.5647059, a: 1} + alertColorWarning: {r: 0.59607846, g: 0.45490196, b: 0, a: 1} + alertColorError: {r: 0.5647059, g: 0.050980393, b: 0.050980393, a: 1} +--- !u!114 &11491814 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142160} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31617647, g: 0.31617647, b: 0.31617647, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11492840 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109254} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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 +--- !u!114 &11495556 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 123548} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + 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: 05c7216c78d4dd34ebe2bac9c1e274d7, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11496004 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 176246} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.83823526, g: 0.84439874, b: 0.84439874, a: 1} + m_RaycastTarget: 0 + 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: 16 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 2 + m_MaxSize: 16 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 0 +--- !u!114 &11499344 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 118212} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &22207004 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 118212} +--- !u!222 &22209194 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 160714} +--- !u!222 &22209426 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 145092} +--- !u!222 &22213036 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 135210} +--- !u!222 &22223402 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 178532} +--- !u!222 &22230524 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183006} +--- !u!222 &22231690 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 133140} +--- !u!222 &22235120 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 176876} +--- !u!222 &22236120 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148506} +--- !u!222 &22236784 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142160} +--- !u!222 &22240830 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 168792} +--- !u!222 &22242412 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 176246} +--- !u!222 &22248262 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 170186} +--- !u!222 &22255062 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 133612} +--- !u!222 &22258478 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 163938} +--- !u!222 &22260676 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 166206} +--- !u!222 &22260966 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 192924} +--- !u!222 &22261724 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 164562} +--- !u!222 &22261918 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 110786} +--- !u!222 &22270452 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 189604} +--- !u!222 &22273436 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 173314} +--- !u!222 &22278414 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 165242} +--- !u!222 &22288586 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 123548} +--- !u!222 &22290652 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 161086} +--- !u!222 &22292746 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100406} +--- !u!223 &22331464 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 132536} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 1001 + m_TargetDisplay: 0 +--- !u!224 &22400762 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 187566} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22485076} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0.00012207031} + m_SizeDelta: {x: 0, y: 50} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22412306 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 166206} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22414360} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.025} + m_AnchorMax: {x: 0.45, y: 0.325} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -1, y: 0} + m_Pivot: {x: 1, y: 0.5} +--- !u!224 &22414360 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 178532} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 22439026} + - {fileID: 22435388} + - {fileID: 22412306} + - {fileID: 22478474} + - {fileID: 22436794} + - {fileID: 22431144} + m_Father: {fileID: 22457152} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 1000, y: 0} + m_SizeDelta: {x: 72, y: 72} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22420992 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 161086} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22460680} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.15, y: 0.12} + m_AnchorMax: {x: 0.85, y: 0.88} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22426080 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 189604} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22482970} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22427174 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 176246} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22455554} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.55, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -2, y: -2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22428984 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 133140} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 22497984} + - {fileID: 22452314} + m_Father: {fileID: 22456566} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22429100 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 118212} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 22482970} + m_Father: {fileID: 22436850} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 28, y: 0} + m_Pivot: {x: 1, y: 1} +--- !u!224 &22431144 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 168792} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22414360} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.45, y: 0.025} + m_AnchorMax: {x: 1, y: 0.325} + m_AnchoredPosition: {x: -1, y: 0} + m_SizeDelta: {x: -2, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22435388 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 148506} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22414360} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.35} + m_AnchorMax: {x: 0.45, y: 0.65} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -1, y: 0} + m_Pivot: {x: 1, y: 0.5} +--- !u!224 &22436794 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 192924} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22414360} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.45, y: 0.35} + m_AnchorMax: {x: 1, y: 0.65} + m_AnchoredPosition: {x: -1, y: 0} + m_SizeDelta: {x: -2, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22436850 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 173314} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 22485076} + - {fileID: 22429100} + m_Father: {fileID: 22477946} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: -72} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22439026 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 160714} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22414360} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.675} + m_AnchorMax: {x: 0.45, y: 0.975} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -1, y: 0} + m_Pivot: {x: 1, y: 0.5} +--- !u!224 &22452256 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 165242} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22495692} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0.55, y: 1} + m_AnchoredPosition: {x: 1, y: 0.5} + m_SizeDelta: {x: -2, y: -7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22452314 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 176876} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22428984} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.55, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -2, y: -2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22455554 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 163938} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 22466754} + - {fileID: 22427174} + m_Father: {fileID: 22456566} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22456566 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 121708} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 224856348943071238} + - {fileID: 22488670} + - {fileID: 224619367409363176} + - {fileID: 22428984} + - {fileID: 22455554} + - {fileID: 22495692} + - {fileID: 22468896} + m_Father: {fileID: 22477946} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 36} + m_Pivot: {x: 1, y: 1} +--- !u!224 &22457152 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 132536} + 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_Children: + - {fileID: 22477946} + - {fileID: 22414360} + - {fileID: 437128} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!224 &22460680 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 110786} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 22420992} + m_Father: {fileID: 22477946} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 64, y: 36} + m_Pivot: {x: 1, y: 0} +--- !u!224 &22466754 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 123548} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22455554} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0.55, y: 1} + m_AnchoredPosition: {x: 1, y: 0.5} + m_SizeDelta: {x: -2, y: -7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22468896 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 133612} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 22485120} + m_Father: {fileID: 22456566} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22477946 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183006} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 22456566} + - {fileID: 224755787573573022} + - {fileID: 22436850} + - {fileID: 224175272648112170} + - {fileID: 224000011255372986} + - {fileID: 22460680} + m_Father: {fileID: 22457152} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22478474 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100406} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22414360} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.45, y: 0.675} + m_AnchorMax: {x: 1, y: 0.975} + m_AnchoredPosition: {x: -1, y: 0} + m_SizeDelta: {x: -2, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22482970 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 171206} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 22426080} + m_Father: {fileID: 22429100} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22485076 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 119972} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 22400762} + - {fileID: 224170087475393432} + m_Father: {fileID: 22436850} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -29, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!224 &22485120 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 164562} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22468896} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.15, y: 0.12} + m_AnchorMax: {x: 0.85, y: 0.88} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22488670 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 142160} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 224781297716539566} + m_Father: {fileID: 22456566} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22495692 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 170186} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 22452256} + - {fileID: 22496878} + m_Father: {fileID: 22456566} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22496878 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 135210} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22495692} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.55, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -2, y: -2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22497984 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 145092} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22428984} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0.55, y: 1} + m_AnchoredPosition: {x: 1, y: 0.5} + m_SizeDelta: {x: -2, y: -7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!225 &22505754 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 178532} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!225 &22509978 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 183006} + m_Enabled: 1 + m_Alpha: 0 + m_Interactable: 1 + m_BlocksRaycasts: 0 + m_IgnoreParentGroups: 0 +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 132536} + m_IsPrefabParent: 1 +--- !u!1 &1000010562689872 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224000014081388310} + - component: {fileID: 222000011960742964} + - component: {fileID: 114000012764979206} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000013017939458 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224000014244241328} + - component: {fileID: 222000010368327546} + - component: {fileID: 114000013429243584} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000013131456698 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224000011255372986} + - component: {fileID: 114913451135716890} + - component: {fileID: 222000010912077860} + - component: {fileID: 114000013324539428} + - component: {fileID: 114000010993257018} + m_Layer: 5 + m_Name: CommandInputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1023677686285356 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224755787573573022} + - component: {fileID: 222554695212194500} + - component: {fileID: 114565304207243400} + m_Layer: 5 + m_Name: SearchbarSlotBottom + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &1046123681008450 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224757625655964314} + - component: {fileID: 222859164510105872} + - component: {fileID: 114958054160062352} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1065080943999816 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224982529675224150} + - component: {fileID: 222691170673863110} + - component: {fileID: 114095641519247160} + - component: {fileID: 114749866180229960} + m_Layer: 5 + m_Name: CommandSuggestionsContainer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &1164238372139318 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224669170713768380} + - component: {fileID: 222006696964694420} + - component: {fileID: 114590115059802926} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1197649202466618 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224927884203097686} + - component: {fileID: 114705835229318780} + - component: {fileID: 222677458225366564} + - component: {fileID: 114677982133495580} + - component: {fileID: 114664465529608634} + m_Layer: 5 + m_Name: Searchbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1316062289193744 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224781297716539566} + - component: {fileID: 222390805710412110} + - component: {fileID: 114375211676648468} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1419055185851692 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224175272648112170} + - component: {fileID: 114201206152803294} + m_Layer: 5 + m_Name: CommandSuggestions + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1486651836328188 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224170087475393432} + - component: {fileID: 222255240242372310} + - component: {fileID: 114590956026916120} + - component: {fileID: 114786672304321734} + m_Layer: 5 + m_Name: SnapToBottom + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &1608527955020594 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224619367409363176} + - component: {fileID: 222199124140025852} + - component: {fileID: 114533172895795940} + - component: {fileID: 114425215294804516} + m_Layer: 5 + m_Name: SearchbarSlotTop + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1797932393879816 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224479789572691966} + - component: {fileID: 222428315485768352} + - component: {fileID: 114704198421030094} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1828058091608518 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224856348943071238} + - component: {fileID: 222172057957339964} + - component: {fileID: 114501864645789684} + - component: {fileID: 114466839828933532} + m_Layer: 5 + m_Name: ClearButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1837270565088688 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224726770285678000} + - component: {fileID: 222974975071271426} + - component: {fileID: 114796147118253168} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1926020646996780 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224332069547574292} + - component: {fileID: 222821544406435052} + - component: {fileID: 114187932873892064} + m_Layer: 5 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &114000010993257018 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013131456698} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 575553740, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114000013324539428} + m_TextComponent: {fileID: 114000012764979206} + m_Placeholder: {fileID: 114000013429243584} + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 2 + m_HideMobileInput: 0 + m_CharacterValidation: 0 + m_CharacterLimit: 0 + 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} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 +--- !u!114 &114000012764979206 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010562689872} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.83823526, g: 0.84439874, b: 0.84439874, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 16 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 2 + m_MaxSize: 16 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!114 &114000013324539428 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013131456698} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31617647, g: 0.31617647, b: 0.31617647, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114000013429243584 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013017939458} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.83823526, g: 0.84439874, b: 0.84439874, a: 0.653} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 16 + m_FontStyle: 2 + m_BestFit: 1 + m_MinSize: 2 + m_MaxSize: 16 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: (type help for list of commands) +--- !u!114 &114095641519247160 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1065080943999816} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.334, g: 0.3286984, b: 0.3286984, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114187932873892064 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1926020646996780} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.9485294, g: 0.9485294, b: 0.9485294, a: 1} + m_RaycastTarget: 0 + 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: e04e6c970b950d946a782ea08e5f971d, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114201206152803294 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1419055185851692} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 6 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 +--- !u!114 &114375211676648468 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1316062289193744} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.9485294, g: 0.9485294, b: 0.9485294, a: 1} + m_RaycastTarget: 0 + 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: d1546f8db185caf4dafcfa58efa3ba2c, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114425215294804516 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1608527955020594} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: 2 + m_FlexibleHeight: -1 +--- !u!114 &114435636144975300 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 164562} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + 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: b3905a73a6672d9449647aaf036e23fc, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114466839828933532 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1828058091608518} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114501864645789684} + 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 &114501864645789684 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1828058091608518} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31617647, g: 0.31617647, b: 0.31617647, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114533172895795940 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1608527955020594} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.24264705, g: 0.24443123, b: 0.24443123, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114538072837526774 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 110786} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6565f2084f5aef44abe57c988745b9c3, type: 3} + m_Name: + m_EditorClassIdentifier: + debugManager: {fileID: 11452418} +--- !u!114 &114565304207243400 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1023677686285356} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.31617647, g: 0.31617647, b: 0.31617647, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114573443145823088 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 132536} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c3cc1b407f337e641ad32a2e91d5b478, type: 3} + m_Name: + m_EditorClassIdentifier: + embeddedEventSystem: {fileID: 109254} +--- !u!114 &114575087663981696 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 109254} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1327945023, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &114590115059802926 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1164238372139318} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.83823526, g: 0.84439874, b: 0.84439874, a: 0.653} + m_RaycastTarget: 0 + 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: 16 + m_FontStyle: 2 + m_BestFit: 1 + m_MinSize: 2 + m_MaxSize: 16 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Search... +--- !u!114 &114590956026916120 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1486651836328188} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.30980393, g: 0.30980393, b: 0.30980393, a: 0.6862745} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: b902f763d0e47364dae25207b7e47800, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114664465529608634 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1197649202466618} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 575553740, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 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_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_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114677982133495580} + m_TextComponent: {fileID: 114958054160062352} + m_Placeholder: {fileID: 114590115059802926} + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 0 + m_CharacterLimit: 0 + 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} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 +--- !u!114 &114677982133495580 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1197649202466618} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114704198421030094 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1797932393879816} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.9485294, g: 0.9485294, b: 0.9485294, a: 1} + m_RaycastTarget: 0 + 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: 7a9e374666ad6cc47807bb001844f3d8, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114705835229318780 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1197649202466618} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 049982f63fd78c042851caecd952f3f4, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &114749866180229960 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1065080943999816} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 10 + m_Right: 10 + m_Top: 10 + m_Bottom: 10 + m_ChildAlignment: 6 + m_Spacing: 2 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 +--- !u!114 &114777798721274074 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 121708} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 +--- !u!114 &114786672304321734 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1486651836328188} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 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_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_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114590956026916120} + 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 &114796147118253168 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1837270565088688} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.9485294, g: 0.9485294, b: 0.9485294, a: 1} + m_RaycastTarget: 0 + 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: 066c0b04be98cd348abb79add91d42bf, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114913451135716890 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013131456698} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 049982f63fd78c042851caecd952f3f4, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &114944715489184838 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 121708} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_RaycastTarget: 0 + 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: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114958054160062352 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1046123681008450} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.8392157, g: 0.84313726, b: 0.84313726, a: 1} + m_RaycastTarget: 0 + 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: 16 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!222 &222000010368327546 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013017939458} +--- !u!222 &222000010912077860 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013131456698} +--- !u!222 &222000011960742964 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010562689872} +--- !u!222 &222006696964694420 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1164238372139318} +--- !u!222 &222172057957339964 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1828058091608518} +--- !u!222 &222199124140025852 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1608527955020594} +--- !u!222 &222255240242372310 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1486651836328188} +--- !u!222 &222390805710412110 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1316062289193744} +--- !u!222 &222428315485768352 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1797932393879816} +--- !u!222 &222466100300644746 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 121708} +--- !u!222 &222554695212194500 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1023677686285356} +--- !u!222 &222677458225366564 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1197649202466618} +--- !u!222 &222691170673863110 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1065080943999816} +--- !u!222 &222821544406435052 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1926020646996780} +--- !u!222 &222859164510105872 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1046123681008450} +--- !u!222 &222974975071271426 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1837270565088688} +--- !u!224 &224000011255372986 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013131456698} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 224000014244241328} + - {fileID: 224000014081388310} + m_Father: {fileID: 22477946} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: -32, y: 0} + m_SizeDelta: {x: -64, y: 36} + m_Pivot: {x: 0.5, y: 0} +--- !u!224 &224000014081388310 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010562689872} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224000011255372986} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -16} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224000014244241328 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013017939458} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224000011255372986} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -16} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224170087475393432 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1486651836328188} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 224726770285678000} + m_Father: {fileID: 22485076} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 8} + m_SizeDelta: {x: 42, y: 42} + m_Pivot: {x: 0.5, y: 0} +--- !u!224 &224175272648112170 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1419055185851692} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 224982529675224150} + m_Father: {fileID: 22477946} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 36} + m_SizeDelta: {x: 0, y: 5000} + m_Pivot: {x: 0, y: 0} +--- !u!224 &224332069547574292 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1926020646996780} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224927884203097686} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 2, y: 0} + m_SizeDelta: {x: 25, y: -6} + m_Pivot: {x: 0, y: 0.5} +--- !u!224 &224479789572691966 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1797932393879816} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224856348943071238} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.15, y: 0.12} + m_AnchorMax: {x: 0.85, y: 0.88} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224619367409363176 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1608527955020594} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 224927884203097686} + m_Father: {fileID: 22456566} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224669170713768380 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1164238372139318} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224927884203097686} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 15, y: -0.5} + m_SizeDelta: {x: -30, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224726770285678000 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1837270565088688} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224170087475393432} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.2, y: 0.2} + m_AnchorMax: {x: 0.8, y: 0.8} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224755787573573022 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1023677686285356} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22477946} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -36} + m_SizeDelta: {x: 0, y: 36} + m_Pivot: {x: 0.5, y: 1} +--- !u!224 &224757625655964314 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1046123681008450} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224927884203097686} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 15, y: -0.5} + m_SizeDelta: {x: -30, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224781297716539566 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1316062289193744} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22488670} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.15, y: 0.12} + m_AnchorMax: {x: 0.85, y: 0.88} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224856348943071238 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1828058091608518} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 224479789572691966} + m_Father: {fileID: 22456566} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224927884203097686 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1197649202466618} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 224332069547574292} + - {fileID: 224669170713768380} + - {fileID: 224757625655964314} + m_Father: {fileID: 224619367409363176} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224982529675224150 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1065080943999816} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224175272648112170} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: -0.00005340576} + m_SizeDelta: {x: 24, y: 24} + m_Pivot: {x: 0, y: 0} diff --git a/Assets/Plugins/IngameDebugConsole/IngameDebugConsole.prefab.meta b/Assets/Plugins/IngameDebugConsole/IngameDebugConsole.prefab.meta new file mode 100644 index 00000000..cb0d55bc --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/IngameDebugConsole.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 67117722a812a2e46ab8cb8eafbf5f5e +timeCreated: 1466014755 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/IngameDebugConsole/Prefabs.meta b/Assets/Plugins/IngameDebugConsole/Prefabs.meta new file mode 100644 index 00000000..5eae9ada --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Prefabs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7dbc36665bc0d684db9a4447e27a7a4b +folderAsset: yes +timeCreated: 1520417401 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/IngameDebugConsole/Prefabs/CommandSuggestion.prefab b/Assets/Plugins/IngameDebugConsole/Prefabs/CommandSuggestion.prefab new file mode 100644 index 00000000..0f8cf147 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Prefabs/CommandSuggestion.prefab @@ -0,0 +1,87 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1386426139070838} + m_IsPrefabParent: 1 +--- !u!1 &1386426139070838 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224955737853170496} + - component: {fileID: 222541766812100524} + - component: {fileID: 114169395487023046} + m_Layer: 5 + m_Name: CommandSuggestion + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &114169395487023046 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1386426139070838} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.83823526, g: 0.84439874, b: 0.84439874, a: 1} + m_RaycastTarget: 0 + 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: 16 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: help +--- !u!222 &222541766812100524 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1386426139070838} +--- !u!224 &224955737853170496 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1386426139070838} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} diff --git a/Assets/Plugins/IngameDebugConsole/Prefabs/CommandSuggestion.prefab.meta b/Assets/Plugins/IngameDebugConsole/Prefabs/CommandSuggestion.prefab.meta new file mode 100644 index 00000000..44072226 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Prefabs/CommandSuggestion.prefab.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 5e66896448428cf46a1854dbdc014914 +timeCreated: 1601390136 +licenseType: Store +NativeFormatImporter: + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/IngameDebugConsole/Prefabs/DebugLogItem.prefab b/Assets/Plugins/IngameDebugConsole/Prefabs/DebugLogItem.prefab new file mode 100644 index 00000000..c4af8f96 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Prefabs/DebugLogItem.prefab @@ -0,0 +1,640 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &104862 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22461494} + - component: {fileID: 22233942} + - component: {fileID: 11411806} + m_Layer: 5 + m_Name: LogCount + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &151462 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22420350} + - component: {fileID: 22200920} + - component: {fileID: 11432936} + m_Layer: 5 + m_Name: LogCountText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &152362 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22427300} + - component: {fileID: 22262284} + - component: {fileID: 11404142} + m_Layer: 5 + m_Name: LogType + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &166880 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 22479264} + - component: {fileID: 22288988} + - component: {fileID: 11459012} + - component: {fileID: 11408050} + - component: {fileID: 11456372} + - component: {fileID: 225819852034701160} + m_Layer: 5 + m_Name: DebugLogItem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &11404142 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152362} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + 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: 33b115bf5efdfa04d8e2e0b70a6643cd, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11408050 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 166880} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d2ea291be9de70a4abfec595203c96c1, type: 3} + m_Name: + m_EditorClassIdentifier: + transformComponent: {fileID: 22479264} + imageComponent: {fileID: 11459012} + canvasGroupComponent: {fileID: 225819852034701160} + logText: {fileID: 114694493629914950} + logTypeImage: {fileID: 11404142} + logCountParent: {fileID: 104862} + logCountText: {fileID: 11432936} + copyLogButton: {fileID: 224006190298411330} +--- !u!114 &11411806 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104862} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.42647058, g: 0.42647058, b: 0.42647058, a: 1} + m_RaycastTarget: 0 + 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: b3f0d976f6d6802479d6465d11b3aa68, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11432936 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 151462} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.83823526, g: 0.84439874, b: 0.84439874, a: 1} + m_RaycastTarget: 0 + 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: 16 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 1 + m_MaxSize: 16 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 1 +--- !u!114 &11456372 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 166880} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11459012} + 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 &11459012 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 166880} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.23529412, g: 0.23529412, b: 0.23529412, a: 0.697} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 98e8e1cf8dc7dbf469617c2e40c8a944, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &22200920 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 151462} +--- !u!222 &22233942 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104862} +--- !u!222 &22262284 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152362} +--- !u!222 &22288988 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 166880} +--- !u!224 &22420350 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 151462} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22461494} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -2, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22427300 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152362} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22479264} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 18, y: 0} + m_SizeDelta: {x: 25, y: 25} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22461494 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 104862} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 22420350} + m_Father: {fileID: 22479264} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -28, y: 0} + m_SizeDelta: {x: 38, y: 28} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &22479264 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 166880} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 22427300} + - {fileID: 224737693311518052} + - {fileID: 22461494} + - {fileID: 224006190298411330} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 35} + m_Pivot: {x: 0, y: 1} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 166880} + m_IsPrefabParent: 1 +--- !u!1 &1396836967994216 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224006190298411330} + - component: {fileID: 222870443111501910} + - component: {fileID: 114119781176956926} + - component: {fileID: 114694923173451186} + m_Layer: 5 + m_Name: CopyLogButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!1 &1503640463151286 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224887990600088790} + - component: {fileID: 222313182602304162} + - component: {fileID: 114549765989288124} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1785910143472904 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224737693311518052} + - component: {fileID: 222175805939703770} + - component: {fileID: 114694493629914950} + m_Layer: 5 + m_Name: LogText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &114119781176956926 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1396836967994216} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.42647058, g: 0.42647058, b: 0.42647058, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 066d3840badf4d24dba1d42b4c59b888, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114549765989288124 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1503640463151286} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.83823526, g: 0.84439874, b: 0.84439874, a: 1} + m_RaycastTarget: 0 + 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: 16 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Copy +--- !u!114 &114694493629914950 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1785910143472904} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.83823526, g: 0.84439874, b: 0.84439874, a: 1} + m_RaycastTarget: 0 + 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: 15 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Debug.Log summary +--- !u!114 &114694923173451186 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1396836967994216} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 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_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_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114119781176956926} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 11408050} + m_MethodName: CopyLog + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!222 &222175805939703770 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1785910143472904} +--- !u!222 &222313182602304162 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1503640463151286} +--- !u!222 &222870443111501910 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1396836967994216} +--- !u!224 &224006190298411330 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1396836967994216} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 224887990600088790} + m_Father: {fileID: 22479264} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 2} + m_SizeDelta: {x: -70, y: 36} + m_Pivot: {x: 0.5, y: 0} +--- !u!224 &224737693311518052 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1785910143472904} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22479264} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 15, y: 0} + m_SizeDelta: {x: -40, y: -2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224887990600088790 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1503640463151286} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224006190298411330} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!225 &225819852034701160 +CanvasGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 166880} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 diff --git a/Assets/Plugins/IngameDebugConsole/Prefabs/DebugLogItem.prefab.meta b/Assets/Plugins/IngameDebugConsole/Prefabs/DebugLogItem.prefab.meta new file mode 100644 index 00000000..b2a75778 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Prefabs/DebugLogItem.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 391be5df5ef62f345bb76a1051c04da7 +timeCreated: 1465919887 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/IngameDebugConsole/README.txt b/Assets/Plugins/IngameDebugConsole/README.txt new file mode 100644 index 00000000..4f94250d --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/README.txt @@ -0,0 +1,7 @@ += In-game Debug Console (v1.7.0) = + +Documentation: https://github.com/yasirkula/UnityIngameDebugConsole +FAQ: https://github.com/yasirkula/UnityIngameDebugConsole#faq +E-mail: yasirkula@gmail.com + +You can simply place the IngameDebugConsole prefab to your scene. Hovering the cursor over its properties in the Inspector will reveal explanatory tooltips. \ No newline at end of file diff --git a/Assets/Plugins/IngameDebugConsole/README.txt.meta b/Assets/Plugins/IngameDebugConsole/README.txt.meta new file mode 100644 index 00000000..21f8dae5 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/README.txt.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: edf2ac73f7bc3064c96d53009106dc53 +timeCreated: 1563307881 +licenseType: Store +TextScriptImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/IngameDebugConsole/Scripts.meta b/Assets/Plugins/IngameDebugConsole/Scripts.meta new file mode 100644 index 00000000..1040eb3e --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 860c08388401a6d4e858fe4910ea9337 +folderAsset: yes +timeCreated: 1465930645 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/Attributes.meta b/Assets/Plugins/IngameDebugConsole/Scripts/Attributes.meta new file mode 100644 index 00000000..33576aef --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/Attributes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7de74709c0f949d42853e89b41f0c939 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleAttribute.cs b/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleAttribute.cs new file mode 100644 index 00000000..46f5e470 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleAttribute.cs @@ -0,0 +1,21 @@ +using System; +using System.Reflection; + +namespace IngameDebugConsole +{ + public abstract class ConsoleAttribute : Attribute + { + public MethodInfo Method { get; private set; } + public abstract int Order { get; } + + public void SetMethod(MethodInfo method) + { + if (Method != null) + throw new Exception("Method was already initialized."); + + Method = method; + } + + public abstract void Load(); + } +} \ No newline at end of file diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleAttribute.cs.meta b/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleAttribute.cs.meta new file mode 100644 index 00000000..db780c46 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleAttribute.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: efc4511f2eea8034ca3a0a29cac8f554 \ No newline at end of file diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleCustomTypeParserAttribute.cs b/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleCustomTypeParserAttribute.cs new file mode 100644 index 00000000..412c65fa --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleCustomTypeParserAttribute.cs @@ -0,0 +1,24 @@ +using System; + +namespace IngameDebugConsole +{ + [AttributeUsage(AttributeTargets.Method, Inherited = false, AllowMultiple = false)] + public class ConsoleCustomTypeParserAttribute : ConsoleAttribute + { + public readonly Type type; + public readonly string readableName; + + public override int Order { get { return 0; } } + + public ConsoleCustomTypeParserAttribute(Type type, string readableName = null) + { + this.type = type; + this.readableName = readableName; + } + + public override void Load() + { + DebugLogConsole.AddCustomParameterType(type, (DebugLogConsole.ParseFunction)Delegate.CreateDelegate(typeof(DebugLogConsole.ParseFunction), Method), readableName); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleCustomTypeParserAttribute.cs.meta b/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleCustomTypeParserAttribute.cs.meta new file mode 100644 index 00000000..7b97bf43 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleCustomTypeParserAttribute.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: b014aa072d9631848babd5dafb325d3d \ No newline at end of file diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleMethodAttribute.cs b/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleMethodAttribute.cs new file mode 100644 index 00000000..7a024c84 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleMethodAttribute.cs @@ -0,0 +1,30 @@ +using System; + +namespace IngameDebugConsole +{ + [AttributeUsage( AttributeTargets.Method, Inherited = false, AllowMultiple = true )] + public class ConsoleMethodAttribute : ConsoleAttribute + { + private string m_command; + private string m_description; + private string[] m_parameterNames; + + public string Command { get { return m_command; } } + public string Description { get { return m_description; } } + public string[] ParameterNames { get { return m_parameterNames; } } + + public override int Order { get { return 1; } } + + public ConsoleMethodAttribute( string command, string description, params string[] parameterNames ) + { + m_command = command; + m_description = description; + m_parameterNames = parameterNames; + } + + public override void Load() + { + DebugLogConsole.AddCommand(Command, Description, Method, null, ParameterNames); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleMethodAttribute.cs.meta b/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleMethodAttribute.cs.meta new file mode 100644 index 00000000..a55a26b2 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/Attributes/ConsoleMethodAttribute.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 324bb39c0bff0f74fa42f83e91f07e3a +timeCreated: 1520710946 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/CircularBuffer.cs b/Assets/Plugins/IngameDebugConsole/Scripts/CircularBuffer.cs new file mode 100644 index 00000000..5978084c --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/CircularBuffer.cs @@ -0,0 +1,304 @@ +using System; +using UnityEngine; + +namespace IngameDebugConsole +{ + public class CircularBuffer + { + private readonly T[] array; + private int startIndex; + + public int Count { get; private set; } + public T this[int index] { get { return array[( startIndex + index ) % array.Length]; } } + + public CircularBuffer( int capacity ) + { + array = new T[capacity]; + } + + // Old elements are overwritten when capacity is reached + public void Add( T value ) + { + if( Count < array.Length ) + array[Count++] = value; + else + { + array[startIndex] = value; + if( ++startIndex >= array.Length ) + startIndex = 0; + } + } + } + + public class DynamicCircularBuffer + { + private T[] array; + private int startIndex; + + public int Count { get; private set; } + public int Capacity { get { return array.Length; } } + + public T this[int index] + { + get { return array[( startIndex + index ) % array.Length]; } + set { array[( startIndex + index ) % array.Length] = value; } + } + + public DynamicCircularBuffer( int initialCapacity = 2 ) + { + array = new T[initialCapacity]; + } + + private void SetCapacity( int capacity ) + { + T[] newArray = new T[capacity]; + if( Count > 0 ) + { + int elementsBeforeWrap = Mathf.Min( Count, array.Length - startIndex ); + Array.Copy( array, startIndex, newArray, 0, elementsBeforeWrap ); + if( elementsBeforeWrap < Count ) + Array.Copy( array, 0, newArray, elementsBeforeWrap, Count - elementsBeforeWrap ); + } + + array = newArray; + startIndex = 0; + } + + /// Inserts the value to the beginning of the collection. + public void AddFirst( T value ) + { + if( array.Length == Count ) + SetCapacity( Mathf.Max( array.Length * 2, 4 ) ); + + startIndex = ( startIndex > 0 ) ? ( startIndex - 1 ) : ( array.Length - 1 ); + array[startIndex] = value; + Count++; + } + + /// Adds the value to the end of the collection. + public void Add( T value ) + { + if( array.Length == Count ) + SetCapacity( Mathf.Max( array.Length * 2, 4 ) ); + + this[Count++] = value; + } + + public void AddRange( DynamicCircularBuffer other ) + { + if( other.Count == 0 ) + return; + + if( array.Length < Count + other.Count ) + SetCapacity( Mathf.Max( array.Length * 2, Count + other.Count ) ); + + int insertStartIndex = ( startIndex + Count ) % array.Length; + int elementsBeforeWrap = Mathf.Min( other.Count, array.Length - insertStartIndex ); + int otherElementsBeforeWrap = Mathf.Min( other.Count, other.array.Length - other.startIndex ); + + Array.Copy( other.array, other.startIndex, array, insertStartIndex, Mathf.Min( elementsBeforeWrap, otherElementsBeforeWrap ) ); + if( elementsBeforeWrap < otherElementsBeforeWrap ) // This array wrapped before the other array + Array.Copy( other.array, other.startIndex + elementsBeforeWrap, array, 0, otherElementsBeforeWrap - elementsBeforeWrap ); + else if( elementsBeforeWrap > otherElementsBeforeWrap ) // The other array wrapped before this array + Array.Copy( other.array, 0, array, insertStartIndex + otherElementsBeforeWrap, elementsBeforeWrap - otherElementsBeforeWrap ); + + int copiedElements = Mathf.Max( elementsBeforeWrap, otherElementsBeforeWrap ); + if( copiedElements < other.Count ) // Both arrays wrapped and there's still some elements left to copy + Array.Copy( other.array, copiedElements - otherElementsBeforeWrap, array, copiedElements - elementsBeforeWrap, other.Count - copiedElements ); + + Count += other.Count; + } + + public T RemoveFirst() + { + T element = array[startIndex]; + array[startIndex] = default( T ); + + if( ++startIndex == array.Length ) + startIndex = 0; + + Count--; + return element; + } + + public T RemoveLast() + { + int index = ( startIndex + Count - 1 ) % array.Length; + T element = array[index]; + array[index] = default( T ); + + Count--; + return element; + } + + public int RemoveAll( Predicate shouldRemoveElement ) + { + return RemoveAll( shouldRemoveElement, null, null ); + } + + public int RemoveAll( Predicate shouldRemoveElement, Action onElementIndexChanged, DynamicCircularBuffer synchronizedBuffer ) + { + Y[] synchronizedArray = ( synchronizedBuffer != null ) ? synchronizedBuffer.array : null; + int elementsBeforeWrap = Mathf.Min( Count, array.Length - startIndex ); + int removedElements = 0; + int i = startIndex, newIndex = startIndex, endIndex = startIndex + elementsBeforeWrap; + for( ; i < endIndex; i++ ) + { + if( shouldRemoveElement( array[i] ) ) + removedElements++; + else + { + if( removedElements > 0 ) + { + T element = array[i]; + array[newIndex] = element; + + if( synchronizedArray != null ) + synchronizedArray[newIndex] = synchronizedArray[i]; + + if( onElementIndexChanged != null ) + onElementIndexChanged( element, newIndex - startIndex ); + } + + newIndex++; + } + } + + i = 0; + endIndex = Count - elementsBeforeWrap; + + if( newIndex < array.Length ) + { + for( ; i < endIndex; i++ ) + { + if( shouldRemoveElement( array[i] ) ) + removedElements++; + else + { + T element = array[i]; + array[newIndex] = element; + + if( synchronizedArray != null ) + synchronizedArray[newIndex] = synchronizedArray[i]; + + if( onElementIndexChanged != null ) + onElementIndexChanged( element, newIndex - startIndex ); + + if( ++newIndex == array.Length ) + { + i++; + break; + } + } + } + } + + if( newIndex == array.Length ) + { + newIndex = 0; + for( ; i < endIndex; i++ ) + { + if( shouldRemoveElement( array[i] ) ) + removedElements++; + else + { + if( removedElements > 0 ) + { + T element = array[i]; + array[newIndex] = element; + + if( synchronizedArray != null ) + synchronizedArray[newIndex] = synchronizedArray[i]; + + if( onElementIndexChanged != null ) + onElementIndexChanged( element, newIndex + elementsBeforeWrap ); + } + + newIndex++; + } + } + } + + TrimEnd( removedElements ); + if( synchronizedBuffer != null ) + synchronizedBuffer.TrimEnd( removedElements ); + + return removedElements; + } + + public void TrimStart( int trimCount, Action perElementCallback = null ) + { + TrimInternal( trimCount, startIndex, perElementCallback ); + startIndex = ( startIndex + trimCount ) % array.Length; + } + + public void TrimEnd( int trimCount, Action perElementCallback = null ) + { + TrimInternal( trimCount, ( startIndex + Count - trimCount ) % array.Length, perElementCallback ); + } + + private void TrimInternal( int trimCount, int startIndex, Action perElementCallback ) + { + int elementsBeforeWrap = Mathf.Min( trimCount, array.Length - startIndex ); + if( perElementCallback == null ) + { + Array.Clear( array, startIndex, elementsBeforeWrap ); + if( elementsBeforeWrap < trimCount ) + Array.Clear( array, 0, trimCount - elementsBeforeWrap ); + } + else + { + for( int i = startIndex, endIndex = startIndex + elementsBeforeWrap; i < endIndex; i++ ) + { + perElementCallback( array[i] ); + array[i] = default( T ); + } + + for( int i = 0, endIndex = trimCount - elementsBeforeWrap; i < endIndex; i++ ) + { + perElementCallback( array[i] ); + array[i] = default( T ); + } + } + + Count -= trimCount; + } + + public void Clear() + { + int elementsBeforeWrap = Mathf.Min( Count, array.Length - startIndex ); + Array.Clear( array, startIndex, elementsBeforeWrap ); + if( elementsBeforeWrap < Count ) + Array.Clear( array, 0, Count - elementsBeforeWrap ); + + startIndex = 0; + Count = 0; + } + + public int IndexOf( T value ) + { + int elementsBeforeWrap = Mathf.Min( Count, array.Length - startIndex ); + int index = Array.IndexOf( array, value, startIndex, elementsBeforeWrap ); + if( index >= 0 ) + return index - startIndex; + + if( elementsBeforeWrap < Count ) + { + index = Array.IndexOf( array, value, 0, Count - elementsBeforeWrap ); + if( index >= 0 ) + return index + elementsBeforeWrap; + } + + return -1; + } + + public void ForEach( Action action ) + { + int elementsBeforeWrap = Mathf.Min( Count, array.Length - startIndex ); + for( int i = startIndex, endIndex = startIndex + elementsBeforeWrap; i < endIndex; i++ ) + action( array[i] ); + for( int i = 0, endIndex = Count - elementsBeforeWrap; i < endIndex; i++ ) + action( array[i] ); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/CircularBuffer.cs.meta b/Assets/Plugins/IngameDebugConsole/Scripts/CircularBuffer.cs.meta new file mode 100644 index 00000000..cbd5ebc8 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/CircularBuffer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6136cb3c00eac0149901b8e7f2fecef8 +timeCreated: 1550943949 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/Commands.meta b/Assets/Plugins/IngameDebugConsole/Scripts/Commands.meta new file mode 100644 index 00000000..1d1ef408 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/Commands.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bb9b6e1ab379cec46bfae8f8abcc1f45 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/Commands/PlayerPrefsCommands.cs b/Assets/Plugins/IngameDebugConsole/Scripts/Commands/PlayerPrefsCommands.cs new file mode 100644 index 00000000..bc9eec5d --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/Commands/PlayerPrefsCommands.cs @@ -0,0 +1,60 @@ +#if IDG_ENABLE_HELPER_COMMANDS +using UnityEngine; + +namespace IngameDebugConsole.Commands +{ + public class PlayerPrefsCommands + { + [ConsoleMethod( "prefs.int", "Returns the value of an Integer PlayerPrefs field" ), UnityEngine.Scripting.Preserve] + public static string PlayerPrefsGetInt( string key ) + { + if( !PlayerPrefs.HasKey( key ) ) return "Key Not Found"; + return PlayerPrefs.GetInt( key ).ToString(); + } + + [ConsoleMethod( "prefs.int", "Sets the value of an Integer PlayerPrefs field" ), UnityEngine.Scripting.Preserve] + public static void PlayerPrefsSetInt( string key, int value ) + { + PlayerPrefs.SetInt( key, value ); + } + + [ConsoleMethod( "prefs.float", "Returns the value of a Float PlayerPrefs field" ), UnityEngine.Scripting.Preserve] + public static string PlayerPrefsGetFloat( string key ) + { + if( !PlayerPrefs.HasKey( key ) ) return "Key Not Found"; + return PlayerPrefs.GetFloat( key ).ToString(); + } + + [ConsoleMethod( "prefs.float", "Sets the value of a Float PlayerPrefs field" ), UnityEngine.Scripting.Preserve] + public static void PlayerPrefsSetFloat( string key, float value ) + { + PlayerPrefs.SetFloat( key, value ); + } + + [ConsoleMethod( "prefs.string", "Returns the value of a String PlayerPrefs field" ), UnityEngine.Scripting.Preserve] + public static string PlayerPrefsGetString( string key ) + { + if( !PlayerPrefs.HasKey( key ) ) return "Key Not Found"; + return PlayerPrefs.GetString( key ); + } + + [ConsoleMethod( "prefs.string", "Sets the value of a String PlayerPrefs field" ), UnityEngine.Scripting.Preserve] + public static void PlayerPrefsSetString( string key, string value ) + { + PlayerPrefs.SetString( key, value ); + } + + [ConsoleMethod( "prefs.delete", "Deletes a PlayerPrefs field" ), UnityEngine.Scripting.Preserve] + public static void PlayerPrefsDelete( string key ) + { + PlayerPrefs.DeleteKey( key ); + } + + [ConsoleMethod( "prefs.clear", "Deletes all PlayerPrefs fields" ), UnityEngine.Scripting.Preserve] + public static void PlayerPrefsClear() + { + PlayerPrefs.DeleteAll(); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/Commands/PlayerPrefsCommands.cs.meta b/Assets/Plugins/IngameDebugConsole/Scripts/Commands/PlayerPrefsCommands.cs.meta new file mode 100644 index 00000000..dfbaa4fb --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/Commands/PlayerPrefsCommands.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 33fb3ee25c8764f4c905fa3ac7c4eb89 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/Commands/SceneCommands.cs b/Assets/Plugins/IngameDebugConsole/Scripts/Commands/SceneCommands.cs new file mode 100644 index 00000000..95cb5bf2 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/Commands/SceneCommands.cs @@ -0,0 +1,60 @@ +#if IDG_ENABLE_HELPER_COMMANDS +using UnityEngine; +using UnityEngine.SceneManagement; + +namespace IngameDebugConsole.Commands +{ + public class SceneCommands + { + [ConsoleMethod( "scene.load", "Loads a scene" ), UnityEngine.Scripting.Preserve] + public static void LoadScene( string sceneName ) + { + LoadSceneInternal( sceneName, false, LoadSceneMode.Single ); + } + + [ConsoleMethod( "scene.load", "Loads a scene" ), UnityEngine.Scripting.Preserve] + public static void LoadScene( string sceneName, LoadSceneMode mode ) + { + LoadSceneInternal( sceneName, false, mode ); + } + + [ConsoleMethod( "scene.loadasync", "Loads a scene asynchronously" ), UnityEngine.Scripting.Preserve] + public static void LoadSceneAsync( string sceneName ) + { + LoadSceneInternal( sceneName, true, LoadSceneMode.Single ); + } + + [ConsoleMethod( "scene.loadasync", "Loads a scene asynchronously" ), UnityEngine.Scripting.Preserve] + public static void LoadSceneAsync( string sceneName, LoadSceneMode mode ) + { + LoadSceneInternal( sceneName, true, mode ); + } + + private static void LoadSceneInternal( string sceneName, bool isAsync, LoadSceneMode mode ) + { + if( SceneManager.GetSceneByName( sceneName ).IsValid() ) + { + Debug.Log( "Scene " + sceneName + " is already loaded" ); + return; + } + + if( isAsync ) + SceneManager.LoadSceneAsync( sceneName, mode ); + else + SceneManager.LoadScene( sceneName, mode ); + } + + [ConsoleMethod( "scene.unload", "Unloads a scene" ), UnityEngine.Scripting.Preserve] + public static void UnloadScene( string sceneName ) + { + SceneManager.UnloadSceneAsync( sceneName ); + } + + [ConsoleMethod( "scene.restart", "Restarts the active scene" ), UnityEngine.Scripting.Preserve] + public static void RestartScene() + { + SceneManager.LoadScene( SceneManager.GetActiveScene().name, LoadSceneMode.Single ); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/Commands/SceneCommands.cs.meta b/Assets/Plugins/IngameDebugConsole/Scripts/Commands/SceneCommands.cs.meta new file mode 100644 index 00000000..d1003b27 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/Commands/SceneCommands.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 45984eacd62d9a3489fd62689265a23c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/Commands/TimeCommands.cs b/Assets/Plugins/IngameDebugConsole/Scripts/Commands/TimeCommands.cs new file mode 100644 index 00000000..b6c8f4fa --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/Commands/TimeCommands.cs @@ -0,0 +1,21 @@ +#if IDG_ENABLE_HELPER_COMMANDS +using UnityEngine; + +namespace IngameDebugConsole.Commands +{ + public class TimeCommands + { + [ConsoleMethod( "time.scale", "Sets the Time.timeScale value" ), UnityEngine.Scripting.Preserve] + public static void SetTimeScale( float value ) + { + Time.timeScale = Mathf.Max( value, 0f ); + } + + [ConsoleMethod( "time.scale", "Returns the current Time.timeScale value" ), UnityEngine.Scripting.Preserve] + public static float GetTimeScale() + { + return Time.timeScale; + } + } +} +#endif \ No newline at end of file diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/Commands/TimeCommands.cs.meta b/Assets/Plugins/IngameDebugConsole/Scripts/Commands/TimeCommands.cs.meta new file mode 100644 index 00000000..c7da3056 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/Commands/TimeCommands.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bb12a1f557fffa541909fcfe92d9c1bf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogConsole.cs b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogConsole.cs new file mode 100644 index 00000000..860d7b40 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogConsole.cs @@ -0,0 +1,1531 @@ +#if UNITY_EDITOR || UNITY_STANDALONE +// Unity's Text component doesn't render tag correctly on mobile devices +#define USE_BOLD_COMMAND_SIGNATURES +#endif + +using UnityEngine; +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.Reflection; +using System.Text; +using Object = UnityEngine.Object; +#if UNITY_EDITOR && UNITY_2021_1_OR_NEWER +using SystemInfo = UnityEngine.Device.SystemInfo; // To support Device Simulator on Unity 2021.1+ +#endif + +// Manages the console commands, parses console input and handles execution of commands +// Supported method parameter types: int, float, bool, string, Vector2, Vector3, Vector4 + +// Helper class to store important information about a command +namespace IngameDebugConsole +{ + public class ConsoleMethodInfo + { + public readonly MethodInfo method; + public readonly Type[] parameterTypes; + public readonly object instance; + + public readonly string command; + public readonly string signature; + public readonly string[] parameters; + + public ConsoleMethodInfo( MethodInfo method, Type[] parameterTypes, object instance, string command, string signature, string[] parameters ) + { + this.method = method; + this.parameterTypes = parameterTypes; + this.instance = instance; + this.command = command; + this.signature = signature; + this.parameters = parameters; + } + + public bool IsValid() + { + if( !method.IsStatic && ( instance == null || instance.Equals( null ) ) ) + return false; + + return true; + } + } + + public static class DebugLogConsole + { + public delegate bool ParseFunction( string input, out object output ); + + public delegate void CommandExecutedDelegate( string command, object[] parameters ); + public static event CommandExecutedDelegate OnCommandExecuted; + + // All the commands + private static readonly List methods = new List(); + private static readonly List matchingMethods = new List( 4 ); + + // All the parse functions + private static readonly Dictionary parseFunctions = new Dictionary() + { + { typeof( string ), ParseString }, + { typeof( bool ), ParseBool }, + { typeof( int ), ParseInt }, + { typeof( uint ), ParseUInt }, + { typeof( long ), ParseLong }, + { typeof( ulong ), ParseULong }, + { typeof( byte ), ParseByte }, + { typeof( sbyte ), ParseSByte }, + { typeof( short ), ParseShort }, + { typeof( ushort ), ParseUShort }, + { typeof( char ), ParseChar }, + { typeof( float ), ParseFloat }, + { typeof( double ), ParseDouble }, + { typeof( decimal ), ParseDecimal }, + { typeof( Vector2 ), ParseVector2 }, + { typeof( Vector3 ), ParseVector3 }, + { typeof( Vector4 ), ParseVector4 }, + { typeof( Quaternion ), ParseQuaternion }, + { typeof( Color ), ParseColor }, + { typeof( Color32 ), ParseColor32 }, + { typeof( Rect ), ParseRect }, + { typeof( RectOffset ), ParseRectOffset }, + { typeof( Bounds ), ParseBounds }, + { typeof( GameObject ), ParseGameObject }, +#if UNITY_2017_2_OR_NEWER + { typeof( Vector2Int ), ParseVector2Int }, + { typeof( Vector3Int ), ParseVector3Int }, + { typeof( RectInt ), ParseRectInt }, + { typeof( BoundsInt ), ParseBoundsInt }, +#endif + }; + + // All the readable names of accepted types + private static readonly Dictionary typeReadableNames = new Dictionary() + { + { typeof( string ), "String" }, + { typeof( bool ), "Boolean" }, + { typeof( int ), "Integer" }, + { typeof( uint ), "Unsigned Integer" }, + { typeof( long ), "Long" }, + { typeof( ulong ), "Unsigned Long" }, + { typeof( byte ), "Byte" }, + { typeof( sbyte ), "Short Byte" }, + { typeof( short ), "Short" }, + { typeof( ushort ), "Unsigned Short" }, + { typeof( char ), "Char" }, + { typeof( float ), "Float" }, + { typeof( double ), "Double" }, + { typeof( decimal ), "Decimal" } + }; + + // Split arguments of an entered command + private static readonly List commandArguments = new List( 8 ); + + // Command parameter delimeter groups + private static readonly string[] inputDelimiters = new string[] { "\"\"", "''", "{}", "()", "[]" }; + + // CompareInfo used for case-insensitive command name comparison + internal static readonly CompareInfo caseInsensitiveComparer = new CultureInfo( "en-US" ).CompareInfo; + + static DebugLogConsole() + { +#if !IDG_DISABLE_HELP_COMMAND + AddCommand( "help", "Prints all commands", LogAllCommands ); + AddCommand( "help", "Prints all matching commands", LogAllCommandsWithName ); +#endif +#if IDG_ENABLE_HELPER_COMMANDS || IDG_ENABLE_SYSINFO_COMMAND + AddCommand( "sysinfo", "Prints system information", LogSystemInfo ); +#endif + +#if UNITY_EDITOR || !NETFX_CORE + // Find all [ConsoleMethod] functions + // Don't search built-in assemblies for console methods since they can't have any + string[] ignoredAssemblies = new string[] + { + "Unity", + "System", + "Mono.", + "mscorlib", + "netstandard", + "TextMeshPro", + "Microsoft.GeneratedCode", + "I18N", + "Boo.", + "UnityScript.", + "ICSharpCode.", + "ExCSS.Unity", +#if UNITY_EDITOR + "Assembly-CSharp-Editor", + "Assembly-UnityScript-Editor", + "nunit.", + "SyntaxTree.", + "AssetStoreTools", +#endif + }; +#endif + +#if UNITY_EDITOR || !NETFX_CORE + foreach( Assembly assembly in AppDomain.CurrentDomain.GetAssemblies() ) +#else + foreach( Assembly assembly in new Assembly[] { typeof( DebugLogConsole ).Assembly } ) // On UWP, at least search this plugin's Assembly for console methods +#endif + { +#if( NET_4_6 || NET_STANDARD_2_0 ) && ( UNITY_EDITOR || !NETFX_CORE ) + if( assembly.IsDynamic ) + continue; +#endif + + +#if UNITY_EDITOR || !NETFX_CORE + string assemblyName = assembly.GetName().Name; + bool ignoreAssembly = false; + for( int i = 0; i < ignoredAssemblies.Length; i++ ) + { + if( caseInsensitiveComparer.IsPrefix( assemblyName, ignoredAssemblies[i], CompareOptions.IgnoreCase ) ) + { + ignoreAssembly = true; + break; + } + } + + if( ignoreAssembly ) + continue; +#endif + + SearchAssemblyForConsoleMethods( assembly ); + } + } + + public static void SearchAssemblyForConsoleMethods( Assembly assembly ) + { + try + { + List methods = new List(); + foreach( Type type in assembly.GetExportedTypes() ) + { + foreach( MethodInfo method in type.GetMethods( BindingFlags.Static | BindingFlags.Public | BindingFlags.DeclaredOnly ) ) + { + foreach( ConsoleAttribute consoleAttribute in method.GetCustomAttributes( typeof(ConsoleAttribute), false ) ) + { + consoleAttribute.SetMethod(method); + methods.Add(consoleAttribute); + } + } + } + + methods.Sort((a, b) => a.Order.CompareTo(b.Order)); + for (int i = 0; i < methods.Count; i++) + { + methods[i].Load(); + } + } + catch( NotSupportedException ) { } + catch( System.IO.FileNotFoundException ) { } + catch( ReflectionTypeLoadException ) { } + catch( Exception e ) + { + Debug.LogError( "Couldn't search assembly for [ConsoleMethod] attributes: " + assembly.GetName().Name + "\n" + e.ToString() ); + } + } + + public static List GetAllCommands() + { + return methods; + } + + // Logs the list of available commands + public static void LogAllCommands() + { + int length = 25; + for( int i = 0; i < methods.Count; i++ ) + { + if( methods[i].IsValid() ) + length += methods[i].signature.Length + 7; + } + + StringBuilder stringBuilder = new StringBuilder( length ); + stringBuilder.Append( "Available commands:" ); + + for( int i = 0; i < methods.Count; i++ ) + { + if( methods[i].IsValid() ) + stringBuilder.Append( "\n - " ).Append( methods[i].signature ); + } + + Debug.Log( stringBuilder.ToString() ); + + // After typing help, the log that lists all the commands should automatically be expanded for better UX + if( DebugLogManager.Instance ) + DebugLogManager.Instance.AdjustLatestPendingLog( true, true ); + } + + // Logs the list of available commands that are either equal to commandName or contain commandName as substring + public static void LogAllCommandsWithName( string commandName ) + { + matchingMethods.Clear(); + + // First, try to find commands that exactly match the commandName. If there are no such commands, try to find + // commands that contain commandName as substring + FindCommands( commandName, false, matchingMethods ); + if( matchingMethods.Count == 0 ) + FindCommands( commandName, true, matchingMethods ); + + if( matchingMethods.Count == 0 ) + Debug.LogWarning( string.Concat( "ERROR: can't find command '", commandName, "'" ) ); + else + { + int commandsLength = 25; + for( int i = 0; i < matchingMethods.Count; i++ ) + commandsLength += matchingMethods[i].signature.Length + 7; + + StringBuilder stringBuilder = new StringBuilder( commandsLength ); + stringBuilder.Append( "Matching commands:" ); + + for( int i = 0; i < matchingMethods.Count; i++ ) + stringBuilder.Append( "\n - " ).Append( matchingMethods[i].signature ); + + Debug.Log( stringBuilder.ToString() ); + + if( DebugLogManager.Instance ) + DebugLogManager.Instance.AdjustLatestPendingLog( true, true ); + } + } + + // Logs system information + public static void LogSystemInfo() + { + StringBuilder stringBuilder = new StringBuilder( 1024 ); + stringBuilder.Append( "Rig: " ).AppendSysInfoIfPresent( SystemInfo.deviceModel ).AppendSysInfoIfPresent( SystemInfo.processorType ) + .AppendSysInfoIfPresent( SystemInfo.systemMemorySize, "MB RAM" ).Append( SystemInfo.processorCount ).Append( " cores\n" ); + stringBuilder.Append( "OS: " ).Append( SystemInfo.operatingSystem ).Append( "\n" ); + stringBuilder.Append( "GPU: " ).Append( SystemInfo.graphicsDeviceName ).Append( " " ).Append( SystemInfo.graphicsMemorySize ) + .Append( "MB " ).Append( SystemInfo.graphicsDeviceVersion ) + .Append( SystemInfo.graphicsMultiThreaded ? " multi-threaded\n" : "\n" ); + stringBuilder.Append( "Data Path: " ).Append( Application.dataPath ).Append( "\n" ); + stringBuilder.Append( "Persistent Data Path: " ).Append( Application.persistentDataPath ).Append( "\n" ); + stringBuilder.Append( "StreamingAssets Path: " ).Append( Application.streamingAssetsPath ).Append( "\n" ); + stringBuilder.Append( "Temporary Cache Path: " ).Append( Application.temporaryCachePath ).Append( "\n" ); + stringBuilder.Append( "Device ID: " ).Append( SystemInfo.deviceUniqueIdentifier ).Append( "\n" ); + stringBuilder.Append( "Max Texture Size: " ).Append( SystemInfo.maxTextureSize ).Append( "\n" ); +#if UNITY_5_6_OR_NEWER + stringBuilder.Append( "Max Cubemap Size: " ).Append( SystemInfo.maxCubemapSize ).Append( "\n" ); +#endif + stringBuilder.Append( "Accelerometer: " ).Append( SystemInfo.supportsAccelerometer ? "supported\n" : "not supported\n" ); + stringBuilder.Append( "Gyro: " ).Append( SystemInfo.supportsGyroscope ? "supported\n" : "not supported\n" ); + stringBuilder.Append( "Location Service: " ).Append( SystemInfo.supportsLocationService ? "supported\n" : "not supported\n" ); +#if !UNITY_2019_1_OR_NEWER + stringBuilder.Append( "Image Effects: " ).Append( SystemInfo.supportsImageEffects ? "supported\n" : "not supported\n" ); + stringBuilder.Append( "RenderToCubemap: " ).Append( SystemInfo.supportsRenderToCubemap ? "supported\n" : "not supported\n" ); +#endif + stringBuilder.Append( "Compute Shaders: " ).Append( SystemInfo.supportsComputeShaders ? "supported\n" : "not supported\n" ); + stringBuilder.Append( "Shadows: " ).Append( SystemInfo.supportsShadows ? "supported\n" : "not supported\n" ); + stringBuilder.Append( "Instancing: " ).Append( SystemInfo.supportsInstancing ? "supported\n" : "not supported\n" ); + stringBuilder.Append( "Motion Vectors: " ).Append( SystemInfo.supportsMotionVectors ? "supported\n" : "not supported\n" ); + stringBuilder.Append( "3D Textures: " ).Append( SystemInfo.supports3DTextures ? "supported\n" : "not supported\n" ); +#if UNITY_5_6_OR_NEWER + stringBuilder.Append( "3D Render Textures: " ).Append( SystemInfo.supports3DRenderTextures ? "supported\n" : "not supported\n" ); +#endif + stringBuilder.Append( "2D Array Textures: " ).Append( SystemInfo.supports2DArrayTextures ? "supported\n" : "not supported\n" ); + stringBuilder.Append( "Cubemap Array Textures: " ).Append( SystemInfo.supportsCubemapArrayTextures ? "supported" : "not supported" ); + + Debug.Log( stringBuilder.ToString() ); + + // After typing sysinfo, the log that lists system information should automatically be expanded for better UX + if( DebugLogManager.Instance ) + DebugLogManager.Instance.AdjustLatestPendingLog( true, true ); + } + + private static StringBuilder AppendSysInfoIfPresent( this StringBuilder sb, string info, string postfix = null ) + { + if( info != SystemInfo.unsupportedIdentifier ) + { + sb.Append( info ); + + if( postfix != null ) + sb.Append( postfix ); + + sb.Append( " " ); + } + + return sb; + } + + private static StringBuilder AppendSysInfoIfPresent( this StringBuilder sb, int info, string postfix = null ) + { + if( info > 0 ) + { + sb.Append( info ); + + if( postfix != null ) + sb.Append( postfix ); + + sb.Append( " " ); + } + + return sb; + } + + // Add a custom Type to the list of recognized command parameter Types + public static void AddCustomParameterType( Type type, ParseFunction parseFunction, string typeReadableName = null ) + { + if( type == null ) + { + Debug.LogError( "Parameter type can't be null!" ); + return; + } + else if( parseFunction == null ) + { + Debug.LogError( "Parameter parseFunction can't be null!" ); + return; + } + + parseFunctions[type] = parseFunction; + + if( !string.IsNullOrEmpty( typeReadableName ) ) + typeReadableNames[type] = typeReadableName; + } + + // Remove a custom Type from the list of recognized command parameter Types + public static void RemoveCustomParameterType( Type type ) + { + parseFunctions.Remove( type ); + typeReadableNames.Remove( type ); + } + + // Add a command related with an instance method (i.e. non static method) + public static void AddCommandInstance( string command, string description, string methodName, object instance, params string[] parameterNames ) + { + if( instance == null ) + { + Debug.LogError( "Instance can't be null!" ); + return; + } + + AddCommand( command, description, methodName, instance.GetType(), instance, parameterNames ); + } + + // Add a command related with a static method (i.e. no instance is required to call the method) + public static void AddCommandStatic( string command, string description, string methodName, Type ownerType, params string[] parameterNames ) + { + AddCommand( command, description, methodName, ownerType, null, parameterNames ); + } + + // Add a command that can be related to either a static or an instance method + public static void AddCommand( string command, string description, Action method ) { AddCommand( command, description, method.Method, method.Target, null ); } + public static void AddCommand( string command, string description, Action method ) { AddCommand( command, description, method.Method, method.Target, null ); } + public static void AddCommand( string command, string description, Func method ) { AddCommand( command, description, method.Method, method.Target, null ); } + public static void AddCommand( string command, string description, Action method ) { AddCommand( command, description, method.Method, method.Target, null ); } + public static void AddCommand( string command, string description, Func method ) { AddCommand( command, description, method.Method, method.Target, null ); } + public static void AddCommand( string command, string description, Action method ) { AddCommand( command, description, method.Method, method.Target, null ); } + public static void AddCommand( string command, string description, Func method ) { AddCommand( command, description, method.Method, method.Target, null ); } + public static void AddCommand( string command, string description, Action method ) { AddCommand( command, description, method.Method, method.Target, null ); } + public static void AddCommand( string command, string description, Func method ) { AddCommand( command, description, method.Method, method.Target, null ); } + public static void AddCommand( string command, string description, Func method ) { AddCommand( command, description, method.Method, method.Target, null ); } + public static void AddCommand( string command, string description, Delegate method ) { AddCommand( command, description, method.Method, method.Target, null ); } + + // Add a command with custom parameter names + public static void AddCommand( string command, string description, Action method, string parameterName ) { AddCommand( command, description, method.Method, method.Target, new string[1] { parameterName } ); } + public static void AddCommand( string command, string description, Action method, string parameterName1, string parameterName2 ) { AddCommand( command, description, method.Method, method.Target, new string[2] { parameterName1, parameterName2 } ); } + public static void AddCommand( string command, string description, Func method, string parameterName ) { AddCommand( command, description, method.Method, method.Target, new string[1] { parameterName } ); } + public static void AddCommand( string command, string description, Action method, string parameterName1, string parameterName2, string parameterName3 ) { AddCommand( command, description, method.Method, method.Target, new string[3] { parameterName1, parameterName2, parameterName3 } ); } + public static void AddCommand( string command, string description, Func method, string parameterName1, string parameterName2 ) { AddCommand( command, description, method.Method, method.Target, new string[2] { parameterName1, parameterName2 } ); } + public static void AddCommand( string command, string description, Action method, string parameterName1, string parameterName2, string parameterName3, string parameterName4 ) { AddCommand( command, description, method.Method, method.Target, new string[4] { parameterName1, parameterName2, parameterName3, parameterName4 } ); } + public static void AddCommand( string command, string description, Func method, string parameterName1, string parameterName2, string parameterName3 ) { AddCommand( command, description, method.Method, method.Target, new string[3] { parameterName1, parameterName2, parameterName3 } ); } + public static void AddCommand( string command, string description, Func method, string parameterName1, string parameterName2, string parameterName3, string parameterName4 ) { AddCommand( command, description, method.Method, method.Target, new string[4] { parameterName1, parameterName2, parameterName3, parameterName4 } ); } + public static void AddCommand( string command, string description, Delegate method, params string[] parameterNames ) { AddCommand( command, description, method.Method, method.Target, parameterNames ); } + + // Create a new command and set its properties + private static void AddCommand( string command, string description, string methodName, Type ownerType, object instance, string[] parameterNames ) + { + // Get the method from the class + MethodInfo method = ownerType.GetMethod( methodName, BindingFlags.Public | BindingFlags.NonPublic | ( instance != null ? BindingFlags.Instance : BindingFlags.Static ) ); + if( method == null ) + { + Debug.LogError( methodName + " does not exist in " + ownerType ); + return; + } + + AddCommand( command, description, method, instance, parameterNames ); + } + + internal static void AddCommand( string command, string description, MethodInfo method, object instance, string[] parameterNames ) + { + if( string.IsNullOrEmpty( command ) ) + { + Debug.LogError( "Command name can't be empty!" ); + return; + } + + command = command.Trim(); + if( command.IndexOf( ' ' ) >= 0 ) + { + Debug.LogError( "Command name can't contain whitespace: " + command ); + return; + } + + // Fetch the parameters of the class + ParameterInfo[] parameters = method.GetParameters(); + if( parameters == null ) + parameters = new ParameterInfo[0]; + + // Store the parameter types in an array + Type[] parameterTypes = new Type[parameters.Length]; + for( int i = 0; i < parameters.Length; i++ ) + { + if( parameters[i].ParameterType.IsByRef ) + { + Debug.LogError( "Command can't have 'out' or 'ref' parameters" ); + return; + } + + Type parameterType = parameters[i].ParameterType; + if( parseFunctions.ContainsKey( parameterType ) || typeof( Component ).IsAssignableFrom( parameterType ) || parameterType.IsEnum || IsSupportedArrayType( parameterType ) ) + parameterTypes[i] = parameterType; + else + { + Debug.LogError( string.Concat( "Parameter ", parameters[i].Name, "'s Type ", parameterType, " isn't supported" ) ); + return; + } + } + + int commandIndex = FindCommandIndex( command ); + if( commandIndex < 0 ) + commandIndex = ~commandIndex; + else + { + int commandFirstIndex = commandIndex; + int commandLastIndex = commandIndex; + + while( commandFirstIndex > 0 && caseInsensitiveComparer.Compare( methods[commandFirstIndex - 1].command, command, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) == 0 ) + commandFirstIndex--; + while( commandLastIndex < methods.Count - 1 && caseInsensitiveComparer.Compare( methods[commandLastIndex + 1].command, command, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) == 0 ) + commandLastIndex++; + + commandIndex = commandFirstIndex; + for( int i = commandFirstIndex; i <= commandLastIndex; i++ ) + { + int parameterCountDiff = methods[i].parameterTypes.Length - parameterTypes.Length; + if( parameterCountDiff <= 0 ) + { + // We are sorting the commands in 2 steps: + // 1: Sorting by their 'command' names which is handled by FindCommandIndex + // 2: Sorting by their parameter counts which is handled here (parameterCountDiff <= 0) + commandIndex = i + 1; + + // Check if this command has been registered before and if it is, overwrite that command + if( parameterCountDiff == 0 ) + { + int j = 0; + while( j < parameterTypes.Length && parameterTypes[j] == methods[i].parameterTypes[j] ) + j++; + + if( j >= parameterTypes.Length ) + { + commandIndex = i; + commandLastIndex--; + methods.RemoveAt( i-- ); + + continue; + } + } + } + } + } + + // Create the command + StringBuilder methodSignature = new StringBuilder( 256 ); + string[] parameterSignatures = new string[parameterTypes.Length]; + +#if USE_BOLD_COMMAND_SIGNATURES + methodSignature.Append( "" ); +#endif + methodSignature.Append( command ); + + if( parameterTypes.Length > 0 ) + { + methodSignature.Append( " " ); + + for( int i = 0; i < parameterTypes.Length; i++ ) + { + int parameterSignatureStartIndex = methodSignature.Length; + + methodSignature.Append( "[" ).Append( GetTypeReadableName( parameterTypes[i] ) ).Append( " " ).Append( ( parameterNames != null && i < parameterNames.Length && !string.IsNullOrEmpty( parameterNames[i] ) ) ? parameterNames[i] : parameters[i].Name ).Append( "]" ); + + if( i < parameterTypes.Length - 1 ) + methodSignature.Append( " " ); + + parameterSignatures[i] = methodSignature.ToString( parameterSignatureStartIndex, methodSignature.Length - parameterSignatureStartIndex ); + } + } + +#if USE_BOLD_COMMAND_SIGNATURES + methodSignature.Append( "" ); +#endif + + if( !string.IsNullOrEmpty( description ) ) + methodSignature.Append( ": " ).Append( description ); + + methods.Insert( commandIndex, new ConsoleMethodInfo( method, parameterTypes, instance, command, methodSignature.ToString(), parameterSignatures ) ); + } + + // Remove all commands with the matching command name from the console + public static void RemoveCommand( string command ) + { + if( !string.IsNullOrEmpty( command ) ) + { + for( int i = methods.Count - 1; i >= 0; i-- ) + { + if( caseInsensitiveComparer.Compare( methods[i].command, command, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) == 0 ) + methods.RemoveAt( i ); + } + } + } + + // Remove all commands with the matching method from the console + public static void RemoveCommand( Action method ) { RemoveCommand( method.Method ); } + public static void RemoveCommand( Action method ) { RemoveCommand( method.Method ); } + public static void RemoveCommand( Func method ) { RemoveCommand( method.Method ); } + public static void RemoveCommand( Action method ) { RemoveCommand( method.Method ); } + public static void RemoveCommand( Func method ) { RemoveCommand( method.Method ); } + public static void RemoveCommand( Action method ) { RemoveCommand( method.Method ); } + public static void RemoveCommand( Func method ) { RemoveCommand( method.Method ); } + public static void RemoveCommand( Action method ) { RemoveCommand( method.Method ); } + public static void RemoveCommand( Func method ) { RemoveCommand( method.Method ); } + public static void RemoveCommand( Func method ) { RemoveCommand( method.Method ); } + public static void RemoveCommand( Delegate method ) { RemoveCommand( method.Method ); } + + public static void RemoveCommand( MethodInfo method ) + { + if( method != null ) + { + for( int i = methods.Count - 1; i >= 0; i-- ) + { + if( methods[i].method == method ) + methods.RemoveAt( i ); + } + } + } + + // Returns the first command that starts with the entered argument + public static string GetAutoCompleteCommand( string commandStart, string previousSuggestion ) + { + int commandIndex = FindCommandIndex( !string.IsNullOrEmpty( previousSuggestion ) ? previousSuggestion : commandStart ); + if( commandIndex < 0 ) + { + commandIndex = ~commandIndex; + return ( commandIndex < methods.Count && caseInsensitiveComparer.IsPrefix( methods[commandIndex].command, commandStart, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) ) ? methods[commandIndex].command : null; + } + + // Find the next command that starts with commandStart and is different from previousSuggestion + for( int i = commandIndex + 1; i < methods.Count; i++ ) + { + if( caseInsensitiveComparer.Compare( methods[i].command, previousSuggestion, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) == 0 ) + continue; + else if( caseInsensitiveComparer.IsPrefix( methods[i].command, commandStart, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) ) + return methods[i].command; + else + break; + } + + // Couldn't find a command that follows previousSuggestion and satisfies commandStart, loop back to the beginning of the autocomplete suggestions + string result = null; + for( int i = commandIndex - 1; i >= 0 && caseInsensitiveComparer.IsPrefix( methods[i].command, commandStart, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ); i-- ) + result = methods[i].command; + + return result; + } + + // Parse the command and try to execute it + public static void ExecuteCommand( string command ) + { + if( command == null ) + return; + + command = command.Trim(); + + if( command.Length == 0 ) + return; + + // Split the command's arguments + commandArguments.Clear(); + FetchArgumentsFromCommand( command, commandArguments ); + + // Find all matching commands + matchingMethods.Clear(); + bool parameterCountMismatch = false; + int commandIndex = FindCommandIndex( commandArguments[0] ); + if( commandIndex >= 0 ) + { + string _command = commandArguments[0]; + + int commandLastIndex = commandIndex; + while( commandIndex > 0 && caseInsensitiveComparer.Compare( methods[commandIndex - 1].command, _command, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) == 0 ) + commandIndex--; + while( commandLastIndex < methods.Count - 1 && caseInsensitiveComparer.Compare( methods[commandLastIndex + 1].command, _command, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) == 0 ) + commandLastIndex++; + + while( commandIndex <= commandLastIndex ) + { + if( !methods[commandIndex].IsValid() ) + { + methods.RemoveAt( commandIndex ); + commandLastIndex--; + } + else + { + // Check if number of parameters match + if( methods[commandIndex].parameterTypes.Length == commandArguments.Count - 1 ) + matchingMethods.Add( methods[commandIndex] ); + else + parameterCountMismatch = true; + + commandIndex++; + } + } + } + + if( matchingMethods.Count == 0 ) + { + string _command = commandArguments[0]; + FindCommands( _command, !parameterCountMismatch, matchingMethods ); + + if( matchingMethods.Count == 0 ) + Debug.LogWarning( string.Concat( "ERROR: can't find command '", _command, "'" ) ); + else + { + int commandsLength = _command.Length + 75; + for( int i = 0; i < matchingMethods.Count; i++ ) + commandsLength += matchingMethods[i].signature.Length + 7; + + StringBuilder stringBuilder = new StringBuilder( commandsLength ); + if( parameterCountMismatch ) + stringBuilder.Append( "ERROR: '" ).Append( _command ).Append( "' doesn't take " ).Append( commandArguments.Count - 1 ).Append( " parameter(s). Available command(s):" ); + else + stringBuilder.Append( "ERROR: can't find command '" ).Append( _command ).Append( "'. Did you mean:" ); + + for( int i = 0; i < matchingMethods.Count; i++ ) + stringBuilder.Append( "\n - " ).Append( matchingMethods[i].signature ); + + Debug.LogWarning( stringBuilder.ToString() ); + + // The log that lists method signature(s) for this command should automatically be expanded for better UX + if( DebugLogManager.Instance ) + DebugLogManager.Instance.AdjustLatestPendingLog( true, true ); + } + + return; + } + + ConsoleMethodInfo methodToExecute = null; + object[] parameters = new object[commandArguments.Count - 1]; + string errorMessage = null; + for( int i = 0; i < matchingMethods.Count && methodToExecute == null; i++ ) + { + ConsoleMethodInfo methodInfo = matchingMethods[i]; + + // Parse the parameters into objects + bool success = true; + for( int j = 0; j < methodInfo.parameterTypes.Length && success; j++ ) + { + try + { + string argument = commandArguments[j + 1]; + Type parameterType = methodInfo.parameterTypes[j]; + + object val; + if( ParseArgument( argument, parameterType, out val ) ) + parameters[j] = val; + else + { + success = false; + errorMessage = string.Concat( "ERROR: couldn't parse ", argument, " to ", GetTypeReadableName( parameterType ) ); + } + } + catch( Exception e ) + { + success = false; + errorMessage = "ERROR: " + e.ToString(); + } + } + + if( success ) + methodToExecute = methodInfo; + } + + if( methodToExecute == null ) + Debug.LogWarning( !string.IsNullOrEmpty( errorMessage ) ? errorMessage : "ERROR: something went wrong" ); + else + { + // Execute the method associated with the command + object result = methodToExecute.method.Invoke( methodToExecute.instance, parameters ); + if( methodToExecute.method.ReturnType != typeof( void ) ) + { + // Print the returned value to the console + if( result == null || result.Equals( null ) ) + Debug.Log( "Returned: null" ); + else + Debug.Log( "Returned: " + result.ToString() ); + } + + if( OnCommandExecuted != null ) + OnCommandExecuted( methodToExecute.command, parameters ); + } + } + + public static void FetchArgumentsFromCommand( string command, List commandArguments ) + { + for( int i = 0; i < command.Length; i++ ) + { + if( char.IsWhiteSpace( command[i] ) ) + continue; + + int delimiterIndex = IndexOfDelimiterGroup( command[i] ); + if( delimiterIndex >= 0 ) + { + int endIndex = IndexOfDelimiterGroupEnd( command, delimiterIndex, i + 1 ); + commandArguments.Add( command.Substring( i + 1, endIndex - i - 1 ) ); + i = ( endIndex < command.Length - 1 && command[endIndex + 1] == ',' ) ? endIndex + 1 : endIndex; + } + else + { + int endIndex = IndexOfChar( command, ' ', i + 1 ); + commandArguments.Add( command.Substring( i, command[endIndex - 1] == ',' ? endIndex - 1 - i : endIndex - i ) ); + i = endIndex; + } + } + } + + public static void FindCommands( string commandName, bool allowSubstringMatching, List matchingCommands ) + { + if( allowSubstringMatching ) + { + for( int i = 0; i < methods.Count; i++ ) + { + if( methods[i].IsValid() && caseInsensitiveComparer.IndexOf( methods[i].command, commandName, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) >= 0 ) + matchingCommands.Add( methods[i] ); + } + } + else + { + for( int i = 0; i < methods.Count; i++ ) + { + if( methods[i].IsValid() && caseInsensitiveComparer.Compare( methods[i].command, commandName, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) == 0 ) + matchingCommands.Add( methods[i] ); + } + } + } + + // Finds all commands that have a matching signature with command + // - caretIndexIncrements: indices inside "string command" that separate two arguments in the command. This is used to + // figure out which argument the caret is standing on + // - commandName: command's name (first argument) + internal static void GetCommandSuggestions( string command, List matchingCommands, List caretIndexIncrements, ref string commandName, out int numberOfParameters ) + { + bool commandNameCalculated = false; + bool commandNameFullyTyped = false; + numberOfParameters = -1; + for( int i = 0; i < command.Length; i++ ) + { + if( char.IsWhiteSpace( command[i] ) ) + continue; + + int delimiterIndex = IndexOfDelimiterGroup( command[i] ); + if( delimiterIndex >= 0 ) + { + int endIndex = IndexOfDelimiterGroupEnd( command, delimiterIndex, i + 1 ); + if( !commandNameCalculated ) + { + commandNameCalculated = true; + commandNameFullyTyped = command.Length > endIndex; + + int commandNameLength = endIndex - i - 1; + if( commandName == null || commandNameLength == 0 || commandName.Length != commandNameLength || caseInsensitiveComparer.IndexOf( command, commandName, i + 1, commandNameLength, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) != i + 1 ) + commandName = command.Substring( i + 1, commandNameLength ); + } + + i = ( endIndex < command.Length - 1 && command[endIndex + 1] == ',' ) ? endIndex + 1 : endIndex; + caretIndexIncrements.Add( i + 1 ); + } + else + { + int endIndex = IndexOfChar( command, ' ', i + 1 ); + if( !commandNameCalculated ) + { + commandNameCalculated = true; + commandNameFullyTyped = command.Length > endIndex; + + int commandNameLength = command[endIndex - 1] == ',' ? endIndex - 1 - i : endIndex - i; + if( commandName == null || commandNameLength == 0 || commandName.Length != commandNameLength || caseInsensitiveComparer.IndexOf( command, commandName, i, commandNameLength, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) != i ) + commandName = command.Substring( i, commandNameLength ); + } + + i = endIndex; + caretIndexIncrements.Add( i ); + } + + numberOfParameters++; + } + + if( !commandNameCalculated ) + commandName = string.Empty; + + if( !string.IsNullOrEmpty( commandName ) ) + { + int commandIndex = FindCommandIndex( commandName ); + if( commandIndex < 0 ) + commandIndex = ~commandIndex; + + int commandLastIndex = commandIndex; + if( !commandNameFullyTyped ) + { + // Match all commands that start with commandName + if( commandIndex < methods.Count && caseInsensitiveComparer.IsPrefix( methods[commandIndex].command, commandName, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) ) + { + while( commandIndex > 0 && caseInsensitiveComparer.IsPrefix( methods[commandIndex - 1].command, commandName, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) ) + commandIndex--; + while( commandLastIndex < methods.Count - 1 && caseInsensitiveComparer.IsPrefix( methods[commandLastIndex + 1].command, commandName, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) ) + commandLastIndex++; + } + else + commandLastIndex = -1; + } + else + { + // Match only the commands that are equal to commandName + if( commandIndex < methods.Count && caseInsensitiveComparer.Compare( methods[commandIndex].command, commandName, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) == 0 ) + { + while( commandIndex > 0 && caseInsensitiveComparer.Compare( methods[commandIndex - 1].command, commandName, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) == 0 ) + commandIndex--; + while( commandLastIndex < methods.Count - 1 && caseInsensitiveComparer.Compare( methods[commandLastIndex + 1].command, commandName, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) == 0 ) + commandLastIndex++; + } + else + commandLastIndex = -1; + } + + for( ; commandIndex <= commandLastIndex; commandIndex++ ) + { + if( methods[commandIndex].parameterTypes.Length >= numberOfParameters ) + matchingCommands.Add( methods[commandIndex] ); + } + } + } + + // Find the index of the delimiter group that 'c' belongs to + private static int IndexOfDelimiterGroup( char c ) + { + for( int i = 0; i < inputDelimiters.Length; i++ ) + { + if( c == inputDelimiters[i][0] ) + return i; + } + + return -1; + } + + private static int IndexOfDelimiterGroupEnd( string command, int delimiterIndex, int startIndex ) + { + char startChar = inputDelimiters[delimiterIndex][0]; + char endChar = inputDelimiters[delimiterIndex][1]; + + // Check delimiter's depth for array support (e.g. [[1 2] [3 4]] for Vector2 array) + int depth = 1; + + for( int i = startIndex; i < command.Length; i++ ) + { + char c = command[i]; + if( c == endChar && --depth <= 0 ) + return i; + else if( c == startChar ) + depth++; + } + + return command.Length; + } + + // Find the index of char in the string, or return the length of string instead of -1 + private static int IndexOfChar( string command, char c, int startIndex ) + { + int result = command.IndexOf( c, startIndex ); + if( result < 0 ) + result = command.Length; + + return result; + } + + // Find command's index in the list of registered commands using binary search + private static int FindCommandIndex( string command ) + { + int min = 0; + int max = methods.Count - 1; + while( min <= max ) + { + int mid = ( min + max ) / 2; + int comparison = caseInsensitiveComparer.Compare( command, methods[mid].command, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ); + if( comparison == 0 ) + return mid; + else if( comparison < 0 ) + max = mid - 1; + else + min = mid + 1; + } + + return ~min; + } + + public static bool IsSupportedArrayType( Type type ) + { + if( type.IsArray ) + { + if( type.GetArrayRank() != 1 ) + return false; + + type = type.GetElementType(); + } + else if( type.IsGenericType ) + { + if( type.GetGenericTypeDefinition() != typeof( List<> ) ) + return false; + + type = type.GetGenericArguments()[0]; + } + else + return false; + + return parseFunctions.ContainsKey( type ) || typeof( Component ).IsAssignableFrom( type ) || type.IsEnum; + } + + public static string GetTypeReadableName( Type type ) + { + string result; + if( typeReadableNames.TryGetValue( type, out result ) ) + return result; + + if( IsSupportedArrayType( type ) ) + { + Type elementType = type.IsArray ? type.GetElementType() : type.GetGenericArguments()[0]; + if( typeReadableNames.TryGetValue( elementType, out result ) ) + return result + "[]"; + else + return elementType.Name + "[]"; + } + + return type.Name; + } + + public static bool ParseArgument( string input, Type argumentType, out object output ) + { + ParseFunction parseFunction; + if( parseFunctions.TryGetValue( argumentType, out parseFunction ) ) + return parseFunction( input, out output ); + else if( typeof( Component ).IsAssignableFrom( argumentType ) ) + return ParseComponent( input, argumentType, out output ); + else if( argumentType.IsEnum ) + return ParseEnum( input, argumentType, out output ); + else if( IsSupportedArrayType( argumentType ) ) + return ParseArray( input, argumentType, out output ); + else + { + output = null; + return false; + } + } + + public static bool ParseString( string input, out object output ) + { + output = input; + return true; + } + + public static bool ParseBool( string input, out object output ) + { + if( input == "1" || input.ToLowerInvariant() == "true" ) + { + output = true; + return true; + } + + if( input == "0" || input.ToLowerInvariant() == "false" ) + { + output = false; + return true; + } + + output = false; + return false; + } + + public static bool ParseInt( string input, out object output ) + { + int value; + bool result = int.TryParse( input, out value ); + + output = value; + return result; + } + + public static bool ParseUInt( string input, out object output ) + { + uint value; + bool result = uint.TryParse( input, out value ); + + output = value; + return result; + } + + public static bool ParseLong( string input, out object output ) + { + long value; + bool result = long.TryParse( !input.EndsWith( "L", StringComparison.OrdinalIgnoreCase ) ? input : input.Substring( 0, input.Length - 1 ), out value ); + + output = value; + return result; + } + + public static bool ParseULong( string input, out object output ) + { + ulong value; + bool result = ulong.TryParse( !input.EndsWith( "L", StringComparison.OrdinalIgnoreCase ) ? input : input.Substring( 0, input.Length - 1 ), out value ); + + output = value; + return result; + } + + public static bool ParseByte( string input, out object output ) + { + byte value; + bool result = byte.TryParse( input, out value ); + + output = value; + return result; + } + + public static bool ParseSByte( string input, out object output ) + { + sbyte value; + bool result = sbyte.TryParse( input, out value ); + + output = value; + return result; + } + + public static bool ParseShort( string input, out object output ) + { + short value; + bool result = short.TryParse( input, out value ); + + output = value; + return result; + } + + public static bool ParseUShort( string input, out object output ) + { + ushort value; + bool result = ushort.TryParse( input, out value ); + + output = value; + return result; + } + + public static bool ParseChar( string input, out object output ) + { + char value; + bool result = char.TryParse( input, out value ); + + output = value; + return result; + } + + public static bool ParseFloat( string input, out object output ) + { + float value; + bool result = float.TryParse( !input.EndsWith( "f", StringComparison.OrdinalIgnoreCase ) ? input : input.Substring( 0, input.Length - 1 ), NumberStyles.Float, CultureInfo.InvariantCulture, out value ); + + output = value; + return result; + } + + public static bool ParseDouble( string input, out object output ) + { + double value; + bool result = double.TryParse( !input.EndsWith( "f", StringComparison.OrdinalIgnoreCase ) ? input : input.Substring( 0, input.Length - 1 ), NumberStyles.Float, CultureInfo.InvariantCulture, out value ); + + output = value; + return result; + } + + public static bool ParseDecimal( string input, out object output ) + { + decimal value; + bool result = decimal.TryParse( !input.EndsWith( "f", StringComparison.OrdinalIgnoreCase ) ? input : input.Substring( 0, input.Length - 1 ), NumberStyles.Float, CultureInfo.InvariantCulture, out value ); + + output = value; + return result; + } + + public static bool ParseVector2( string input, out object output ) + { + return ParseVector( input, typeof( Vector2 ), out output ); + } + + public static bool ParseVector3( string input, out object output ) + { + return ParseVector( input, typeof( Vector3 ), out output ); + } + + public static bool ParseVector4( string input, out object output ) + { + return ParseVector( input, typeof( Vector4 ), out output ); + } + + public static bool ParseQuaternion( string input, out object output ) + { + return ParseVector( input, typeof( Quaternion ), out output ); + } + + public static bool ParseColor( string input, out object output ) + { + return ParseVector( input, typeof( Color ), out output ); + } + + public static bool ParseColor32( string input, out object output ) + { + return ParseVector( input, typeof( Color32 ), out output ); + } + + public static bool ParseRect( string input, out object output ) + { + return ParseVector( input, typeof( Rect ), out output ); + } + + public static bool ParseRectOffset( string input, out object output ) + { + return ParseVector( input, typeof( RectOffset ), out output ); + } + + public static bool ParseBounds( string input, out object output ) + { + return ParseVector( input, typeof( Bounds ), out output ); + } + +#if UNITY_2017_2_OR_NEWER + public static bool ParseVector2Int( string input, out object output ) + { + return ParseVector( input, typeof( Vector2Int ), out output ); + } + + public static bool ParseVector3Int( string input, out object output ) + { + return ParseVector( input, typeof( Vector3Int ), out output ); + } + + public static bool ParseRectInt( string input, out object output ) + { + return ParseVector( input, typeof( RectInt ), out output ); + } + + public static bool ParseBoundsInt( string input, out object output ) + { + return ParseVector( input, typeof( BoundsInt ), out output ); + } +#endif + + public static bool ParseGameObject( string input, out object output ) + { + output = input == "null" ? null : GameObject.Find( input ); + return true; + } + + public static bool ParseComponent( string input, Type componentType, out object output ) + { + GameObject gameObject = input == "null" ? null : GameObject.Find( input ); + output = gameObject ? gameObject.GetComponent( componentType ) : null; + return true; + } + + public static bool ParseEnum( string input, Type enumType, out object output ) + { + const int NONE = 0, OR = 1, AND = 2; + + int outputInt = 0; + int operation = NONE; // 0: nothing, 1: OR with outputInt, 2: AND with outputInt + for( int i = 0; i < input.Length; i++ ) + { + string enumStr; + int orIndex = input.IndexOf( '|', i ); + int andIndex = input.IndexOf( '&', i ); + if( orIndex < 0 ) + enumStr = input.Substring( i, ( andIndex < 0 ? input.Length : andIndex ) - i ).Trim(); + else + enumStr = input.Substring( i, ( andIndex < 0 ? orIndex : Mathf.Min( andIndex, orIndex ) ) - i ).Trim(); + + int value; + if( !int.TryParse( enumStr, out value ) ) + { + try + { + // Case-insensitive enum parsing + value = Convert.ToInt32( Enum.Parse( enumType, enumStr, true ) ); + } + catch + { + output = null; + return false; + } + } + + if( operation == NONE ) + outputInt = value; + else if( operation == OR ) + outputInt |= value; + else + outputInt &= value; + + if( orIndex >= 0 ) + { + if( andIndex > orIndex ) + { + operation = AND; + i = andIndex; + } + else + { + operation = OR; + i = orIndex; + } + } + else if( andIndex >= 0 ) + { + operation = AND; + i = andIndex; + } + else + i = input.Length; + } + + output = Enum.ToObject( enumType, outputInt ); + return true; + } + + public static bool ParseArray( string input, Type arrayType, out object output ) + { + List valuesToParse = new List( 2 ); + FetchArgumentsFromCommand( input, valuesToParse ); + + IList result = (IList) Activator.CreateInstance( arrayType, new object[1] { valuesToParse.Count } ); + output = result; + + if( arrayType.IsArray ) + { + Type elementType = arrayType.GetElementType(); + for( int i = 0; i < valuesToParse.Count; i++ ) + { + object obj; + if( !ParseArgument( valuesToParse[i], elementType, out obj ) ) + return false; + + result[i] = obj; + } + } + else + { + Type elementType = arrayType.GetGenericArguments()[0]; + for( int i = 0; i < valuesToParse.Count; i++ ) + { + object obj; + if( !ParseArgument( valuesToParse[i], elementType, out obj ) ) + return false; + + result.Add( obj ); + } + } + + return true; + } + + // Create a vector of specified type (fill the blank slots with 0 or ignore unnecessary slots) + private static bool ParseVector( string input, Type vectorType, out object output ) + { + List tokens = new List( input.Replace( ',', ' ' ).Trim().Split( ' ' ) ); + for( int i = tokens.Count - 1; i >= 0; i-- ) + { + tokens[i] = tokens[i].Trim(); + if( tokens[i].Length == 0 ) + tokens.RemoveAt( i ); + } + + float[] tokenValues = new float[tokens.Count]; + for( int i = 0; i < tokens.Count; i++ ) + { + object val; + if( !ParseFloat( tokens[i], out val ) ) + { + if( vectorType == typeof( Vector3 ) ) + output = Vector3.zero; + else if( vectorType == typeof( Vector2 ) ) + output = Vector2.zero; + else + output = Vector4.zero; + + return false; + } + + tokenValues[i] = (float) val; + } + + if( vectorType == typeof( Vector3 ) ) + { + Vector3 result = Vector3.zero; + + for( int i = 0; i < tokenValues.Length && i < 3; i++ ) + result[i] = tokenValues[i]; + + output = result; + } + else if( vectorType == typeof( Vector2 ) ) + { + Vector2 result = Vector2.zero; + + for( int i = 0; i < tokenValues.Length && i < 2; i++ ) + result[i] = tokenValues[i]; + + output = result; + } + else if( vectorType == typeof( Vector4 ) ) + { + Vector4 result = Vector4.zero; + + for( int i = 0; i < tokenValues.Length && i < 4; i++ ) + result[i] = tokenValues[i]; + + output = result; + } + else if( vectorType == typeof( Quaternion ) ) + { + Quaternion result = Quaternion.identity; + + for( int i = 0; i < tokenValues.Length && i < 4; i++ ) + result[i] = tokenValues[i]; + + output = result; + } + else if( vectorType == typeof( Color ) ) + { + Color result = Color.black; + + for( int i = 0; i < tokenValues.Length && i < 4; i++ ) + result[i] = tokenValues[i]; + + output = result; + } + else if( vectorType == typeof( Color32 ) ) + { + Color32 result = new Color32( 0, 0, 0, 255 ); + + if( tokenValues.Length > 0 ) + result.r = (byte) Mathf.RoundToInt( tokenValues[0] ); + if( tokenValues.Length > 1 ) + result.g = (byte) Mathf.RoundToInt( tokenValues[1] ); + if( tokenValues.Length > 2 ) + result.b = (byte) Mathf.RoundToInt( tokenValues[2] ); + if( tokenValues.Length > 3 ) + result.a = (byte) Mathf.RoundToInt( tokenValues[3] ); + + output = result; + } + else if( vectorType == typeof( Rect ) ) + { + Rect result = Rect.zero; + + if( tokenValues.Length > 0 ) + result.x = tokenValues[0]; + if( tokenValues.Length > 1 ) + result.y = tokenValues[1]; + if( tokenValues.Length > 2 ) + result.width = tokenValues[2]; + if( tokenValues.Length > 3 ) + result.height = tokenValues[3]; + + output = result; + } + else if( vectorType == typeof( RectOffset ) ) + { + RectOffset result = new RectOffset(); + + if( tokenValues.Length > 0 ) + result.left = Mathf.RoundToInt( tokenValues[0] ); + if( tokenValues.Length > 1 ) + result.right = Mathf.RoundToInt( tokenValues[1] ); + if( tokenValues.Length > 2 ) + result.top = Mathf.RoundToInt( tokenValues[2] ); + if( tokenValues.Length > 3 ) + result.bottom = Mathf.RoundToInt( tokenValues[3] ); + + output = result; + } + else if( vectorType == typeof( Bounds ) ) + { + Vector3 center = Vector3.zero; + for( int i = 0; i < tokenValues.Length && i < 3; i++ ) + center[i] = tokenValues[i]; + + Vector3 size = Vector3.zero; + for( int i = 3; i < tokenValues.Length && i < 6; i++ ) + size[i - 3] = tokenValues[i]; + + output = new Bounds( center, size ); + } +#if UNITY_2017_2_OR_NEWER + else if( vectorType == typeof( Vector3Int ) ) + { + Vector3Int result = Vector3Int.zero; + + for( int i = 0; i < tokenValues.Length && i < 3; i++ ) + result[i] = Mathf.RoundToInt( tokenValues[i] ); + + output = result; + } + else if( vectorType == typeof( Vector2Int ) ) + { + Vector2Int result = Vector2Int.zero; + + for( int i = 0; i < tokenValues.Length && i < 2; i++ ) + result[i] = Mathf.RoundToInt( tokenValues[i] ); + + output = result; + } + else if( vectorType == typeof( RectInt ) ) + { + RectInt result = new RectInt(); + + if( tokenValues.Length > 0 ) + result.x = Mathf.RoundToInt( tokenValues[0] ); + if( tokenValues.Length > 1 ) + result.y = Mathf.RoundToInt( tokenValues[1] ); + if( tokenValues.Length > 2 ) + result.width = Mathf.RoundToInt( tokenValues[2] ); + if( tokenValues.Length > 3 ) + result.height = Mathf.RoundToInt( tokenValues[3] ); + + output = result; + } + else if( vectorType == typeof( BoundsInt ) ) + { + Vector3Int center = Vector3Int.zero; + for( int i = 0; i < tokenValues.Length && i < 3; i++ ) + center[i] = Mathf.RoundToInt( tokenValues[i] ); + + Vector3Int size = Vector3Int.zero; + for( int i = 3; i < tokenValues.Length && i < 6; i++ ) + size[i - 3] = Mathf.RoundToInt( tokenValues[i] ); + + output = new BoundsInt( center, size ); + } +#endif + else + { + output = null; + return false; + } + + return true; + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogConsole.cs.meta b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogConsole.cs.meta new file mode 100644 index 00000000..756bdf78 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogConsole.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d15693a03d0d33b4892c6365a2a97e19 +timeCreated: 1472036503 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogEntry.cs b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogEntry.cs new file mode 100644 index 00000000..083f4f7b --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogEntry.cs @@ -0,0 +1,187 @@ +using System.Collections.Generic; +using System.Globalization; +using System.Text; +using UnityEngine; + +// Container for a simple debug entry +namespace IngameDebugConsole +{ + public class DebugLogEntry + { + private const int HASH_NOT_CALCULATED = -623218; + + public string logString; + public string stackTrace; + private string completeLog; + + // Sprite to show with this entry + public LogType logType; + + // Collapsed count + public int count; + + // Index of this entry among all collapsed entries + public int collapsedIndex; + + private int hashValue; + + public void Initialize( string logString, string stackTrace ) + { + this.logString = logString; + this.stackTrace = stackTrace; + + completeLog = null; + count = 1; + hashValue = HASH_NOT_CALCULATED; + } + + public void Clear() + { + logString = null; + stackTrace = null; + completeLog = null; + } + + // Checks if logString or stackTrace contains the search term + public bool MatchesSearchTerm( string searchTerm ) + { + return ( logString != null && DebugLogConsole.caseInsensitiveComparer.IndexOf( logString, searchTerm, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) >= 0 ) || + ( stackTrace != null && DebugLogConsole.caseInsensitiveComparer.IndexOf( stackTrace, searchTerm, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) >= 0 ); + } + + // Return a string containing complete information about this debug entry + public override string ToString() + { + if( completeLog == null ) + completeLog = string.Concat( logString, "\n", stackTrace ); + + return completeLog; + } + + // Credit: https://stackoverflow.com/a/19250516/2373034 + public int GetContentHashCode() + { + if( hashValue == HASH_NOT_CALCULATED ) + { + unchecked + { + hashValue = 17; + hashValue = hashValue * 23 + ( logString == null ? 0 : logString.GetHashCode() ); + hashValue = hashValue * 23 + ( stackTrace == null ? 0 : stackTrace.GetHashCode() ); + } + } + + return hashValue; + } + } + + public struct QueuedDebugLogEntry + { + public readonly string logString; + public readonly string stackTrace; + public readonly LogType logType; + + public QueuedDebugLogEntry( string logString, string stackTrace, LogType logType ) + { + this.logString = logString; + this.stackTrace = stackTrace; + this.logType = logType; + } + + // Checks if logString or stackTrace contains the search term + public bool MatchesSearchTerm( string searchTerm ) + { + return ( logString != null && DebugLogConsole.caseInsensitiveComparer.IndexOf( logString, searchTerm, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) >= 0 ) || + ( stackTrace != null && DebugLogConsole.caseInsensitiveComparer.IndexOf( stackTrace, searchTerm, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace ) >= 0 ); + } + } + + public struct DebugLogEntryTimestamp + { + public readonly System.DateTime dateTime; +#if !IDG_OMIT_ELAPSED_TIME + public readonly float elapsedSeconds; +#endif +#if !IDG_OMIT_FRAMECOUNT + public readonly int frameCount; +#endif + +#if !IDG_OMIT_ELAPSED_TIME && !IDG_OMIT_FRAMECOUNT + public DebugLogEntryTimestamp( System.DateTime dateTime, float elapsedSeconds, int frameCount ) +#elif !IDG_OMIT_ELAPSED_TIME + public DebugLogEntryTimestamp( System.DateTime dateTime, float elapsedSeconds ) +#elif !IDG_OMIT_FRAMECOUNT + public DebugLogEntryTimestamp( System.DateTime dateTime, int frameCount ) +#else + public DebugLogEntryTimestamp( System.DateTime dateTime ) +#endif + { + this.dateTime = dateTime; +#if !IDG_OMIT_ELAPSED_TIME + this.elapsedSeconds = elapsedSeconds; +#endif +#if !IDG_OMIT_FRAMECOUNT + this.frameCount = frameCount; +#endif + } + + public void AppendTime( StringBuilder sb ) + { + // Add DateTime in format: [HH:mm:ss] + sb.Append( "[" ); + + int hour = dateTime.Hour; + if( hour >= 10 ) + sb.Append( hour ); + else + sb.Append( "0" ).Append( hour ); + + sb.Append( ":" ); + + int minute = dateTime.Minute; + if( minute >= 10 ) + sb.Append( minute ); + else + sb.Append( "0" ).Append( minute ); + + sb.Append( ":" ); + + int second = dateTime.Second; + if( second >= 10 ) + sb.Append( second ); + else + sb.Append( "0" ).Append( second ); + + sb.Append( "]" ); + } + + public void AppendFullTimestamp( StringBuilder sb ) + { + AppendTime( sb ); + +#if !IDG_OMIT_ELAPSED_TIME && !IDG_OMIT_FRAMECOUNT + // Append elapsed seconds and frame count in format: [1.0s at #Frame] + sb.Append( "[" ).Append( elapsedSeconds.ToString( "F1" ) ).Append( "s at " ).Append( "#" ).Append( frameCount ).Append( "]" ); +#elif !IDG_OMIT_ELAPSED_TIME + // Append elapsed seconds in format: [1.0s] + sb.Append( "[" ).Append( elapsedSeconds.ToString( "F1" ) ).Append( "s]" ); +#elif !IDG_OMIT_FRAMECOUNT + // Append frame count in format: [#Frame] + sb.Append( "[#" ).Append( frameCount ).Append( "]" ); +#endif + } + } + + public class DebugLogEntryContentEqualityComparer : EqualityComparer + { + public override bool Equals( DebugLogEntry x, DebugLogEntry y ) + { + return x.logString == y.logString && x.stackTrace == y.stackTrace; + } + + public override int GetHashCode( DebugLogEntry obj ) + { + return obj.GetContentHashCode(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogEntry.cs.meta b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogEntry.cs.meta new file mode 100644 index 00000000..3a1dd214 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogEntry.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e7b1a420c564be040bf73b8a377fc2c2 +timeCreated: 1466375168 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItem.cs b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItem.cs new file mode 100644 index 00000000..16dbd343 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItem.cs @@ -0,0 +1,282 @@ +using UnityEngine; +using UnityEngine.UI; +using UnityEngine.EventSystems; +using System.Text; +#if UNITY_EDITOR +using UnityEditor; +using System.Text.RegularExpressions; +#endif + +// A UI element to show information about a debug entry +namespace IngameDebugConsole +{ + public class DebugLogItem : MonoBehaviour, IPointerClickHandler + { + #region Platform Specific Elements +#if !UNITY_2018_1_OR_NEWER +#if !UNITY_EDITOR && UNITY_ANDROID + private static AndroidJavaClass m_ajc = null; + private static AndroidJavaClass AJC + { + get + { + if( m_ajc == null ) + m_ajc = new AndroidJavaClass( "com.yasirkula.unity.DebugConsole" ); + + return m_ajc; + } + } + + private static AndroidJavaObject m_context = null; + private static AndroidJavaObject Context + { + get + { + if( m_context == null ) + { + using( AndroidJavaObject unityClass = new AndroidJavaClass( "com.unity3d.player.UnityPlayer" ) ) + { + m_context = unityClass.GetStatic( "currentActivity" ); + } + } + + return m_context; + } + } +#elif !UNITY_EDITOR && UNITY_IOS + [System.Runtime.InteropServices.DllImport( "__Internal" )] + private static extern void _DebugConsole_CopyText( string text ); +#endif +#endif + #endregion + +#pragma warning disable 0649 + // Cached components + [SerializeField] + private RectTransform transformComponent; + public RectTransform Transform { get { return transformComponent; } } + + [SerializeField] + private Image imageComponent; + public Image Image { get { return imageComponent; } } + + [SerializeField] + private CanvasGroup canvasGroupComponent; + public CanvasGroup CanvasGroup { get { return canvasGroupComponent; } } + + [SerializeField] + private Text logText; + [SerializeField] + private Image logTypeImage; + + // Objects related to the collapsed count of the debug entry + [SerializeField] + private GameObject logCountParent; + [SerializeField] + private Text logCountText; + + [SerializeField] + private RectTransform copyLogButton; +#pragma warning restore 0649 + + // Debug entry to show with this log item + private DebugLogEntry logEntry; + public DebugLogEntry Entry { get { return logEntry; } } + + private DebugLogEntryTimestamp? logEntryTimestamp; + public DebugLogEntryTimestamp? Timestamp { get { return logEntryTimestamp; } } + + // Index of the entry in the list of entries + [System.NonSerialized] public int Index; + + private bool isExpanded; + public bool Expanded { get { return isExpanded; } } + + private Vector2 logTextOriginalPosition; + private Vector2 logTextOriginalSize; + private float copyLogButtonHeight; + + private DebugLogRecycledListView listView; + + public void Initialize( DebugLogRecycledListView listView ) + { + this.listView = listView; + + logTextOriginalPosition = logText.rectTransform.anchoredPosition; + logTextOriginalSize = logText.rectTransform.sizeDelta; + copyLogButtonHeight = copyLogButton.anchoredPosition.y + copyLogButton.sizeDelta.y + 2f; // 2f: space between text and button + +#if !UNITY_EDITOR && UNITY_WEBGL + copyLogButton.gameObject.AddComponent().Initialize( this ); +#endif + } + + public void SetContent( DebugLogEntry logEntry, DebugLogEntryTimestamp? logEntryTimestamp, int entryIndex, bool isExpanded ) + { + this.logEntry = logEntry; + this.logEntryTimestamp = logEntryTimestamp; + this.Index = entryIndex; + this.isExpanded = isExpanded; + + Vector2 size = transformComponent.sizeDelta; + if( isExpanded ) + { + logText.horizontalOverflow = HorizontalWrapMode.Wrap; + size.y = listView.SelectedItemHeight; + + if( !copyLogButton.gameObject.activeSelf ) + { + copyLogButton.gameObject.SetActive( true ); + + logText.rectTransform.anchoredPosition = new Vector2( logTextOriginalPosition.x, logTextOriginalPosition.y + copyLogButtonHeight * 0.5f ); + logText.rectTransform.sizeDelta = logTextOriginalSize - new Vector2( 0f, copyLogButtonHeight ); + } + } + else + { + logText.horizontalOverflow = HorizontalWrapMode.Overflow; + size.y = listView.ItemHeight; + + if( copyLogButton.gameObject.activeSelf ) + { + copyLogButton.gameObject.SetActive( false ); + + logText.rectTransform.anchoredPosition = logTextOriginalPosition; + logText.rectTransform.sizeDelta = logTextOriginalSize; + } + } + + transformComponent.sizeDelta = size; + + SetText( logEntry, logEntryTimestamp, isExpanded ); + logTypeImage.sprite = DebugLogManager.logSpriteRepresentations[(int) logEntry.logType]; + } + + // Show the collapsed count of the debug entry + public void ShowCount() + { + logCountText.text = logEntry.count.ToString(); + + if( !logCountParent.activeSelf ) + logCountParent.SetActive( true ); + } + + // Hide the collapsed count of the debug entry + public void HideCount() + { + if( logCountParent.activeSelf ) + logCountParent.SetActive( false ); + } + + // Update the debug entry's displayed timestamp + public void UpdateTimestamp( DebugLogEntryTimestamp timestamp ) + { + logEntryTimestamp = timestamp; + + if( isExpanded || listView.manager.alwaysDisplayTimestamps ) + SetText( logEntry, timestamp, isExpanded ); + } + + private void SetText( DebugLogEntry logEntry, DebugLogEntryTimestamp? logEntryTimestamp, bool isExpanded ) + { + if( !logEntryTimestamp.HasValue || ( !isExpanded && !listView.manager.alwaysDisplayTimestamps ) ) + logText.text = isExpanded ? logEntry.ToString() : logEntry.logString; + else + { + StringBuilder sb = listView.manager.sharedStringBuilder; + sb.Length = 0; + + if( isExpanded ) + { + logEntryTimestamp.Value.AppendFullTimestamp( sb ); + sb.Append( ": " ).Append( logEntry.ToString() ); + } + else + { + logEntryTimestamp.Value.AppendTime( sb ); + sb.Append( " " ).Append( logEntry.logString ); + } + + logText.text = sb.ToString(); + } + } + + // This log item is clicked, show the debug entry's stack trace + public void OnPointerClick( PointerEventData eventData ) + { +#if UNITY_EDITOR + if( eventData.button == PointerEventData.InputButton.Right ) + { + Match regex = Regex.Match( logEntry.stackTrace, @"\(at .*\.cs:[0-9]+\)$", RegexOptions.Multiline ); + if( regex.Success ) + { + string line = logEntry.stackTrace.Substring( regex.Index + 4, regex.Length - 5 ); + int lineSeparator = line.IndexOf( ':' ); + MonoScript script = AssetDatabase.LoadAssetAtPath( line.Substring( 0, lineSeparator ) ); + if( script != null ) + AssetDatabase.OpenAsset( script, int.Parse( line.Substring( lineSeparator + 1 ) ) ); + } + } + else + listView.OnLogItemClicked( this ); +#else + listView.OnLogItemClicked( this ); +#endif + } + + public void CopyLog() + { +#if UNITY_EDITOR || !UNITY_WEBGL + string log = GetCopyContent(); + if( string.IsNullOrEmpty( log ) ) + return; + +#if UNITY_EDITOR || UNITY_2018_1_OR_NEWER || ( !UNITY_ANDROID && !UNITY_IOS ) + GUIUtility.systemCopyBuffer = log; +#elif UNITY_ANDROID + AJC.CallStatic( "CopyText", Context, log ); +#elif UNITY_IOS + _DebugConsole_CopyText( log ); +#endif +#endif + } + + internal string GetCopyContent() + { + if( !logEntryTimestamp.HasValue ) + return logEntry.ToString(); + else + { + StringBuilder sb = listView.manager.sharedStringBuilder; + sb.Length = 0; + + logEntryTimestamp.Value.AppendFullTimestamp( sb ); + sb.Append( ": " ).Append( logEntry.ToString() ); + + return sb.ToString(); + } + } + + public float CalculateExpandedHeight( DebugLogEntry logEntry, DebugLogEntryTimestamp? logEntryTimestamp ) + { + string text = logText.text; + HorizontalWrapMode wrapMode = logText.horizontalOverflow; + + SetText( logEntry, logEntryTimestamp, true ); + logText.horizontalOverflow = HorizontalWrapMode.Wrap; + + float result = logText.preferredHeight + copyLogButtonHeight; + + logText.text = text; + logText.horizontalOverflow = wrapMode; + + return Mathf.Max( listView.ItemHeight, result ); + } + + // Return a string containing complete information about the debug entry + public override string ToString() + { + return logEntry.ToString(); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItem.cs.meta b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItem.cs.meta new file mode 100644 index 00000000..15a0f84c --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItem.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d2ea291be9de70a4abfec595203c96c1 +timeCreated: 1465919949 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItemCopyWebGL.cs b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItemCopyWebGL.cs new file mode 100644 index 00000000..a02f3ad9 --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItemCopyWebGL.cs @@ -0,0 +1,36 @@ +#if !UNITY_EDITOR && UNITY_WEBGL +using System.Runtime.InteropServices; +using UnityEngine; +using UnityEngine.EventSystems; + +namespace IngameDebugConsole +{ + public class DebugLogItemCopyWebGL : MonoBehaviour, IPointerDownHandler, IPointerUpHandler + { + [DllImport( "__Internal" )] + private static extern void IngameDebugConsoleStartCopy( string textToCopy ); + [DllImport( "__Internal" )] + private static extern void IngameDebugConsoleCancelCopy(); + + private DebugLogItem logItem; + + public void Initialize( DebugLogItem logItem ) + { + this.logItem = logItem; + } + + public void OnPointerDown( PointerEventData eventData ) + { + string log = logItem.GetCopyContent(); + if( !string.IsNullOrEmpty( log ) ) + IngameDebugConsoleStartCopy( log ); + } + + public void OnPointerUp( PointerEventData eventData ) + { + if( eventData.dragging ) + IngameDebugConsoleCancelCopy(); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItemCopyWebGL.cs.meta b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItemCopyWebGL.cs.meta new file mode 100644 index 00000000..539dfd8a --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogItemCopyWebGL.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5a7d9d894141e704d8160fb4632121ac +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogManager.cs b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogManager.cs new file mode 100644 index 00000000..4daccadc --- /dev/null +++ b/Assets/Plugins/IngameDebugConsole/Scripts/DebugLogManager.cs @@ -0,0 +1,1889 @@ +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Text; +using UnityEngine; +using UnityEngine.UI; +using UnityEngine.EventSystems; +#if ENABLE_INPUT_SYSTEM && !ENABLE_LEGACY_INPUT_MANAGER +using UnityEngine.InputSystem; +#endif +#if UNITY_EDITOR && UNITY_2021_1_OR_NEWER +using Screen = UnityEngine.Device.Screen; // To support Device Simulator on Unity 2021.1+ +#endif + +// Receives debug entries and custom events (e.g. Clear, Collapse, Filter by Type) +// and notifies the recycled list view of changes to the list of debug entries +// +// - Vocabulary - +// Debug/Log entry: a Debug.Log/LogError/LogWarning/LogException/LogAssertion request made by +// the client and intercepted by this manager object +// Debug/Log item: a visual (uGUI) representation of a debug entry +// +// There can be a lot of debug entries in the system but there will only be a handful of log items +// to show their properties on screen (these log items are recycled as the list is scrolled) + +// An enum to represent filtered log types +namespace IngameDebugConsole +{ + public enum DebugLogFilter + { + None = 0, + Info = 1, + Warning = 2, + Error = 4, + All = ~0 + } + + public enum PopupVisibility + { + Always = 0, + WhenLogReceived = 1, + Never = 2 + } + + public class DebugLogManager : MonoBehaviour + { + public static DebugLogManager Instance { get; private set; } + +#pragma warning disable 0649 + [Header( "Properties" )] + [SerializeField] + [HideInInspector] + [Tooltip( "If enabled, console window will persist between scenes (i.e. not be destroyed when scene changes)" )] + private bool singleton = true; + + [SerializeField] + [HideInInspector] + [Tooltip( "Minimum height of the console window" )] + private float minimumHeight = 200f; + + [SerializeField] + [HideInInspector] + [Tooltip( "If enabled, console window can be resized horizontally, as well" )] + private bool enableHorizontalResizing = false; + + [SerializeField] + [HideInInspector] + [Tooltip( "If enabled, console window's resize button will be located at bottom-right corner. Otherwise, it will be located at bottom-left corner" )] + private bool resizeFromRight = true; + + [SerializeField] + [HideInInspector] + [Tooltip( "Minimum width of the console window" )] + private float minimumWidth = 240f; + + [SerializeField] + [HideInInspector] + [Tooltip( "Opacity of the console window" )] + [Range( 0f, 1f )] + private float logWindowOpacity = 1f; + + [SerializeField] + [HideInInspector] + [Tooltip( "Opacity of the popup" )] + [Range( 0f, 1f )] + internal float popupOpacity = 1f; + + [SerializeField] + [HideInInspector] + [Tooltip( "Determines when the popup will show up (after the console window is closed)" )] + private PopupVisibility popupVisibility = PopupVisibility.Always; + + [SerializeField] + [HideInInspector] + [Tooltip( "Determines which log types will show the popup on screen" )] + private DebugLogFilter popupVisibilityLogFilter = DebugLogFilter.All; + + [SerializeField] + [HideInInspector] + [Tooltip( "If enabled, console window will initially be invisible" )] + private bool startMinimized = false; + + [SerializeField] + [HideInInspector] + [Tooltip( "If enabled, pressing the Toggle Key will show/hide (i.e. toggle) the console window at runtime" )] + private bool toggleWithKey = false; + +#if ENABLE_INPUT_SYSTEM && !ENABLE_LEGACY_INPUT_MANAGER + [SerializeField] + [HideInInspector] + public InputAction toggleBinding = new InputAction( "Toggle Binding", type: InputActionType.Button, binding: "/backquote", expectedControlType: "Button" ); +#else + [SerializeField] + [HideInInspector] + private KeyCode toggleKey = KeyCode.BackQuote; +#endif + + [SerializeField] + [HideInInspector] + [Tooltip( "If enabled, the console window will have a searchbar" )] + private bool enableSearchbar = true; + + [SerializeField] + [HideInInspector] + [Tooltip( "Width of the canvas determines whether the searchbar will be located inside the menu bar or underneath the menu bar. This way, the menu bar doesn't get too crowded on narrow screens. This value determines the minimum width of the canvas for the searchbar to appear inside the menu bar" )] + private float topSearchbarMinWidth = 360f; + + [SerializeField] + [HideInInspector] + [Tooltip( "If enabled, the console window will continue receiving logs in the background even if its GameObject is inactive. But the console window's GameObject needs to be activated at least once because its Awake function must be triggered for this to work" )] + private bool receiveLogsWhileInactive = false; + + [SerializeField] + [HideInInspector] + private bool receiveInfoLogs = true, receiveWarningLogs = true, receiveErrorLogs = true, receiveExceptionLogs = true; + + [SerializeField] + [HideInInspector] + [Tooltip( "If enabled, the arrival times of logs will be recorded and displayed when a log is expanded" )] + private bool captureLogTimestamps = false; + + [SerializeField] + [HideInInspector] + [Tooltip( "If enabled, timestamps will be displayed for logs even if they aren't expanded" )] + internal bool alwaysDisplayTimestamps = false; + + [SerializeField] + [HideInInspector] + [Tooltip( "If the number of logs reach this limit, the oldest log(s) will be deleted to limit the RAM usage. It's recommended to set this value as low as possible" )] + private int maxLogCount = int.MaxValue; + + [SerializeField] + [HideInInspector] + [Tooltip( "How many log(s) to delete when the threshold is reached (all logs are iterated during this operation so it should neither be too low nor too high)" )] + private int logsToRemoveAfterMaxLogCount = 16; + + [SerializeField] + [HideInInspector] + [Tooltip( "While the console window is hidden, incoming logs will be queued but not immediately processed until the console window is opened (to avoid wasting CPU resources). When the log queue exceeds this limit, the first logs in the queue will be processed to enforce this limit. Processed logs won't increase RAM usage if they've been seen before (i.e. collapsible logs) but this is not the case for queued logs, so if a log is spammed every frame, it will fill the whole queue in an instant. Which is why there is a queue limit" )] + private int queuedLogLimit = 256; + + [SerializeField] + [HideInInspector] + [Tooltip( "If enabled, the command input field at the bottom of the console window will automatically be cleared after entering a command" )] + private bool clearCommandAfterExecution = true; + + [SerializeField] + [HideInInspector] + [Tooltip( "Console keeps track of the previously entered commands. This value determines the capacity of the command history (you can scroll through the history via up and down arrow keys while the command input field is focused)" )] + private int commandHistorySize = 15; + + [SerializeField] + [HideInInspector] + [Tooltip( "If enabled, while typing a command, all of the matching commands' signatures will be displayed in a popup" )] + private bool showCommandSuggestions = true; + + [SerializeField] + [HideInInspector] + [Tooltip( "If enabled, on Android platform, logcat entries of the application will also be logged to the console with the prefix \"LOGCAT: \". This may come in handy especially if you want to access the native logs of your Android plugins (like Admob)" )] + private bool receiveLogcatLogsInAndroid = false; + +#pragma warning disable 0414 +#if UNITY_2018_3_OR_NEWER // On older Unity versions, disabling CS0169 is problematic: "Cannot restore warning 'CS0169' because it was disabled globally" +#pragma warning disable 0169 +#endif + [SerializeField] + [HideInInspector] + [Tooltip( "Native logs will be filtered using these arguments. If left blank, all native logs of the application will be logged to the console. But if you want to e.g. see Admob's logs only, you can enter \"-s Ads\" (without quotes) here" )] + private string logcatArguments; +#if UNITY_2018_3_OR_NEWER +#pragma warning restore 0169 +#endif +#pragma warning restore 0414 + + [SerializeField] + [HideInInspector] + [Tooltip( "If enabled, on Android and iOS devices with notch screens, the console window will be repositioned so that the cutout(s) don't obscure it" )] + private bool avoidScreenCutout = true; + + [SerializeField] + [HideInInspector] + [Tooltip( "If enabled, on Android and iOS devices with notch screens, the console window's popup won't be obscured by the screen cutouts" )] + internal bool popupAvoidsScreenCutout = false; + + [SerializeField] + [Tooltip( "If a log is longer than this limit, it will be truncated. This helps avoid reaching Unity's 65000 vertex limit for UI canvases" )] + private int maxLogLength = 10000; + +#if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WEBGL + [SerializeField] + [HideInInspector] + [Tooltip( "If enabled, on standalone platforms, command input field will automatically be focused (start receiving keyboard input) after opening the console window" )] + private bool autoFocusOnCommandInputField = true; +#endif + + [Header( "Visuals" )] + [SerializeField] + private DebugLogItem logItemPrefab; + + [SerializeField] + private Text commandSuggestionPrefab; + + // Visuals for different log types + [SerializeField] + private Sprite infoLog; + [SerializeField] + private Sprite warningLog; + [SerializeField] + private Sprite errorLog; + + internal static Sprite[] logSpriteRepresentations; + + // Visuals for resize button + [SerializeField] + private Sprite resizeIconAllDirections; + [SerializeField] + private Sprite resizeIconVerticalOnly; + + [SerializeField] + private Color collapseButtonNormalColor; + [SerializeField] + private Color collapseButtonSelectedColor; + + [SerializeField] + private Color filterButtonsNormalColor; + [SerializeField] + private Color filterButtonsSelectedColor; + + [SerializeField] + private string commandSuggestionHighlightStart = ""; + [SerializeField] + private string commandSuggestionHighlightEnd = ""; + + [Header( "Internal References" )] + [SerializeField] + private RectTransform logWindowTR; + + internal RectTransform canvasTR; + + [SerializeField] + private RectTransform logItemsContainer; + + [SerializeField] + private RectTransform commandSuggestionsContainer; + + [SerializeField] + private InputField commandInputField; + + [SerializeField] + private Button hideButton; + + [SerializeField] + private Button clearButton; + + [SerializeField] + private Image collapseButton; + + [SerializeField] + private Image filterInfoButton; + [SerializeField] + private Image filterWarningButton; + [SerializeField] + private Image filterErrorButton; + + [SerializeField] + private Text infoEntryCountText; + [SerializeField] + private Text warningEntryCountText; + [SerializeField] + private Text errorEntryCountText; + + [SerializeField] + private RectTransform searchbar; + [SerializeField] + private RectTransform searchbarSlotTop; + [SerializeField] + private RectTransform searchbarSlotBottom; + + [SerializeField] + private Image resizeButton; + + [SerializeField] + private GameObject snapToBottomButton; + + // Canvas group to modify visibility of the log window + [SerializeField] + private CanvasGroup logWindowCanvasGroup; + + [SerializeField] + private DebugLogPopup popupManager; + + [SerializeField] + private ScrollRect logItemsScrollRect; + private RectTransform logItemsScrollRectTR; + private Vector2 logItemsScrollRectOriginalSize; + + // Recycled list view to handle the log items efficiently + [SerializeField] + private DebugLogRecycledListView recycledListView; +#pragma warning restore 0649 + + private bool isLogWindowVisible = true; + public bool IsLogWindowVisible { get { return isLogWindowVisible; } } + + public bool PopupEnabled + { + get { return popupManager.gameObject.activeSelf; } + set { popupManager.gameObject.SetActive( value ); } + } + + private bool screenDimensionsChanged = true; + private float logWindowPreviousWidth; + + // Number of entries filtered by their types + private int infoEntryCount = 0, warningEntryCount = 0, errorEntryCount = 0; + private bool entryCountTextsDirty; + + // Number of new entries received this frame + private int newInfoEntryCount = 0, newWarningEntryCount = 0, newErrorEntryCount = 0; + + // Filters to apply to the list of debug entries to show + private bool isCollapseOn = false; + private DebugLogFilter logFilter = DebugLogFilter.All; + + // Search filter + private string searchTerm; + private bool isInSearchMode; + + // If the last log item is completely visible (scrollbar is at the bottom), + // scrollbar will remain at the bottom when new debug entries are received + [System.NonSerialized] + public bool SnapToBottom = true; + + // List of unique debug entries (duplicates of entries are not kept) + private DynamicCircularBuffer collapsedLogEntries; + private DynamicCircularBuffer collapsedLogEntriesTimestamps; + + // Dictionary to quickly find if a log already exists in collapsedLogEntries + private Dictionary collapsedLogEntriesMap; + + // The order the collapsedLogEntries are received + // (duplicate entries have the same value) + private DynamicCircularBuffer uncollapsedLogEntries; + private DynamicCircularBuffer uncollapsedLogEntriesTimestamps; + + // Filtered list of debug entries to show + private DynamicCircularBuffer logEntriesToShow; + private DynamicCircularBuffer timestampsOfLogEntriesToShow; + + // The log entry that must be focused this frame + private int indexOfLogEntryToSelectAndFocus = -1; + + // Whether or not logs list view should be updated this frame + private bool shouldUpdateRecycledListView = true; + + // Logs that should be registered in Update-loop + private DynamicCircularBuffer queuedLogEntries; + private DynamicCircularBuffer queuedLogEntriesTimestamps; + private object logEntriesLock; + private int pendingLogToAutoExpand; + + // Command suggestions that match the currently entered command + private List commandSuggestionInstances; + private int visibleCommandSuggestionInstances = 0; + private List matchingCommandSuggestions; + private List commandCaretIndexIncrements; + private string commandInputFieldPrevCommand; + private string commandInputFieldPrevCommandName; + private int commandInputFieldPrevParamCount = -1; + private int commandInputFieldPrevCaretPos = -1; + private int commandInputFieldPrevCaretArgumentIndex = -1; + + // Value of the command input field when autocomplete was first requested + private string commandInputFieldAutoCompleteBase; + private bool commandInputFieldAutoCompletedNow; + + // Pools for memory efficiency + private Stack pooledLogEntries; + private Stack pooledLogItems; + + /// Variables used by + private bool anyCollapsedLogRemoved; + private int removedLogEntriesToShowCount; + + // History of the previously entered commands + private CircularBuffer commandHistory; + private int commandHistoryIndex = -1; + private string unfinishedCommand; + + // StringBuilder used by various functions + internal StringBuilder sharedStringBuilder; + + // Offset of DateTime.Now from DateTime.UtcNow + private System.TimeSpan localTimeUtcOffset; + + // Last recorded values of Time.realtimeSinceStartup and Time.frameCount on the main thread (because these Time properties can't be accessed from other threads) +#if !IDG_OMIT_ELAPSED_TIME + private float lastElapsedSeconds; +#endif +#if !IDG_OMIT_FRAMECOUNT + private int lastFrameCount; +#endif + + private DebugLogEntryTimestamp dummyLogEntryTimestamp; + + // Required in ValidateScrollPosition() function + private PointerEventData nullPointerEventData; + + private System.Action poolLogEntryAction; + private System.Action removeUncollapsedLogEntryAction; + private System.Predicate shouldRemoveCollapsedLogEntryPredicate; + private System.Predicate shouldRemoveLogEntryToShowPredicate; + private System.Action updateLogEntryCollapsedIndexAction; + + // Callbacks for log window show/hide events + public System.Action OnLogWindowShown, OnLogWindowHidden; + +#if UNITY_EDITOR + private bool isQuittingApplication; +#endif + +#if !UNITY_EDITOR && UNITY_ANDROID + private DebugLogLogcatListener logcatListener; +#endif + + private void Awake() + { + // Only one instance of debug console is allowed + if( !Instance ) + { + Instance = this; + + // If it is a singleton object, don't destroy it between scene changes + if( singleton ) + DontDestroyOnLoad( gameObject ); + } + else if( Instance != this ) + { + Destroy( gameObject ); + return; + } + + pooledLogEntries = new Stack( 64 ); + pooledLogItems = new Stack( 16 ); + commandSuggestionInstances = new List( 8 ); + matchingCommandSuggestions = new List( 8 ); + commandCaretIndexIncrements = new List( 8 ); + queuedLogEntries = new DynamicCircularBuffer( Mathf.Clamp( queuedLogLimit, 16, 4096 ) ); + commandHistory = new CircularBuffer( commandHistorySize ); + + logEntriesLock = new object(); + sharedStringBuilder = new StringBuilder( 1024 ); + + canvasTR = (RectTransform) transform; + logItemsScrollRectTR = (RectTransform) logItemsScrollRect.transform; + logItemsScrollRectOriginalSize = logItemsScrollRectTR.sizeDelta; + + // Associate sprites with log types + logSpriteRepresentations = new Sprite[5]; + logSpriteRepresentations[(int) LogType.Log] = infoLog; + logSpriteRepresentations[(int) LogType.Warning] = warningLog; + logSpriteRepresentations[(int) LogType.Error] = errorLog; + logSpriteRepresentations[(int) LogType.Exception] = errorLog; + logSpriteRepresentations[(int) LogType.Assert] = errorLog; + + // Initially, all log types are visible + filterInfoButton.color = filterButtonsSelectedColor; + filterWarningButton.color = filterButtonsSelectedColor; + filterErrorButton.color = filterButtonsSelectedColor; + + resizeButton.sprite = enableHorizontalResizing ? resizeIconAllDirections : resizeIconVerticalOnly; + + collapsedLogEntries = new DynamicCircularBuffer( 128 ); + collapsedLogEntriesMap = new Dictionary( 128, new DebugLogEntryContentEqualityComparer() ); + uncollapsedLogEntries = new DynamicCircularBuffer( 256 ); + logEntriesToShow = new DynamicCircularBuffer( 256 ); + + if( captureLogTimestamps ) + { + collapsedLogEntriesTimestamps = new DynamicCircularBuffer( 128 ); + uncollapsedLogEntriesTimestamps = new DynamicCircularBuffer( 256 ); + timestampsOfLogEntriesToShow = new DynamicCircularBuffer( 256 ); + queuedLogEntriesTimestamps = new DynamicCircularBuffer( queuedLogEntries.Capacity ); + } + + recycledListView.Initialize( this, logEntriesToShow, timestampsOfLogEntriesToShow, logItemPrefab.Transform.sizeDelta.y ); + + if( minimumWidth < 100f ) + minimumWidth = 100f; + if( minimumHeight < 200f ) + minimumHeight = 200f; + + if( !resizeFromRight ) + { + RectTransform resizeButtonTR = (RectTransform) resizeButton.GetComponentInParent().transform; + resizeButtonTR.anchorMin = new Vector2( 0f, resizeButtonTR.anchorMin.y ); + resizeButtonTR.anchorMax = new Vector2( 0f, resizeButtonTR.anchorMax.y ); + resizeButtonTR.pivot = new Vector2( 0f, resizeButtonTR.pivot.y ); + + ( (RectTransform) commandInputField.transform ).anchoredPosition += new Vector2( resizeButtonTR.sizeDelta.x, 0f ); + } + + if( enableSearchbar ) + searchbar.GetComponent().onValueChanged.AddListener( SearchTermChanged ); + else + { + searchbar = null; + searchbarSlotTop.gameObject.SetActive( false ); + searchbarSlotBottom.gameObject.SetActive( false ); + } + + filterInfoButton.gameObject.SetActive( receiveInfoLogs ); + filterWarningButton.gameObject.SetActive( receiveWarningLogs ); + filterErrorButton.gameObject.SetActive( receiveErrorLogs || receiveExceptionLogs ); + + if( commandSuggestionsContainer.gameObject.activeSelf ) + commandSuggestionsContainer.gameObject.SetActive( false ); + + // Register to UI events + commandInputField.onValidateInput += OnValidateCommand; + commandInputField.onValueChanged.AddListener( OnEditCommand ); + commandInputField.onEndEdit.AddListener( OnEndEditCommand ); + hideButton.onClick.AddListener( HideLogWindow ); + clearButton.onClick.AddListener( ClearLogs ); + collapseButton.GetComponent