├── tilde.asmdef ├── Docs~ ├── drawer.gif ├── windowed.gif ├── tilde_title.png ├── drawer.gif.meta ├── tilde_title.png.meta └── windowed.gif.meta ├── Sprites ├── TildeLogo.png ├── TildeButton_Close.png ├── TildeButton_Grow.png ├── TildeButton_Close.png.meta ├── TildeLogo.png.meta └── TildeButton_Grow.png.meta ├── Fonts ├── DroidSansMono.ttf └── DroidSansMono.ttf.meta ├── Remote Console ├── TildeLogo.bytes ├── index.bytes.meta ├── TildeLogo.bytes.meta └── index.bytes ├── Scripts ├── Scrollback.cs.meta ├── TildeWebConsoleServer.cs.meta ├── Drag.cs.meta ├── Resize.cs.meta ├── TildeConsole.cs.meta ├── DrawerConsole.cs.meta ├── WindowedConsole.cs.meta ├── Attributes.cs.meta ├── Autocompleter.cs.meta ├── BuiltinCommands.cs.meta ├── Attributes.cs ├── BuiltinCommands.cs ├── Autocompleter.cs ├── Resize.cs ├── Drag.cs ├── Scrollback.cs ├── WindowedConsole.cs ├── DrawerConsole.cs ├── TildeWebConsoleServer.cs └── TildeConsole.cs ├── Fonts.meta ├── Prefabs.meta ├── Scripts.meta ├── Sprites.meta ├── Prefabs ├── Windowed Console.prefab.meta ├── Tilde.prefab.meta ├── Drawer Console.prefab.meta ├── Tilde.prefab ├── Drawer Console.prefab └── Windowed Console.prefab ├── Samples~ └── Demo │ ├── Tilde Example.unity.meta │ └── Tilde Example.unity ├── CHANGELOG.md.meta ├── LICENSE.md.meta ├── README.md.meta ├── package.json.meta ├── tilde.asmdef.meta ├── Remote Console.meta ├── .gitignore ├── package.json ├── LICENSE.md ├── CHANGELOG.md └── README.md /tilde.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tilde" 3 | } 4 | -------------------------------------------------------------------------------- /Docs~/drawer.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grahamboree/tilde/HEAD/Docs~/drawer.gif -------------------------------------------------------------------------------- /Docs~/windowed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grahamboree/tilde/HEAD/Docs~/windowed.gif -------------------------------------------------------------------------------- /Docs~/tilde_title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grahamboree/tilde/HEAD/Docs~/tilde_title.png -------------------------------------------------------------------------------- /Sprites/TildeLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grahamboree/tilde/HEAD/Sprites/TildeLogo.png -------------------------------------------------------------------------------- /Fonts/DroidSansMono.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grahamboree/tilde/HEAD/Fonts/DroidSansMono.ttf -------------------------------------------------------------------------------- /Remote Console/TildeLogo.bytes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grahamboree/tilde/HEAD/Remote Console/TildeLogo.bytes -------------------------------------------------------------------------------- /Sprites/TildeButton_Close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grahamboree/tilde/HEAD/Sprites/TildeButton_Close.png -------------------------------------------------------------------------------- /Sprites/TildeButton_Grow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grahamboree/tilde/HEAD/Sprites/TildeButton_Grow.png -------------------------------------------------------------------------------- /Scripts/Scrollback.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fb72d082b0234343beecd94330005b0f 3 | timeCreated: 1657950438 -------------------------------------------------------------------------------- /Scripts/TildeWebConsoleServer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ad3993055e524994a796d1715d39c13e 3 | timeCreated: 1654369216 -------------------------------------------------------------------------------- /Fonts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 89b4f9f55d45743babd559e1350d91fb 3 | folderAsset: yes 4 | DefaultImporter: 5 | userData: 6 | -------------------------------------------------------------------------------- /Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2a107968ca13a44b093dc9873d7e3a33 3 | folderAsset: yes 4 | DefaultImporter: 5 | userData: 6 | -------------------------------------------------------------------------------- /Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 639078333890147508a2be716755c275 3 | folderAsset: yes 4 | DefaultImporter: 5 | userData: 6 | -------------------------------------------------------------------------------- /Sprites.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2050d749e2d7949a4b1d31db47f95d15 3 | folderAsset: yes 4 | DefaultImporter: 5 | userData: 6 | -------------------------------------------------------------------------------- /Prefabs/Windowed Console.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 83db041da528e48efb33934c6b2c4504 3 | NativeFormatImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Samples~/Demo/Tilde Example.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 60b99797af86d4515a4830bf3cf6eb65 3 | DefaultImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /CHANGELOG.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e62619b0b2cf9470a8c35af54f959ccf 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /LICENSE.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ae0c550ecb87c465aa4c0610ca894d1d 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /README.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6981d74841bd04309974a4840e2ca64c 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Prefabs/Tilde.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9ece047c6761c45b3a368c2589f10aa6 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /package.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f43c37ca2e2bf4a0db00df2162f72f80 3 | PackageManifestImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /tilde.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5fa9b24de519549f5aaceab6629d9612 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Remote Console/index.bytes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5b24656afd31744c191d10adddc3d9e2 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Remote Console.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e682185230923492288213ab473f9867 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Remote Console/TildeLogo.bytes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7cb82080937754ccfb089eec8264c93d 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Scripts/Drag.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 752a966ed8bfb4e65be6d7ca04f3fb5a 3 | MonoImporter: 4 | serializedVersion: 2 5 | defaultReferences: [] 6 | executionOrder: 0 7 | icon: {instanceID: 0} 8 | userData: 9 | -------------------------------------------------------------------------------- /Scripts/Resize.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c0703438ab04e4175a9b2dab3e0db7b6 3 | MonoImporter: 4 | serializedVersion: 2 5 | defaultReferences: [] 6 | executionOrder: 0 7 | icon: {instanceID: 0} 8 | userData: 9 | -------------------------------------------------------------------------------- /Scripts/TildeConsole.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2eb62627c72204743941947f60534808 3 | MonoImporter: 4 | serializedVersion: 2 5 | defaultReferences: [] 6 | executionOrder: 0 7 | icon: {instanceID: 0} 8 | userData: 9 | -------------------------------------------------------------------------------- /Scripts/DrawerConsole.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ab557bbf3995f40f998168b9594b16df 3 | MonoImporter: 4 | serializedVersion: 2 5 | defaultReferences: [] 6 | executionOrder: 0 7 | icon: {instanceID: 0} 8 | userData: 9 | -------------------------------------------------------------------------------- /Scripts/WindowedConsole.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2e9e6a485f6c64bae85b8570fb72fcf6 3 | MonoImporter: 4 | serializedVersion: 2 5 | defaultReferences: [] 6 | executionOrder: 0 7 | icon: {instanceID: 0} 8 | userData: 9 | -------------------------------------------------------------------------------- /Prefabs/Drawer Console.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 65d686389c5bf4ab6a262d16193ac8cb 3 | timeCreated: 1427555038 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Attributes.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f739e8cb554fc458fabb3b698f62c3cc 3 | timeCreated: 1467693466 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Scripts/Autocompleter.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4490b8b3492cbe84a826a2835c1d56de 3 | timeCreated: 1465186520 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Scripts/BuiltinCommands.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 42e3b9283c3274723a88b84d599925ca 3 | timeCreated: 1426044647 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Visual Studio cache directory 3 | .vs/ 4 | 5 | # Autogenerated VS/MD/Consulo solution and project files 6 | ExportedObj/ 7 | .consulo/ 8 | *.csproj 9 | *.unityproj 10 | *.sln 11 | *.suo 12 | *.tmp 13 | *.user 14 | *.userprefs 15 | *.pidb 16 | *.booproj 17 | *.svd 18 | *.pdb 19 | *.mdb 20 | *.opendb 21 | *.VC.db 22 | .idea/ 23 | 24 | # Because git ignores things ending in ~ normally. 25 | !/*~/ 26 | -------------------------------------------------------------------------------- /Fonts/DroidSansMono.ttf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 52fbb1602eac45b488f6a1789eba5a4e 3 | timeCreated: 1444418315 4 | licenseType: Pro 5 | TrueTypeFontImporter: 6 | serializedVersion: 2 7 | fontSize: 16 8 | forceTextureCase: -2 9 | characterSpacing: 1 10 | characterPadding: 0 11 | includeFontData: 1 12 | use2xBehaviour: 0 13 | fontNames: [] 14 | fallbackFontReferences: [] 15 | customCharacters: 16 | fontRenderingMode: 0 17 | userData: 18 | assetBundleName: 19 | assetBundleVariant: 20 | -------------------------------------------------------------------------------- /Scripts/Attributes.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Tilde { 4 | [AttributeUsage(AttributeTargets.Method, Inherited = false)] 5 | public class ConsoleCommandAttribute : Attribute { 6 | public readonly string CommandName; 7 | public readonly string Docstring; 8 | 9 | public ConsoleCommandAttribute(string name = null, string docs = "") { 10 | CommandName = name; 11 | Docstring = docs; 12 | } 13 | } 14 | 15 | [AttributeUsage(AttributeTargets.Method, Inherited = false, AllowMultiple = true)] 16 | public class CompletionAttribute : Attribute { 17 | public readonly int ArgIndex; 18 | public readonly string[] Options; 19 | 20 | public CompletionAttribute(int argIndex, params string[] options) { 21 | ArgIndex = argIndex; 22 | Options = options; 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "com.grahamboree.tilde", 3 | "displayName": "tilde", 4 | "documentationUrl": "https://github.com/grahamboree/tilde", 5 | "version": "1.0.3", 6 | "unity": "2019.4", 7 | "description": "A remote developer console for Unity", 8 | "keywords": [ 9 | "console", 10 | "remote", 11 | "debugging" 12 | ], 13 | "samples": [ 14 | { 15 | "displayName": "Window and Drawer console demo", 16 | "description": "A scene that shows the general tilde setup, and shows off both of the included console types", 17 | "path": "Samples~/Demo" 18 | } 19 | ], 20 | "author": { 21 | "name" : "Graham Pentheny", 22 | "email" : "g@grahamboree.com", 23 | "url" : "http://grahamboree.com/" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Scripts/BuiltinCommands.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.SceneManagement; 3 | using System.Linq; 4 | 5 | namespace Tilde { 6 | public static class BuiltinCommands { 7 | [ConsoleCommand(name: "res", docs: "List supported fullscreen resolutions on this device")] 8 | static string SupportedResolutions() { 9 | return string.Join("\n", Screen.resolutions.Select(x => x.width + "x" + x.height).ToArray()); 10 | } 11 | 12 | [ConsoleCommand(docs: "Exit the game.")] 13 | static void exit() { 14 | #if UNITY_EDITOR 15 | UnityEditor.EditorApplication.isPlaying = false; 16 | #else 17 | Application.Quit(); 18 | #endif 19 | } 20 | 21 | [ConsoleCommand(docs: "Load a scene with the given name.")] 22 | static void loadLevel(string[] options) { 23 | if (options.Length == 0) { 24 | throw new System.Exception("You must specify the name of a scene to load with 'loadlevel'."); 25 | } 26 | SceneManager.LoadScene(options[0]); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Graham Pentheny 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Scripts/Autocompleter.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Linq; 3 | 4 | namespace Tilde { 5 | public class Autocompleter { 6 | public Autocompleter(IEnumerable options) { 7 | this.options = options; 8 | } 9 | 10 | public string Complete(string partialSelection) { 11 | if (partialSelection.StartsWith(partial) && currentCompletionOffset > 0) { 12 | partialSelection = partial; 13 | } else { 14 | partial = partialSelection; 15 | currentCompletionOffset = 0; 16 | } 17 | var matches = options.Where(x => x.StartsWith(partialSelection)).ToList(); 18 | int count = matches.Count; 19 | if (!matches.Contains(partialSelection)) { 20 | count++; 21 | } 22 | currentCompletionOffset %= count; 23 | string result = matches 24 | .Skip(currentCompletionOffset) 25 | .FirstOrDefault(); 26 | currentCompletionOffset++; 27 | return result ?? partialSelection; 28 | } 29 | 30 | public void ResetCurrentState() { 31 | currentCompletionOffset = 0; 32 | partial = ""; 33 | } 34 | 35 | ////////////////////////////////////////////////// 36 | 37 | /// The original string we're completing. 38 | string partial = ""; 39 | 40 | int currentCompletionOffset; 41 | readonly IEnumerable options; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /Scripts/Resize.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | 4 | namespace Tilde { 5 | public class Resize : MonoBehaviour, IPointerDownHandler, IDragHandler { 6 | public Vector2 minSize = new(100, 100); 7 | public RectTransform panelRectTransform; 8 | Vector2 originalLocalPointerPosition; 9 | Vector2 originalSizeDelta; 10 | 11 | public void OnPointerDown(PointerEventData data) { 12 | originalSizeDelta = panelRectTransform.sizeDelta; 13 | RectTransformUtility.ScreenPointToLocalPointInRectangle(panelRectTransform, data.position, data.pressEventCamera, out originalLocalPointerPosition); 14 | } 15 | 16 | public void OnDrag(PointerEventData data) { 17 | if (panelRectTransform == null) { 18 | return; 19 | } 20 | 21 | RectTransformUtility.ScreenPointToLocalPointInRectangle(panelRectTransform, data.position, data.pressEventCamera, out var localPointerPosition); 22 | 23 | Vector3 offsetToOriginal = localPointerPosition - originalLocalPointerPosition; 24 | 25 | Vector2 sizeDelta = originalSizeDelta + new Vector2(offsetToOriginal.x, -offsetToOriginal.y); 26 | sizeDelta = new Vector2(Mathf.Clamp(sizeDelta.x, minSize.x, sizeDelta.x), Mathf.Clamp(sizeDelta.y, minSize.y, sizeDelta.y)); 27 | 28 | panelRectTransform.sizeDelta = sizeDelta; 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | All notable changes to this project will be documented in this file. 4 | 5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), 6 | and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). 7 | 8 | ## [Unreleased] 9 | 10 | ### Added 11 | 12 | - 13 | 14 | ### Fixed 15 | 16 | - 17 | 18 | ## [v1.0.3] 19 | 20 | ### Fixed 21 | 22 | - Fixed package json version number 23 | 24 | ## [v1.0.2] 25 | 26 | ### Fixed 27 | 28 | - Fixes large scroll backs failing to render because the mesh Text Mesh Pro generates exceeds the 65000 triangle single mesh limit in Unity 29 | 30 | ## [v1.0.1] 31 | 32 | ### Fixed 33 | 34 | - Package json version number matches release number now. 35 | 36 | ## [v1.0.0] 37 | 38 | ### Added 39 | 40 | - More efficient command scrollback. Avoids re-allocating the scrollback contents every time it's accessed. 41 | - Unity package layout and package-based installation instructions. 42 | 43 | ## [0.1.0] - 2022-07-14 44 | 45 | ### Added 46 | 47 | - Initial version 48 | 49 | [unreleased]: https://github.com/grahamboree/tilde/compare/v1.0.3...HEAD 50 | [1.0.3]: https://github.com/grahamboree/tilde/releases/tag/v1.0.3 51 | [1.0.2]: https://github.com/grahamboree/tilde/releases/tag/v1.0.2 52 | [1.0.1]: https://github.com/grahamboree/tilde/releases/tag/v1.0.1 53 | [1.0.0]: https://github.com/grahamboree/tilde/releases/tag/v1.0.0 54 | [0.1.0]: https://github.com/grahamboree/tilde/releases/tag/v0.1.0 55 | -------------------------------------------------------------------------------- /Scripts/Drag.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | 4 | namespace Tilde { 5 | public class Drag : MonoBehaviour, IPointerDownHandler, IDragHandler { 6 | [SerializeField] RectTransform panelRectTransform; 7 | 8 | ////////////////////////////////////////////////// 9 | 10 | public void OnPointerDown(PointerEventData data) { 11 | originalPanelLocalPosition = panelRectTransform.localPosition; 12 | RectTransformUtility.ScreenPointToLocalPointInRectangle(parentRectTransform, data.position, data.pressEventCamera, out originalLocalPointerPosition); 13 | } 14 | 15 | public void OnDrag(PointerEventData data) { 16 | if (panelRectTransform == null || parentRectTransform == null) { 17 | return; 18 | } 19 | 20 | if (RectTransformUtility.ScreenPointToLocalPointInRectangle(parentRectTransform, data.position, data.pressEventCamera, out var localPointerPosition)) { 21 | Vector3 offsetToOriginal = localPointerPosition - originalLocalPointerPosition; 22 | panelRectTransform.localPosition = originalPanelLocalPosition + offsetToOriginal; 23 | } 24 | } 25 | 26 | ////////////////////////////////////////////////// 27 | 28 | Vector2 originalLocalPointerPosition; 29 | Vector3 originalPanelLocalPosition; 30 | RectTransform parentRectTransform; 31 | 32 | ////////////////////////////////////////////////// 33 | 34 | #region MonoBehaviour 35 | void Awake() { 36 | parentRectTransform = panelRectTransform.parent as RectTransform; 37 | } 38 | #endregion 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /Prefabs/Tilde.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &5554939547148895916 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 5554939547148895905} 12 | - component: {fileID: 5554939547148895918} 13 | - component: {fileID: 5554939547148895919} 14 | m_Layer: 0 15 | m_Name: Tilde 16 | m_TagString: Untagged 17 | m_Icon: {fileID: 0} 18 | m_NavMeshLayer: 0 19 | m_StaticEditorFlags: 0 20 | m_IsActive: 1 21 | --- !u!4 &5554939547148895905 22 | Transform: 23 | m_ObjectHideFlags: 0 24 | m_CorrespondingSourceObject: {fileID: 0} 25 | m_PrefabInstance: {fileID: 0} 26 | m_PrefabAsset: {fileID: 0} 27 | m_GameObject: {fileID: 5554939547148895916} 28 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 29 | m_LocalPosition: {x: 0, y: 0, z: 0} 30 | m_LocalScale: {x: 1, y: 1, z: 1} 31 | m_ConstrainProportionsScale: 0 32 | m_Children: [] 33 | m_Father: {fileID: 0} 34 | m_RootOrder: 0 35 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 36 | --- !u!114 &5554939547148895918 37 | MonoBehaviour: 38 | m_ObjectHideFlags: 0 39 | m_CorrespondingSourceObject: {fileID: 0} 40 | m_PrefabInstance: {fileID: 0} 41 | m_PrefabAsset: {fileID: 0} 42 | m_GameObject: {fileID: 5554939547148895916} 43 | m_Enabled: 1 44 | m_EditorHideFlags: 0 45 | m_Script: {fileID: 11500000, guid: 2eb62627c72204743941947f60534808, type: 3} 46 | m_Name: 47 | m_EditorClassIdentifier: 48 | showUnityLogMessages: 1 49 | caseInsensitiveMatching: 1 50 | --- !u!114 &5554939547148895919 51 | MonoBehaviour: 52 | m_ObjectHideFlags: 0 53 | m_CorrespondingSourceObject: {fileID: 0} 54 | m_PrefabInstance: {fileID: 0} 55 | m_PrefabAsset: {fileID: 0} 56 | m_GameObject: {fileID: 5554939547148895916} 57 | m_Enabled: 1 58 | m_EditorHideFlags: 0 59 | m_Script: {fileID: 11500000, guid: ad3993055e524994a796d1715d39c13e, type: 3} 60 | m_Name: 61 | m_EditorClassIdentifier: 62 | Console: {fileID: 5554939547148895918} 63 | Port: 55055 64 | IndexHTML: {fileID: 4900000, guid: 5b24656afd31744c191d10adddc3d9e2, type: 3} 65 | LogoPNG: {fileID: 4900000, guid: 7cb82080937754ccfb089eec8264c93d, type: 3} 66 | -------------------------------------------------------------------------------- /Scripts/Scrollback.cs: -------------------------------------------------------------------------------- 1 | using System.Text; 2 | 3 | namespace Tilde { 4 | public class Scrollback { 5 | const string LOG_COLOR = "#586ED7"; 6 | const string WARNING_COLOR = "#B58900"; 7 | const string ERROR_COLOR = "#DC322F"; 8 | 9 | const int MAX_SCROLLBACK_CHARS = 15000; 10 | 11 | string uiScrollBackCache; 12 | bool uiScrollBackCacheIsDirty = true; 13 | readonly StringBuilder uiScrollBack = new(); 14 | 15 | string remoteScrollBackCache; 16 | bool remoteScrollBackCacheIsDirty = true; 17 | readonly StringBuilder remoteScrollBack = new(); 18 | 19 | public void Append(string message, LogLineType messageType) { 20 | if (messageType == LogLineType.Normal) { 21 | uiScrollBack.Append("\n" + message); 22 | } else { 23 | string color = messageType == LogLineType.UnityLog ? LOG_COLOR 24 | : messageType == LogLineType.Warning ? WARNING_COLOR 25 | : ERROR_COLOR; 26 | uiScrollBack.Append($"\n{message}"); 27 | } 28 | 29 | remoteScrollBack.Append($"\n[{messageType}]{message}[/{messageType}]"); 30 | 31 | uiScrollBackCacheIsDirty = true; 32 | remoteScrollBackCacheIsDirty = true; 33 | 34 | TrimScrollbacks(); 35 | } 36 | 37 | public string ToUIString() { 38 | if (uiScrollBackCacheIsDirty) { 39 | uiScrollBackCache = uiScrollBack.ToString(); 40 | uiScrollBackCacheIsDirty = false; 41 | } 42 | return uiScrollBackCache; 43 | } 44 | 45 | public string ToRemoteString() { 46 | if (remoteScrollBackCacheIsDirty) { 47 | remoteScrollBackCache = uiScrollBack.ToString(); 48 | remoteScrollBackCacheIsDirty = false; 49 | } 50 | return remoteScrollBackCache; 51 | } 52 | 53 | void TrimScrollbacks() { 54 | int uiDelta = uiScrollBack.Length - MAX_SCROLLBACK_CHARS; 55 | if (uiDelta > 0) { 56 | uiScrollBack.Remove(0, uiDelta); 57 | } 58 | 59 | int remoteDelta = remoteScrollBack.Length - MAX_SCROLLBACK_CHARS; 60 | if (remoteDelta > 0) { 61 | remoteScrollBack.Remove(0, remoteDelta); 62 | } 63 | } 64 | } 65 | } -------------------------------------------------------------------------------- /Docs~/drawer.gif.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 186bc2c9451ce4fa39362f664587fde1 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 1 33 | maxTextureSize: 2048 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 1 38 | mipBias: 0 39 | wrapU: 0 40 | wrapV: 0 41 | wrapW: 0 42 | nPOTScale: 1 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 0 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 0 55 | spriteTessellationDetail: -1 56 | textureType: 0 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 0 66 | platformSettings: 67 | - serializedVersion: 3 68 | buildTarget: DefaultTexturePlatform 69 | maxTextureSize: 2048 70 | resizeAlgorithm: 0 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | androidETC2FallbackOverride: 0 78 | forceMaximumCompressionQuality_BC6H_BC7: 0 79 | spriteSheet: 80 | serializedVersion: 2 81 | sprites: [] 82 | outline: [] 83 | physicsShape: [] 84 | bones: [] 85 | spriteID: 86 | internalID: 0 87 | vertices: [] 88 | indices: 89 | edges: [] 90 | weights: [] 91 | secondaryTextures: [] 92 | nameFileIdTable: {} 93 | spritePackingTag: 94 | pSDRemoveMatte: 0 95 | pSDShowRemoveMatteOption: 0 96 | userData: 97 | assetBundleName: 98 | assetBundleVariant: 99 | -------------------------------------------------------------------------------- /Docs~/tilde_title.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0a2d7e871ea9d41b4980c918a76d2892 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 1 33 | maxTextureSize: 2048 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 1 38 | mipBias: 0 39 | wrapU: 0 40 | wrapV: 0 41 | wrapW: 0 42 | nPOTScale: 1 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 0 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 0 55 | spriteTessellationDetail: -1 56 | textureType: 0 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 0 66 | platformSettings: 67 | - serializedVersion: 3 68 | buildTarget: DefaultTexturePlatform 69 | maxTextureSize: 2048 70 | resizeAlgorithm: 0 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | androidETC2FallbackOverride: 0 78 | forceMaximumCompressionQuality_BC6H_BC7: 0 79 | spriteSheet: 80 | serializedVersion: 2 81 | sprites: [] 82 | outline: [] 83 | physicsShape: [] 84 | bones: [] 85 | spriteID: 86 | internalID: 0 87 | vertices: [] 88 | indices: 89 | edges: [] 90 | weights: [] 91 | secondaryTextures: [] 92 | nameFileIdTable: {} 93 | spritePackingTag: 94 | pSDRemoveMatte: 0 95 | pSDShowRemoveMatteOption: 0 96 | userData: 97 | assetBundleName: 98 | assetBundleVariant: 99 | -------------------------------------------------------------------------------- /Docs~/windowed.gif.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 04f95b08fe79349ce96097a501f62c39 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 1 33 | maxTextureSize: 2048 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 1 38 | mipBias: 0 39 | wrapU: 0 40 | wrapV: 0 41 | wrapW: 0 42 | nPOTScale: 1 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 0 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 0 55 | spriteTessellationDetail: -1 56 | textureType: 0 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 0 66 | platformSettings: 67 | - serializedVersion: 3 68 | buildTarget: DefaultTexturePlatform 69 | maxTextureSize: 2048 70 | resizeAlgorithm: 0 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | androidETC2FallbackOverride: 0 78 | forceMaximumCompressionQuality_BC6H_BC7: 0 79 | spriteSheet: 80 | serializedVersion: 2 81 | sprites: [] 82 | outline: [] 83 | physicsShape: [] 84 | bones: [] 85 | spriteID: 86 | internalID: 0 87 | vertices: [] 88 | indices: 89 | edges: [] 90 | weights: [] 91 | secondaryTextures: [] 92 | nameFileIdTable: {} 93 | spritePackingTag: 94 | pSDRemoveMatte: 0 95 | pSDShowRemoveMatteOption: 0 96 | userData: 97 | assetBundleName: 98 | assetBundleVariant: 99 | -------------------------------------------------------------------------------- /Sprites/TildeButton_Close.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f9b779316ad72433293b182256765fbe 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: -3 33 | maxTextureSize: 2048 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 0 37 | aniso: 1 38 | mipBias: 0 39 | wrapU: 1 40 | wrapV: 1 41 | wrapW: 1 42 | nPOTScale: 0 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 1 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 1 55 | spriteTessellationDetail: -1 56 | textureType: 8 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 1 66 | platformSettings: 67 | - serializedVersion: 3 68 | buildTarget: DefaultTexturePlatform 69 | maxTextureSize: 2048 70 | resizeAlgorithm: 0 71 | textureFormat: -1 72 | textureCompression: 0 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | androidETC2FallbackOverride: 0 78 | forceMaximumCompressionQuality_BC6H_BC7: 0 79 | spriteSheet: 80 | serializedVersion: 2 81 | sprites: [] 82 | outline: [] 83 | physicsShape: [] 84 | bones: [] 85 | spriteID: 5e97eb03825dee720800000000000000 86 | internalID: 0 87 | vertices: [] 88 | indices: 89 | edges: [] 90 | weights: [] 91 | secondaryTextures: [] 92 | nameFileIdTable: {} 93 | spritePackingTag: 94 | pSDRemoveMatte: 0 95 | pSDShowRemoveMatteOption: 0 96 | userData: 97 | assetBundleName: 98 | assetBundleVariant: 99 | -------------------------------------------------------------------------------- /Sprites/TildeLogo.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3e4a824c42b3c71469b634c8e76a765c 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 1 33 | maxTextureSize: 2048 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 1 38 | mipBias: 0 39 | wrapU: 1 40 | wrapV: 1 41 | wrapW: 0 42 | nPOTScale: 0 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 1 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 1 55 | spriteTessellationDetail: -1 56 | textureType: 8 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 0 66 | platformSettings: 67 | - serializedVersion: 3 68 | buildTarget: DefaultTexturePlatform 69 | maxTextureSize: 2048 70 | resizeAlgorithm: 0 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | androidETC2FallbackOverride: 0 78 | forceMaximumCompressionQuality_BC6H_BC7: 0 79 | - serializedVersion: 3 80 | buildTarget: Standalone 81 | maxTextureSize: 2048 82 | resizeAlgorithm: 0 83 | textureFormat: -1 84 | textureCompression: 1 85 | compressionQuality: 50 86 | crunchedCompression: 0 87 | allowsAlphaSplitting: 0 88 | overridden: 0 89 | androidETC2FallbackOverride: 0 90 | forceMaximumCompressionQuality_BC6H_BC7: 0 91 | - serializedVersion: 3 92 | buildTarget: Server 93 | maxTextureSize: 2048 94 | resizeAlgorithm: 0 95 | textureFormat: -1 96 | textureCompression: 1 97 | compressionQuality: 50 98 | crunchedCompression: 0 99 | allowsAlphaSplitting: 0 100 | overridden: 0 101 | androidETC2FallbackOverride: 0 102 | forceMaximumCompressionQuality_BC6H_BC7: 0 103 | spriteSheet: 104 | serializedVersion: 2 105 | sprites: [] 106 | outline: [] 107 | physicsShape: [] 108 | bones: [] 109 | spriteID: 5e97eb03825dee720800000000000000 110 | internalID: 0 111 | vertices: [] 112 | indices: 113 | edges: [] 114 | weights: [] 115 | secondaryTextures: [] 116 | nameFileIdTable: {} 117 | spritePackingTag: 118 | pSDRemoveMatte: 0 119 | pSDShowRemoveMatteOption: 0 120 | userData: 121 | assetBundleName: 122 | assetBundleVariant: 123 | -------------------------------------------------------------------------------- /Sprites/TildeButton_Grow.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b65ce3ba103504488b2ca397cc5b54b9 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: -3 33 | maxTextureSize: 2048 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 1 38 | mipBias: 0 39 | wrapU: 1 40 | wrapV: 1 41 | wrapW: 1 42 | nPOTScale: 0 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 1 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 1 55 | spriteTessellationDetail: -1 56 | textureType: 8 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 1 66 | platformSettings: 67 | - serializedVersion: 3 68 | buildTarget: DefaultTexturePlatform 69 | maxTextureSize: 2048 70 | resizeAlgorithm: 0 71 | textureFormat: -1 72 | textureCompression: 0 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | androidETC2FallbackOverride: 0 78 | forceMaximumCompressionQuality_BC6H_BC7: 0 79 | - serializedVersion: 3 80 | buildTarget: Standalone 81 | maxTextureSize: 2048 82 | resizeAlgorithm: 0 83 | textureFormat: -1 84 | textureCompression: 0 85 | compressionQuality: 50 86 | crunchedCompression: 0 87 | allowsAlphaSplitting: 0 88 | overridden: 0 89 | androidETC2FallbackOverride: 0 90 | forceMaximumCompressionQuality_BC6H_BC7: 0 91 | - serializedVersion: 3 92 | buildTarget: Server 93 | maxTextureSize: 2048 94 | resizeAlgorithm: 0 95 | textureFormat: -1 96 | textureCompression: 0 97 | compressionQuality: 50 98 | crunchedCompression: 0 99 | allowsAlphaSplitting: 0 100 | overridden: 0 101 | androidETC2FallbackOverride: 0 102 | forceMaximumCompressionQuality_BC6H_BC7: 0 103 | spriteSheet: 104 | serializedVersion: 2 105 | sprites: [] 106 | outline: [] 107 | physicsShape: [] 108 | bones: [] 109 | spriteID: 5e97eb03825dee720800000000000000 110 | internalID: 0 111 | vertices: [] 112 | indices: 113 | edges: [] 114 | weights: [] 115 | secondaryTextures: [] 116 | nameFileIdTable: {} 117 | spritePackingTag: 118 | pSDRemoveMatte: 0 119 | pSDShowRemoveMatteOption: 0 120 | userData: 121 | assetBundleName: 122 | assetBundleVariant: 123 | -------------------------------------------------------------------------------- /Scripts/WindowedConsole.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.UI; 3 | using System.Text.RegularExpressions; 4 | 5 | namespace Tilde { 6 | public class WindowedConsole : MonoBehaviour { 7 | public TildeConsole console; 8 | public GameObject consoleWindow; 9 | public Text consoleText; 10 | public InputField commandInput; 11 | 12 | ////////////////////////////////////////////////// 13 | 14 | bool Visible => consoleWindow != null && consoleWindow.gameObject.activeSelf; 15 | int historyOffset; 16 | 17 | ////////////////////////////////////////////////// 18 | 19 | #region MonoBehaviour 20 | void Reset() { 21 | if (console == null) { 22 | console = FindObjectOfType(); 23 | } 24 | } 25 | 26 | void Awake() { 27 | if (console == null) { 28 | console = FindObjectOfType(); 29 | } 30 | 31 | console.Changed += UpdateLogContent; 32 | } 33 | 34 | void Update() { 35 | // Show or hide the console window if the tilde key was pressed. 36 | if (Input.GetKeyDown(KeyCode.BackQuote)) { 37 | bool visible = !consoleWindow.activeSelf; 38 | consoleWindow.gameObject.SetActive(visible); 39 | if (visible) { 40 | UpdateLogContent(console.Content); 41 | commandInput.ActivateInputField(); 42 | commandInput.Select(); 43 | } 44 | commandInput.text = commandInput.text.TrimEnd('`'); 45 | } 46 | 47 | if (Visible && commandInput.isFocused) { 48 | if (Input.GetKeyDown(KeyCode.Return)) { 49 | // Remove newlines... the UI Input Field has to be set to a multiline input field for submission to work 50 | // correctly, so when you hit enter it adds newline characters before Update() can call this function. Remove 51 | // them to get the raw command. 52 | console.RunCommand(Regex.Replace(commandInput.text, @"\n", "")); 53 | 54 | // Reset the history navigation state 55 | historyOffset = 0; 56 | 57 | // Clear and re-select the input field. 58 | commandInput.text = ""; 59 | commandInput.Select(); 60 | commandInput.ActivateInputField(); 61 | } else if (Input.GetKeyDown(KeyCode.UpArrow)) { 62 | string previous = console.GetCommandHistory(historyOffset + 1); 63 | if (previous != null) { 64 | historyOffset++; 65 | commandInput.text = previous; 66 | } 67 | commandInput.MoveTextEnd(false); 68 | } else if (Input.GetKeyDown(KeyCode.DownArrow)) { 69 | string previous = console.GetCommandHistory(historyOffset - 1); 70 | if (previous != null) { 71 | historyOffset--; 72 | commandInput.text = previous; 73 | } 74 | commandInput.MoveTextEnd(false); 75 | } else if (Input.GetKeyDown(KeyCode.Tab)) { 76 | // Autocomplete 77 | string partialCommand = commandInput.text.Replace("\t", ""); 78 | commandInput.text = partialCommand; 79 | partialCommand = partialCommand.TrimStart(); 80 | 81 | if (partialCommand.Trim() != "") { 82 | string result = console.Autocomplete(partialCommand); 83 | if (result != null && result != partialCommand) { 84 | commandInput.text = result; 85 | commandInput.MoveTextEnd(false); 86 | } 87 | } 88 | } else if (Input.anyKeyDown && Input.inputString != "") { 89 | console.Completer.ResetCurrentState(); 90 | } 91 | } 92 | 93 | if (Visible && (Input.GetKey(KeyCode.LeftControl) || Input.GetKey(KeyCode.RightControl)) && Input.GetKeyDown(KeyCode.S)) { 94 | console.SaveToFile("tilde_console_dump.txt"); 95 | } 96 | 97 | // Run any bound commands triggered this frame. 98 | if (!commandInput.isFocused) { 99 | foreach (var boundCommand in console.KeyBindings.Bindings) { 100 | if (Input.GetKeyDown(boundCommand.Key)) { 101 | console.RunCommand(boundCommand.Value); 102 | } 103 | } 104 | } 105 | } 106 | 107 | void OnDestroy() { 108 | console.Changed -= UpdateLogContent; 109 | } 110 | #endregion 111 | 112 | void UpdateLogContent(string log) { 113 | consoleText.text = log; 114 | } 115 | } 116 | } 117 | -------------------------------------------------------------------------------- /Remote Console/index.bytes: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Tilde 6 | 67 | 68 | 69 | 70 | 71 | 72 | 73 |
74 | 75 | 76 | 167 | 168 | 169 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 | 4 | 5 |

6 | 7 |

8 | A remote developer console for Unity 9 |

10 | 11 |

12 | 13 |
14 | 15 | 16 | 17 |

18 | 19 | # ⚡ Quickstart 20 | 1. In the package manager, select "Add package from git URL..." and add tilde using the url `https://github.com/grahamboree/tilde` 21 | 2. Add the `Prefabs/Tilde` prefab to your scene. 22 | 2. Add either the `Prefabs/Drawer Console` or `Prefabs/Windowed Console` prefab to your scene. 23 | 3. Start the game and press the tilde/backtick key to open the console. 24 | 4. Run `help` to list available commands. 25 | 5. Open `localhost:55055` in a web browser to access the remote console. 26 | 27 | # 📸 Screenshots 28 |

29 | Drawer console prefab Windowed console prefab 30 |

31 | 32 | # ✨ Features 33 | * Two styles of console prefabs: window (similar to popular MOBAs) and drawer (similar to classic FPS's). 34 | * Remotely execute commands with a web-based console served by an embedded web server. 35 | * Automatic command registration via function annotation. 36 | * Automatic command history. Cycle through previous commands with the up and down arrow keys. 37 | * Tab autocomplete. 38 | * Auto-generated command names, or specify them explicitly. 39 | * Displays all Unity log, warning, error and exception messages colored as you'd expect. 40 | * Bind keys to run commands with the `bind` and `unbind` commands. 41 | * Supports commands with any number of arguments. 42 | * `help` commmand and basic commmand documentation system. 43 | 44 | # 📲 Remote Console 45 | Tilde also provides an embedded web server and web-based console for executing commands remotely. The default port is `55055`, but it can be specified in the `Tilde Web Console Server` component. This enables you to remotely execute commands on mobile devices or consoles where bringing up a keyboard and typing a command is difficult. 46 | 47 | ❗️It's highly recommended that you disable the remote console in shipping versions of your game. To do so, simply remove the `Tilde Web Console Server` component. 48 | 49 | # 🏗 Adding Commands 50 | Console commands are public, static functions annotated with `[ConsoleCommand]`. Annotated command functions optionally take an array of strings containing the arguments to that command, and also can optionally return a string to be printed to the console as output. 51 | ```cs 52 | // Takes no arguments, no output 53 | [ConsoleCommand] public static void Command1() { ... } 54 | 55 | // Takes no arguments, prints some output 56 | [ConsoleCommand] public static string Command2() { ... } 57 | 58 | // Can take some arguments, no output 59 | [ConsoleCommand] public static void Command3(string[] args) { ... } 60 | 61 | // Can take some arguments, prints some output 62 | [ConsoleCommand] public static string Command4(string[] args) { ... } 63 | ``` 64 | 65 | ## Command Name 66 | The name of a console command is generated from the annotated function's name. You can override this by specifying the `name` argument to the `ConsoleCommand` attribute. 67 | ```cs 68 | // Registers the command "damageThePlayer" 69 | [ConsoleCommand()] 70 | public static void damageThePlayer(string[] args) { ... } 71 | 72 | // Registeres the command "heal" 73 | [ConsoleCommand(name: "heal")] 74 | public static void HealThePlayer(string[] args) { ... } 75 | ``` 76 | 77 | ## Doc String 78 | Console commands can also have a documentation (doc) string associated with them to provide a brief explination of what the command does and how to use it. To add a doc string to a command, specify the `docs` argument to the `ConsoleCommand` attribute. 79 | 80 | ```cs 81 | [ConsoleCommand(name: "heal", docs: "heal the player by the specified amount")] 82 | public static void HealThePlayer(string[] args) { ... } 83 | ``` 84 | 85 | The `help` command shows all the registered commands along with the first line of their doc strings. `help ` shows the full command doc string for a specific command. 86 | 87 | ## Arguments 88 | Commands can optionally consume any number of positional arguments. Arguments are split by whitespace and passed as an array of strings to the command function. The command then processes each argument string as it sees fit. 89 | -------------------------------------------------------------------------------- /Scripts/DrawerConsole.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.UI; 3 | using System.Text.RegularExpressions; 4 | using System.Collections; 5 | 6 | namespace Tilde { 7 | public class DrawerConsole : MonoBehaviour { 8 | [SerializeField] float height = 500.0f; 9 | 10 | [SerializeField] TildeConsole console; 11 | 12 | [Header("UI elements")] 13 | [SerializeField] GameObject consoleWindow; 14 | [SerializeField] Text consoleText; 15 | [SerializeField] InputField commandInput; 16 | 17 | ////////////////////////////////////////////////// 18 | 19 | // Whether or not pressing tilde will cause the console to animate to hidden or animate to shown. 20 | bool shown; 21 | 22 | bool Visible => consoleWindow != null && consoleWindow.activeSelf; 23 | 24 | RectTransform consoleWindowRectTransform; 25 | int historyOffset; 26 | 27 | ////////////////////////////////////////////////// 28 | 29 | #region MonoBehaviour 30 | void Reset() { 31 | if (console == null) { 32 | console = FindObjectOfType(); 33 | } 34 | } 35 | 36 | void Awake() { 37 | if (console == null) { 38 | console = FindObjectOfType(); 39 | } 40 | 41 | consoleWindowRectTransform = consoleWindow.GetComponent(); 42 | consoleWindowRectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, height); 43 | SetConsoleY(height); 44 | console.Changed += UpdateLogContent; 45 | } 46 | 47 | void OnEnable() { 48 | UpdateLogContent(console.Content); 49 | } 50 | 51 | void Update() { 52 | // Show or hide the console window if the tilde key was pressed. 53 | if (Input.GetKeyDown(KeyCode.BackQuote)) { 54 | StopAllCoroutines(); 55 | StartCoroutine(shown ? Hide() : Show()); 56 | shown = !shown; 57 | commandInput.text = commandInput.text.TrimEnd('`'); 58 | } 59 | 60 | if (Visible && commandInput.isFocused) { 61 | if (Input.GetKeyDown(KeyCode.Return)) { 62 | // Remove newlines... the UI Input Field has to be set to a multiline input field for submission to work 63 | // correctly, so when you hit enter it adds newline characters before Update() can call this function. Remove 64 | // them to get the raw command. 65 | console.RunCommand(Regex.Replace(commandInput.text, @"\n", "")); 66 | 67 | // Reset the history navigation state 68 | historyOffset = 0; 69 | 70 | // Clear and re-select the input field. 71 | commandInput.text = ""; 72 | commandInput.Select(); 73 | commandInput.ActivateInputField(); 74 | } else if (Input.GetKeyDown(KeyCode.UpArrow)) { 75 | string previous = console.GetCommandHistory(historyOffset + 1); 76 | if (previous != null) { 77 | historyOffset++; 78 | commandInput.text = previous; 79 | } 80 | commandInput.MoveTextEnd(false); 81 | } else if (Input.GetKeyDown(KeyCode.DownArrow)) { 82 | string previous = console.GetCommandHistory(historyOffset - 1); 83 | if (previous != null) { 84 | historyOffset--; 85 | commandInput.text = previous; 86 | } 87 | commandInput.MoveTextEnd(false); 88 | } else if (Input.GetKeyDown(KeyCode.Tab)) { 89 | // Autocomplete 90 | string partialCommand = commandInput.text.Replace("\t", ""); 91 | commandInput.text = partialCommand; 92 | partialCommand = partialCommand.TrimStart(); 93 | 94 | if (partialCommand.Trim() != "") { 95 | string result = console.Autocomplete(partialCommand); 96 | if (result != null && result != partialCommand) { 97 | commandInput.text = result; 98 | commandInput.MoveTextEnd(false); 99 | } 100 | } 101 | } else if (Input.anyKeyDown && Input.inputString != ""){ 102 | console.Completer.ResetCurrentState(); 103 | } 104 | } 105 | 106 | if (Visible && (Input.GetKey(KeyCode.LeftControl) || Input.GetKey(KeyCode.RightControl)) && Input.GetKeyDown(KeyCode.S)) { 107 | console.SaveToFile("tilde_console_dump.txt"); 108 | } 109 | 110 | // Run any bound commands triggered this frame. 111 | if (!commandInput.isFocused) { 112 | foreach (var boundCommand in console.KeyBindings.Bindings) { 113 | if (Input.GetKeyDown(boundCommand.Key)) { 114 | console.RunCommand(boundCommand.Value); 115 | } 116 | } 117 | } 118 | } 119 | 120 | void OnDestroy() { 121 | console.Changed -= UpdateLogContent; 122 | } 123 | #endregion 124 | 125 | IEnumerator Show() { 126 | UpdateLogContent(console.Content); 127 | consoleWindow.SetActive(true); 128 | commandInput.ActivateInputField(); 129 | commandInput.Select(); 130 | float startTime = Time.time; 131 | float currentPosition = consoleWindowRectTransform.anchoredPosition.y; 132 | while (currentPosition > -height + 4) { 133 | currentPosition = Mathf.Lerp(currentPosition, -height, Time.time - startTime); 134 | SetConsoleY(currentPosition); 135 | yield return null; 136 | } 137 | SetConsoleY(-height); 138 | } 139 | 140 | IEnumerator Hide() { 141 | float startTime = Time.time; 142 | float currentPosition = consoleWindowRectTransform.anchoredPosition.y; 143 | while (currentPosition < height - 4) { 144 | currentPosition = Mathf.Lerp(currentPosition, height, Time.time - startTime); 145 | SetConsoleY(currentPosition); 146 | yield return null; 147 | } 148 | SetConsoleY(height); 149 | 150 | consoleWindow.SetActive(false); 151 | } 152 | 153 | void SetConsoleY(float y) { 154 | var pos = consoleWindowRectTransform.anchoredPosition; 155 | pos.y = y; 156 | consoleWindowRectTransform.anchoredPosition = pos; 157 | } 158 | 159 | void UpdateLogContent(string log) { 160 | consoleText.text = log; 161 | } 162 | } 163 | } 164 | -------------------------------------------------------------------------------- /Scripts/TildeWebConsoleServer.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System; 3 | using System.Net; 4 | using System.Collections.Generic; 5 | using System.Web; 6 | 7 | namespace Tilde { 8 | public static class HttpListenerResponseExtensions { 9 | public static void WriteString(this HttpListenerResponse response, string input) { 10 | response.WriteBytes(System.Text.Encoding.UTF8.GetBytes(input), "text/plain"); 11 | } 12 | 13 | public static void WriteBytes(this HttpListenerResponse response, byte[] bytes, string type) { 14 | response.StatusCode = (int)HttpStatusCode.OK; 15 | response.StatusDescription = "OK"; 16 | response.ContentType = type; 17 | response.ContentLength64 = bytes.Length; 18 | response.OutputStream.Write(bytes, 0, bytes.Length); 19 | response.OutputStream.Close(); 20 | } 21 | } 22 | 23 | public class RequestContext { 24 | public readonly string Path; 25 | 26 | readonly HttpListenerContext context; 27 | 28 | public HttpListenerRequest Request => context.Request; 29 | public HttpListenerResponse Response => context.Response; 30 | 31 | public RequestContext(HttpListenerContext ctx) { 32 | context = ctx; 33 | Path = HttpUtility.HtmlDecode(context.Request.Url.AbsolutePath); 34 | if (Path == "/") { 35 | Path = "/index.html"; 36 | } 37 | } 38 | } 39 | 40 | public sealed class TildeWebConsoleServer : MonoBehaviour { 41 | [SerializeField] TildeConsole Console; 42 | [SerializeField] int Port = 55055; 43 | 44 | [SerializeField] TextAsset IndexHTML; 45 | [SerializeField] TextAsset LogoPNG; 46 | 47 | static HttpListener listener = new(); 48 | static Dictionary> routes; 49 | static readonly Queue responseQueue = new(); 50 | 51 | /// HttpListener callback. This happens on a background thread, so we need to queue response generation for the main thread. 52 | static void ListenerCallback(IAsyncResult result) { 53 | var context = new RequestContext(listener.EndGetContext(result)); 54 | 55 | try { 56 | if (context.Request.HttpMethod is "GET" or "HEAD" && routes.TryGetValue(context.Path, out var handler)) { 57 | // Queue a closure for main thread execution 58 | lock (responseQueue) { 59 | responseQueue.Enqueue(() => { 60 | handler(context); 61 | context.Response.Close(); 62 | }); 63 | } 64 | } else { 65 | context.Response.StatusCode = (int)HttpStatusCode.NotFound; 66 | context.Response.StatusDescription = "Not Found"; 67 | context.Response.Close(); 68 | } 69 | } catch (Exception exception) { 70 | context.Response.StatusCode = (int)HttpStatusCode.InternalServerError; 71 | context.Response.StatusDescription = $"Fatal error:\n{exception}"; 72 | context.Response.Close(); 73 | Debug.LogException(exception); 74 | } 75 | 76 | if (listener.IsListening) { 77 | listener.BeginGetContext(ListenerCallback, null); 78 | } 79 | } 80 | 81 | void Reset() { 82 | if (Console == null) { 83 | Console = FindObjectOfType(); 84 | } 85 | } 86 | 87 | public void Awake() { 88 | if (Console == null) { 89 | Console = FindObjectOfType(); 90 | } 91 | 92 | // Register Routes 93 | routes = new Dictionary> { 94 | ["/index.html"] = context => context.Response.WriteBytes(IndexHTML.bytes, "text/html"), 95 | ["/TildeLogo.png"] = context => context.Response.WriteBytes(LogoPNG.bytes, "image/png"), 96 | ["/console/out"] = context => context.Response.WriteString(HttpUtility.HtmlEncode(Console.RemoteContent)), 97 | ["/console/run"] = context => { 98 | Console.RunCommand(Uri.UnescapeDataString(context.Request.QueryString.Get("command"))); 99 | context.Response.StatusCode = (int)HttpStatusCode.OK; 100 | context.Response.StatusDescription = "OK"; 101 | }, 102 | ["/console/history"] = context => { 103 | string index = context.Request.QueryString.Get("index"); 104 | string previous = null; 105 | if (!string.IsNullOrEmpty(index)) { 106 | previous = Console.History[int.Parse(index)]; 107 | } 108 | context.Response.WriteString(previous); 109 | }, 110 | ["/console/complete"] = context => { 111 | string partialCommand = context.Request.QueryString.Get("command"); 112 | string found = null; 113 | if (partialCommand != null) { 114 | found = Console.Completer.Complete(partialCommand); 115 | } 116 | context.Response.WriteString(found); 117 | } 118 | }; 119 | 120 | // Start the server 121 | Debug.Log("Starting Tilde Server on port : " + Port); 122 | listener.Prefixes.Add("http://*:" + Port + "/"); 123 | listener.Start(); 124 | listener.BeginGetContext(ListenerCallback, null); 125 | } 126 | 127 | public void OnApplicationPause(bool paused) { 128 | if (paused) { 129 | listener.Stop(); 130 | } else { 131 | listener.Start(); 132 | listener.BeginGetContext(ListenerCallback, null); 133 | } 134 | } 135 | 136 | void LateUpdate() { 137 | lock (responseQueue) { 138 | while (responseQueue.Count != 0) { 139 | responseQueue.Dequeue()(); 140 | } 141 | } 142 | } 143 | 144 | void OnDestroy() { 145 | listener.Close(); 146 | listener = null; 147 | } 148 | } 149 | } -------------------------------------------------------------------------------- /Scripts/TildeConsole.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System; 3 | using System.Reflection; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Text.RegularExpressions; 7 | using System.Collections.Generic; 8 | 9 | namespace Tilde { 10 | public enum LogLineType { 11 | Normal, 12 | UnityLog, 13 | Warning, 14 | Error 15 | } 16 | 17 | public class TildeConsole : MonoBehaviour { 18 | #region Types 19 | // Registering commands 20 | delegate string CommandAction(params string[] args); 21 | delegate void SilentCommandAction(params string[] args); 22 | delegate string SimpleCommandAction(); 23 | delegate void SimpleSilentCommandAction(); 24 | 25 | class RegisteredCommand { 26 | public string Docs; 27 | public CommandAction Action; 28 | public Autocompleter[] Completers; 29 | } 30 | 31 | class UnknownCommandException : Exception { 32 | public UnknownCommandException(string command) : base("Unknown command: " + command) { } 33 | } 34 | #endregion 35 | 36 | ////////////////////////////////////////////////// 37 | 38 | [SerializeField] bool showUnityLogMessages = true; 39 | [SerializeField] bool caseInsensitiveMatching = true; 40 | 41 | ////////////////////////////////////////////////// 42 | 43 | /// The complete console command execution history. 44 | public readonly List History = new(); 45 | 46 | /// The Console command autocompleter. 47 | public Autocompleter Completer; 48 | 49 | public readonly BoundCommands KeyBindings = new(); 50 | 51 | /// Occurs when the log contents have changed, most often occurring when a command is executed. 52 | public event Action Changed; 53 | 54 | /// The full console log string. 55 | public string Content => Scrollback.ToUIString(); 56 | 57 | /// The full console log string formatted for the remote web console. 58 | public string RemoteContent => Scrollback.ToRemoteString(); 59 | 60 | ////////////////////////////////////////////////// 61 | 62 | /// 63 | /// Print a string to the console window. Appears as if it was command output. 64 | /// 65 | /// The text to print. 66 | public void OutputStringToConsole(string message) { 67 | AppendOutput(message, LogLineType.Normal); 68 | } 69 | 70 | /// 71 | /// Run a console command. This is used by the text input UI to parse and execute commands. 72 | /// 73 | /// The complete command string, including any arguments. 74 | public void RunCommand(string command) { 75 | AppendOutput("> " + command, LogLineType.Normal); 76 | 77 | if (string.IsNullOrEmpty(command)) { 78 | return; 79 | } 80 | 81 | History.Add(command); 82 | 83 | try { 84 | AppendOutput(SilentlyRunCommand(command), LogLineType.Normal); 85 | } catch (Exception e) { 86 | AppendOutput(e.Message, LogLineType.Error); 87 | } 88 | } 89 | 90 | /// 91 | /// Execute a console command, but do not display output in the console window. 92 | /// 93 | /// The complete command string, including any arguments. 94 | /// Thrown when the command is not found 95 | public string SilentlyRunCommand(string commandString) { 96 | string[] splitCommand = commandString.Split(' '); 97 | string commandName = splitCommand[0]; 98 | if (!TryGetCommand(commandName, out var command)) { 99 | throw new UnknownCommandException(commandName); 100 | } 101 | return command.Action(splitCommand.Skip(1).ToArray()); 102 | } 103 | 104 | /// 105 | /// Attempt to autocomplete a partial command. 106 | /// 107 | /// The full command name if a match is found. 108 | public string Autocomplete(string partialCommand) { 109 | if (partialCommand.EndsWith("\t")) { 110 | // Remove the \t 111 | partialCommand = partialCommand.Substring(0, partialCommand.Length - 1); 112 | } 113 | string[] parameters = partialCommand.Split(new [] {' '}, StringSplitOptions.RemoveEmptyEntries); 114 | 115 | if (parameters.Length == 1 && !partialCommand.EndsWith(" ")) { 116 | return Completer.Complete(partialCommand); 117 | } 118 | 119 | if (registeredCommands.ContainsKey(parameters[0])) { 120 | int lastIndex = parameters.Length - 1; 121 | if (partialCommand.EndsWith(" ")) { 122 | lastIndex++; 123 | } 124 | 125 | var completers = registeredCommands[parameters[0]].Completers; 126 | if (completers.Length > lastIndex && completers[lastIndex] != null) { 127 | string lastParam = lastIndex < parameters.Length ? parameters[lastIndex] : ""; 128 | string completion = completers[lastIndex].Complete(lastParam); 129 | if (lastParam == "") { 130 | return partialCommand + completion; 131 | } 132 | return partialCommand[..^lastParam.Length] + completion; 133 | } 134 | } 135 | return partialCommand; 136 | } 137 | 138 | public void SaveToFile(string filePath) { 139 | string contents = Regex.Replace(Content, "", string.Empty); 140 | System.IO.File.WriteAllText(filePath, contents); 141 | } 142 | 143 | public string GetCommandHistory(int offset) { 144 | return offset > 0 && offset <= History.Count ? History[^offset] : null; 145 | } 146 | 147 | ////////////////////////////////////////////////// 148 | 149 | // Font face: slightly modified "Larry 3D" found here: https://patorjk.com/software/taag/#p=display&f=Larry%203D&t=~tilde~ 150 | const string STARTING_TEXT = @" 151 | ___ _ __ ___ __ ___ _ 152 | / \/ \ /\ \__ __ /\_ \ /\ \ / \/ \ 153 | /\_/\__// \ \ _\/\_\\//\ \ \_\ \ __ /\_/\__// 154 | \//\/__/ \ \ \/\/\ \ \ \ \ / _ \ / __`\//\/__/ 155 | \ \ \_\ \ \ \_\ \_/\ \/\ \/\ __/ 156 | \ \__\\ \_\/\____\ \___,_\ \____\ 157 | \/__/ \/_/\/____/\/__,_ /\/____/ 158 | 159 | To view available commands, type 'help'"; 160 | 161 | static readonly Dictionary registeredCommands = new(); 162 | Scrollback Scrollback = new(); 163 | 164 | ////////////////////////////////////////////////// 165 | 166 | #region MonoBehavior 167 | void Awake() { 168 | AppendOutput(STARTING_TEXT, LogLineType.Normal); 169 | 170 | // Listen for Debug.Log calls. 171 | Application.logMessageReceived += OnUnityLogMessage; 172 | 173 | RegisterCommands(); 174 | 175 | // Add a few special commands 176 | registeredCommands["help"] = new RegisteredCommand { 177 | Docs = "View available commands as well as their documentation.", 178 | Action = Help 179 | }; 180 | registeredCommands["bind"] = new RegisteredCommand { 181 | Docs = "Syntax: 'bind ' Bind a console command to a key.", 182 | Action = KeyBindings.Bind 183 | }; 184 | registeredCommands["unbind"] = new RegisteredCommand { 185 | Docs = "Syntax: 'unbind ' Unbind a console command from a key.", 186 | Action = KeyBindings.Unbind 187 | }; 188 | 189 | Completer = new Autocompleter(registeredCommands.Keys); 190 | } 191 | 192 | void OnDestroy() { 193 | Application.logMessageReceived -= OnUnityLogMessage; 194 | } 195 | #endregion 196 | 197 | /// 198 | /// Find the command with the given name. Obeys case sensitivity setting when doing comparisons. 199 | /// 200 | /// The name to match 201 | /// The matching registered command or null if none was found 202 | /// True if matches a registered command (and is not null). False otherwise. 203 | bool TryGetCommand(string commandName, out RegisteredCommand command) { 204 | foreach ((string registeredName, var registeredCommand) in registeredCommands) { 205 | if (commandName.Equals(registeredName, caseInsensitiveMatching ? StringComparison.OrdinalIgnoreCase : StringComparison.Ordinal)) { 206 | command = registeredCommand; 207 | return true; 208 | } 209 | } 210 | command = null; 211 | return false; 212 | } 213 | 214 | /// 215 | /// Special command for listing command help 216 | /// 217 | /// Any extra options passed to help. 218 | string Help(string[] options) { 219 | const int LINE_WIDTH = 80; 220 | const int COMMAND_INDENT = 2; 221 | const int COMMAND_DOCSTRING_PADDING = 3; 222 | 223 | var helpText = new StringBuilder(); 224 | 225 | if (options.Length == 0) { 226 | // Show help for everything. 227 | int maxCommandLength = registeredCommands.Keys.Select(x => x.Length).Max(); 228 | int docsColumnPadding = COMMAND_INDENT + maxCommandLength + COMMAND_DOCSTRING_PADDING; 229 | 230 | helpText.AppendLine("Available commands:"); 231 | foreach (var commandEntry in registeredCommands.OrderBy(x => x.Key)) { 232 | string command = commandEntry.Key; 233 | string docstring = commandEntry.Value.Docs; 234 | 235 | // Add the command name and enough spaces to align the docstrings. 236 | helpText.AppendLine(); 237 | helpText.Append(new string(' ', COMMAND_INDENT)); 238 | helpText.Append(command); 239 | helpText.Append(new string(' ', maxCommandLength - command.Length + COMMAND_DOCSTRING_PADDING)); 240 | 241 | // Add the docstring, wrapping and aligning to the column if necessary. 242 | int docsColumnSize = LINE_WIDTH - COMMAND_INDENT - maxCommandLength - COMMAND_DOCSTRING_PADDING; 243 | if (docsColumnSize <= 0) { 244 | continue; 245 | } 246 | bool padOutNewLine = false; 247 | while (docsColumnSize < docstring.Length) { 248 | if (padOutNewLine) { 249 | helpText.AppendLine(); 250 | helpText.Append(new string(' ', docsColumnPadding)); 251 | } 252 | helpText.Append(docstring[..docsColumnSize]); 253 | docstring = docstring[docsColumnSize..]; 254 | padOutNewLine = true; 255 | } 256 | 257 | if (string.IsNullOrEmpty(docstring)) { 258 | continue; 259 | } 260 | if (padOutNewLine) { 261 | helpText.AppendLine(); 262 | helpText.Append(new string(' ', docsColumnPadding)); 263 | } 264 | helpText.Append(docstring); 265 | } 266 | } else { 267 | // Show help for a specific command. 268 | if (registeredCommands.TryGetValue(options[0], out var command)) { 269 | helpText.Append(command.Docs); 270 | } else { 271 | AppendOutput("Command not found: " + options[0], LogLineType.Error); 272 | } 273 | } 274 | return helpText.ToString(); 275 | } 276 | 277 | /// Event handler for Unity's LogMessageReceived event 278 | void OnUnityLogMessage(string message, string stackTrace, LogType type) { 279 | if (!showUnityLogMessages || string.IsNullOrEmpty(message)) { 280 | return; 281 | } 282 | 283 | switch (type) { 284 | case LogType.Assert: 285 | case LogType.Error: 286 | case LogType.Exception: 287 | AppendOutput(message, LogLineType.Error); 288 | break; 289 | case LogType.Warning: 290 | AppendOutput(message, LogLineType.Warning); 291 | break; 292 | case LogType.Log: 293 | AppendOutput(message, LogLineType.Normal); 294 | break; 295 | default: 296 | throw new ArgumentOutOfRangeException(nameof(type), type, null); 297 | } 298 | } 299 | 300 | void AppendOutput(string message, LogLineType type) { 301 | Scrollback.Append(message, type); 302 | Changed?.Invoke(Content); 303 | } 304 | 305 | /// Finds and registers all annotated functions in all assemblies. 306 | static void RegisterCommands() { 307 | foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies()) { 308 | // Try to skip system assemblies 309 | if (assembly.FullName.StartsWith("System") || assembly.FullName.StartsWith("mscorlib") || assembly.FullName.StartsWith("Unity") || assembly.FullName.StartsWith("Mono")) { 310 | continue; 311 | } 312 | 313 | foreach (var type in assembly.GetTypes()) { 314 | foreach (var method in type.GetMethods(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static)) { 315 | // Only find annotated static methods. 316 | var commandAttribute = method.GetCustomAttribute(); 317 | if (commandAttribute == null) { 318 | continue; 319 | } 320 | if (!method.IsStatic) { 321 | Debug.LogError($"[Tilde] Method {type}.{method.Name} must be static to be registered as a console command."); 322 | continue; 323 | } 324 | 325 | // Determine if it's a valid signature and distill it to a common type 326 | CommandAction action; 327 | if (Delegate.CreateDelegate(typeof(CommandAction), method, false) is CommandAction commandAction) { 328 | action = commandAction; 329 | } else if (Delegate.CreateDelegate(typeof(SimpleCommandAction), method, false) is SimpleCommandAction simpleAction) { 330 | action = _ => simpleAction(); 331 | } else if (Delegate.CreateDelegate(typeof(SilentCommandAction), method, false) is SilentCommandAction silentAction) { 332 | action = args => { silentAction(args); return string.Empty; }; 333 | } else if (Delegate.CreateDelegate(typeof(SimpleSilentCommandAction), method, false) is SimpleSilentCommandAction simpleSilentAction) { 334 | action = _ => { simpleSilentAction(); return string.Empty; }; 335 | } else { 336 | Debug.LogError($"[Tilde] Method {type}.{method.Name} is annotated as a command but does not have a valid signature."); 337 | continue; 338 | } 339 | 340 | // Find and record any completion attributes 341 | Autocompleter[] autocompleters = null; 342 | if (method.GetCustomAttributes(typeof(CompletionAttribute), true) is CompletionAttribute[] completionAttributes) { 343 | int maxArgIndex = -1; 344 | foreach (var completion in completionAttributes) { 345 | maxArgIndex = Math.Max(completion.ArgIndex, maxArgIndex); 346 | } 347 | 348 | if (maxArgIndex >= 0) { 349 | autocompleters = new Autocompleter[maxArgIndex + 1]; 350 | foreach (var completion in completionAttributes) { 351 | autocompleters[completion.ArgIndex] = new Autocompleter(completion.Options); 352 | } 353 | } 354 | } 355 | 356 | string commandName = !string.IsNullOrEmpty(commandAttribute.CommandName) ? commandAttribute.CommandName : method.Name; 357 | registeredCommands[commandName] = new RegisteredCommand { 358 | Docs = commandAttribute.Docstring, 359 | Action = action, 360 | Completers = autocompleters 361 | }; 362 | } 363 | } 364 | } 365 | } 366 | } 367 | 368 | public class BoundCommands { 369 | public readonly Dictionary Bindings = new(); 370 | 371 | public string Bind(string[] args) { 372 | if (args.Length < 2) { 373 | Debug.LogError("You must specify a key and a command as arguments to 'Bind'."); 374 | return ""; 375 | } 376 | 377 | var key = KeyCodeFromString(args[0]); 378 | if (key == KeyCode.None) { 379 | return string.Empty; 380 | } 381 | string command = string.Join(" ", args.Skip(1).ToArray()); 382 | Bindings[key] = command; 383 | return string.Empty; 384 | } 385 | 386 | public string Unbind(string[] args) { 387 | if (args.Length != 1) { 388 | Debug.LogError("Command 'Unbind' only takes 1 argument."); 389 | return ""; 390 | } 391 | 392 | var key = KeyCodeFromString(args[0]); 393 | if (key != KeyCode.None) { 394 | Bindings.Remove(key); 395 | } 396 | return ""; 397 | } 398 | 399 | ////////////////////////////////////////////////// 400 | 401 | static KeyCode KeyCodeFromString(string keyString) { 402 | if (keyString.Length == 1) { 403 | keyString = keyString.ToUpper(); 404 | } 405 | 406 | var key = KeyCode.None; 407 | try { 408 | key = (KeyCode)Enum.Parse(typeof(KeyCode), keyString); 409 | } catch (ArgumentException) { 410 | Debug.LogError("Key '" + keyString + "' does not specify a key code."); 411 | } 412 | return key; 413 | } 414 | } 415 | } 416 | -------------------------------------------------------------------------------- /Prefabs/Drawer Console.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &108564 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 22496702} 12 | - component: {fileID: 11451082} 13 | - component: {fileID: 11482586} 14 | - component: {fileID: 22297060} 15 | - component: {fileID: 11480708} 16 | m_Layer: 5 17 | m_Name: Scroll Rect 18 | m_TagString: Untagged 19 | m_Icon: {fileID: 0} 20 | m_NavMeshLayer: 0 21 | m_StaticEditorFlags: 0 22 | m_IsActive: 1 23 | --- !u!224 &22496702 24 | RectTransform: 25 | m_ObjectHideFlags: 0 26 | m_CorrespondingSourceObject: {fileID: 0} 27 | m_PrefabInstance: {fileID: 0} 28 | m_PrefabAsset: {fileID: 0} 29 | m_GameObject: {fileID: 108564} 30 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 31 | m_LocalPosition: {x: 0, y: 0, z: 0} 32 | m_LocalScale: {x: 1, y: 1, z: 1} 33 | m_ConstrainProportionsScale: 0 34 | m_Children: 35 | - {fileID: 22420974} 36 | m_Father: {fileID: 22461436} 37 | m_RootOrder: 0 38 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 39 | m_AnchorMin: {x: 0, y: 0} 40 | m_AnchorMax: {x: 1, y: 1} 41 | m_AnchoredPosition: {x: -7.5, y: 0} 42 | m_SizeDelta: {x: -25, y: -10} 43 | m_Pivot: {x: 0.5, y: 0.5} 44 | --- !u!114 &11451082 45 | MonoBehaviour: 46 | m_ObjectHideFlags: 0 47 | m_CorrespondingSourceObject: {fileID: 0} 48 | m_PrefabInstance: {fileID: 0} 49 | m_PrefabAsset: {fileID: 0} 50 | m_GameObject: {fileID: 108564} 51 | m_Enabled: 1 52 | m_EditorHideFlags: 0 53 | m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} 54 | m_Name: 55 | m_EditorClassIdentifier: 56 | m_Content: {fileID: 22420974} 57 | m_Horizontal: 0 58 | m_Vertical: 1 59 | m_MovementType: 1 60 | m_Elasticity: 0.1 61 | m_Inertia: 1 62 | m_DecelerationRate: 0.135 63 | m_ScrollSensitivity: 10 64 | m_Viewport: {fileID: 0} 65 | m_HorizontalScrollbar: {fileID: 0} 66 | m_VerticalScrollbar: {fileID: 11489436} 67 | m_HorizontalScrollbarVisibility: 0 68 | m_VerticalScrollbarVisibility: 0 69 | m_HorizontalScrollbarSpacing: 0 70 | m_VerticalScrollbarSpacing: 0 71 | m_OnValueChanged: 72 | m_PersistentCalls: 73 | m_Calls: [] 74 | --- !u!114 &11482586 75 | MonoBehaviour: 76 | m_ObjectHideFlags: 0 77 | m_CorrespondingSourceObject: {fileID: 0} 78 | m_PrefabInstance: {fileID: 0} 79 | m_PrefabAsset: {fileID: 0} 80 | m_GameObject: {fileID: 108564} 81 | m_Enabled: 1 82 | m_EditorHideFlags: 0 83 | m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} 84 | m_Name: 85 | m_EditorClassIdentifier: 86 | m_ShowMaskGraphic: 1 87 | --- !u!222 &22297060 88 | CanvasRenderer: 89 | m_ObjectHideFlags: 0 90 | m_CorrespondingSourceObject: {fileID: 0} 91 | m_PrefabInstance: {fileID: 0} 92 | m_PrefabAsset: {fileID: 0} 93 | m_GameObject: {fileID: 108564} 94 | m_CullTransparentMesh: 1 95 | --- !u!114 &11480708 96 | MonoBehaviour: 97 | m_ObjectHideFlags: 0 98 | m_CorrespondingSourceObject: {fileID: 0} 99 | m_PrefabInstance: {fileID: 0} 100 | m_PrefabAsset: {fileID: 0} 101 | m_GameObject: {fileID: 108564} 102 | m_Enabled: 1 103 | m_EditorHideFlags: 0 104 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 105 | m_Name: 106 | m_EditorClassIdentifier: 107 | m_Material: {fileID: 0} 108 | m_Color: {r: 1, g: 1, b: 1, a: 0.011764706} 109 | m_RaycastTarget: 1 110 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 111 | m_Maskable: 1 112 | m_OnCullStateChanged: 113 | m_PersistentCalls: 114 | m_Calls: [] 115 | m_Sprite: {fileID: 0} 116 | m_Type: 0 117 | m_PreserveAspect: 0 118 | m_FillCenter: 1 119 | m_FillMethod: 4 120 | m_FillAmount: 1 121 | m_FillClockwise: 1 122 | m_FillOrigin: 0 123 | m_UseSpriteMesh: 0 124 | m_PixelsPerUnitMultiplier: 1 125 | --- !u!1 &116222 126 | GameObject: 127 | m_ObjectHideFlags: 0 128 | m_CorrespondingSourceObject: {fileID: 0} 129 | m_PrefabInstance: {fileID: 0} 130 | m_PrefabAsset: {fileID: 0} 131 | serializedVersion: 6 132 | m_Component: 133 | - component: {fileID: 22449444} 134 | - component: {fileID: 22226462} 135 | - component: {fileID: 11449100} 136 | m_Layer: 5 137 | m_Name: Handle 138 | m_TagString: Untagged 139 | m_Icon: {fileID: 0} 140 | m_NavMeshLayer: 0 141 | m_StaticEditorFlags: 0 142 | m_IsActive: 1 143 | --- !u!224 &22449444 144 | RectTransform: 145 | m_ObjectHideFlags: 0 146 | m_CorrespondingSourceObject: {fileID: 0} 147 | m_PrefabInstance: {fileID: 0} 148 | m_PrefabAsset: {fileID: 0} 149 | m_GameObject: {fileID: 116222} 150 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 151 | m_LocalPosition: {x: 0, y: 0, z: 0} 152 | m_LocalScale: {x: 1, y: 1, z: 1} 153 | m_ConstrainProportionsScale: 0 154 | m_Children: [] 155 | m_Father: {fileID: 22490688} 156 | m_RootOrder: 0 157 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 158 | m_AnchorMin: {x: 0, y: 0} 159 | m_AnchorMax: {x: 0, y: 0} 160 | m_AnchoredPosition: {x: 0, y: 0} 161 | m_SizeDelta: {x: 14, y: 20} 162 | m_Pivot: {x: 0.5, y: 0.5} 163 | --- !u!222 &22226462 164 | CanvasRenderer: 165 | m_ObjectHideFlags: 0 166 | m_CorrespondingSourceObject: {fileID: 0} 167 | m_PrefabInstance: {fileID: 0} 168 | m_PrefabAsset: {fileID: 0} 169 | m_GameObject: {fileID: 116222} 170 | m_CullTransparentMesh: 1 171 | --- !u!114 &11449100 172 | MonoBehaviour: 173 | m_ObjectHideFlags: 0 174 | m_CorrespondingSourceObject: {fileID: 0} 175 | m_PrefabInstance: {fileID: 0} 176 | m_PrefabAsset: {fileID: 0} 177 | m_GameObject: {fileID: 116222} 178 | m_Enabled: 1 179 | m_EditorHideFlags: 0 180 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 181 | m_Name: 182 | m_EditorClassIdentifier: 183 | m_Material: {fileID: 0} 184 | m_Color: {r: 0.38679248, g: 0.38131902, b: 0.38131902, a: 1} 185 | m_RaycastTarget: 1 186 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 187 | m_Maskable: 1 188 | m_OnCullStateChanged: 189 | m_PersistentCalls: 190 | m_Calls: [] 191 | m_Sprite: {fileID: 0} 192 | m_Type: 0 193 | m_PreserveAspect: 0 194 | m_FillCenter: 1 195 | m_FillMethod: 4 196 | m_FillAmount: 1 197 | m_FillClockwise: 1 198 | m_FillOrigin: 0 199 | m_UseSpriteMesh: 0 200 | m_PixelsPerUnitMultiplier: 1 201 | --- !u!1 &118976 202 | GameObject: 203 | m_ObjectHideFlags: 0 204 | m_CorrespondingSourceObject: {fileID: 0} 205 | m_PrefabInstance: {fileID: 0} 206 | m_PrefabAsset: {fileID: 0} 207 | serializedVersion: 6 208 | m_Component: 209 | - component: {fileID: 22461436} 210 | - component: {fileID: 22223498} 211 | - component: {fileID: 11403466} 212 | m_Layer: 5 213 | m_Name: Text Background 214 | m_TagString: Untagged 215 | m_Icon: {fileID: 0} 216 | m_NavMeshLayer: 0 217 | m_StaticEditorFlags: 0 218 | m_IsActive: 1 219 | --- !u!224 &22461436 220 | RectTransform: 221 | m_ObjectHideFlags: 0 222 | m_CorrespondingSourceObject: {fileID: 0} 223 | m_PrefabInstance: {fileID: 0} 224 | m_PrefabAsset: {fileID: 0} 225 | m_GameObject: {fileID: 118976} 226 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 227 | m_LocalPosition: {x: 0, y: 0, z: 0} 228 | m_LocalScale: {x: 1, y: 1, z: 1} 229 | m_ConstrainProportionsScale: 0 230 | m_Children: 231 | - {fileID: 22496702} 232 | - {fileID: 22446206} 233 | m_Father: {fileID: 22476054} 234 | m_RootOrder: 0 235 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 236 | m_AnchorMin: {x: 0, y: 0} 237 | m_AnchorMax: {x: 1, y: 1} 238 | m_AnchoredPosition: {x: 0, y: 15.999999} 239 | m_SizeDelta: {x: -10, y: -42} 240 | m_Pivot: {x: 0.5, y: 0.5} 241 | --- !u!222 &22223498 242 | CanvasRenderer: 243 | m_ObjectHideFlags: 0 244 | m_CorrespondingSourceObject: {fileID: 0} 245 | m_PrefabInstance: {fileID: 0} 246 | m_PrefabAsset: {fileID: 0} 247 | m_GameObject: {fileID: 118976} 248 | m_CullTransparentMesh: 1 249 | --- !u!114 &11403466 250 | MonoBehaviour: 251 | m_ObjectHideFlags: 0 252 | m_CorrespondingSourceObject: {fileID: 0} 253 | m_PrefabInstance: {fileID: 0} 254 | m_PrefabAsset: {fileID: 0} 255 | m_GameObject: {fileID: 118976} 256 | m_Enabled: 1 257 | m_EditorHideFlags: 0 258 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 259 | m_Name: 260 | m_EditorClassIdentifier: 261 | m_Material: {fileID: 0} 262 | m_Color: {r: 0.23529412, g: 0.23529412, b: 0.23529412, a: 1} 263 | m_RaycastTarget: 1 264 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 265 | m_Maskable: 1 266 | m_OnCullStateChanged: 267 | m_PersistentCalls: 268 | m_Calls: [] 269 | m_Sprite: {fileID: 0} 270 | m_Type: 0 271 | m_PreserveAspect: 0 272 | m_FillCenter: 1 273 | m_FillMethod: 4 274 | m_FillAmount: 1 275 | m_FillClockwise: 1 276 | m_FillOrigin: 0 277 | m_UseSpriteMesh: 0 278 | m_PixelsPerUnitMultiplier: 1 279 | --- !u!1 &123826 280 | GameObject: 281 | m_ObjectHideFlags: 0 282 | m_CorrespondingSourceObject: {fileID: 0} 283 | m_PrefabInstance: {fileID: 0} 284 | m_PrefabAsset: {fileID: 0} 285 | serializedVersion: 6 286 | m_Component: 287 | - component: {fileID: 22490688} 288 | m_Layer: 5 289 | m_Name: Sliding Area 290 | m_TagString: Untagged 291 | m_Icon: {fileID: 0} 292 | m_NavMeshLayer: 0 293 | m_StaticEditorFlags: 0 294 | m_IsActive: 1 295 | --- !u!224 &22490688 296 | RectTransform: 297 | m_ObjectHideFlags: 0 298 | m_CorrespondingSourceObject: {fileID: 0} 299 | m_PrefabInstance: {fileID: 0} 300 | m_PrefabAsset: {fileID: 0} 301 | m_GameObject: {fileID: 123826} 302 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 303 | m_LocalPosition: {x: 0, y: 0, z: 0} 304 | m_LocalScale: {x: 1, y: 1, z: 1} 305 | m_ConstrainProportionsScale: 0 306 | m_Children: 307 | - {fileID: 22449444} 308 | m_Father: {fileID: 22446206} 309 | m_RootOrder: 0 310 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 311 | m_AnchorMin: {x: 0, y: 0} 312 | m_AnchorMax: {x: 1, y: 1} 313 | m_AnchoredPosition: {x: 0, y: 0} 314 | m_SizeDelta: {x: -20, y: -20} 315 | m_Pivot: {x: 0.5, y: 0.5} 316 | --- !u!1 &130974 317 | GameObject: 318 | m_ObjectHideFlags: 0 319 | m_CorrespondingSourceObject: {fileID: 0} 320 | m_PrefabInstance: {fileID: 0} 321 | m_PrefabAsset: {fileID: 0} 322 | serializedVersion: 6 323 | m_Component: 324 | - component: {fileID: 22420974} 325 | - component: {fileID: 22257708} 326 | - component: {fileID: 11474458} 327 | - component: {fileID: 11446612} 328 | m_Layer: 5 329 | m_Name: Console History Text 330 | m_TagString: Untagged 331 | m_Icon: {fileID: 0} 332 | m_NavMeshLayer: 0 333 | m_StaticEditorFlags: 0 334 | m_IsActive: 1 335 | --- !u!224 &22420974 336 | RectTransform: 337 | m_ObjectHideFlags: 0 338 | m_CorrespondingSourceObject: {fileID: 0} 339 | m_PrefabInstance: {fileID: 0} 340 | m_PrefabAsset: {fileID: 0} 341 | m_GameObject: {fileID: 130974} 342 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 343 | m_LocalPosition: {x: 0, y: 0, z: 0} 344 | m_LocalScale: {x: 1, y: 1, z: 1} 345 | m_ConstrainProportionsScale: 0 346 | m_Children: [] 347 | m_Father: {fileID: 22496702} 348 | m_RootOrder: 0 349 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 350 | m_AnchorMin: {x: 0, y: 0} 351 | m_AnchorMax: {x: 1, y: 1} 352 | m_AnchoredPosition: {x: 5, y: 0} 353 | m_SizeDelta: {x: -10, y: 0} 354 | m_Pivot: {x: 0, y: 0} 355 | --- !u!222 &22257708 356 | CanvasRenderer: 357 | m_ObjectHideFlags: 0 358 | m_CorrespondingSourceObject: {fileID: 0} 359 | m_PrefabInstance: {fileID: 0} 360 | m_PrefabAsset: {fileID: 0} 361 | m_GameObject: {fileID: 130974} 362 | m_CullTransparentMesh: 1 363 | --- !u!114 &11474458 364 | MonoBehaviour: 365 | m_ObjectHideFlags: 0 366 | m_CorrespondingSourceObject: {fileID: 0} 367 | m_PrefabInstance: {fileID: 0} 368 | m_PrefabAsset: {fileID: 0} 369 | m_GameObject: {fileID: 130974} 370 | m_Enabled: 1 371 | m_EditorHideFlags: 0 372 | m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} 373 | m_Name: 374 | m_EditorClassIdentifier: 375 | m_Material: {fileID: 0} 376 | m_Color: {r: 0.9411765, g: 0.9411765, b: 0.9411765, a: 1} 377 | m_RaycastTarget: 1 378 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 379 | m_Maskable: 1 380 | m_OnCullStateChanged: 381 | m_PersistentCalls: 382 | m_Calls: [] 383 | m_FontData: 384 | m_Font: {fileID: 12800000, guid: 52fbb1602eac45b488f6a1789eba5a4e, type: 3} 385 | m_FontSize: 14 386 | m_FontStyle: 0 387 | m_BestFit: 0 388 | m_MinSize: 10 389 | m_MaxSize: 40 390 | m_Alignment: 6 391 | m_AlignByGeometry: 0 392 | m_RichText: 1 393 | m_HorizontalOverflow: 0 394 | m_VerticalOverflow: 1 395 | m_LineSpacing: 0.9 396 | m_Text: " _ _ __ ___ __ _ _ \n /' \\/' \\ 397 | /\\ \\__ __ /\\_ \\ /\\ \\ /' \\/' \\ \n/\\_/\\__// \\ \\ ,_\\/\\_\\\\//\\ 398 | \\ \\_\\ \\ __ /\\_/\\__// \n\\//\\/__/ \\ \\ \\/\\/\\ \\ \\ \\ \\ 399 | /'_` \\ /'__`\\//\\/__/ \n \\ \\ \\_\\ \\ \\ \\_\\ \\_/\\ \\/\\ 400 | \\/\\ __/ \n \\ \\__\\\\ \\_\\/\\____\\ \\___,_\\ \\____\\ 401 | \n \\/__/ \\/_/\\/____/\\/__,_ /\\/____/ \n 402 | \n " 403 | --- !u!114 &11446612 404 | MonoBehaviour: 405 | m_ObjectHideFlags: 0 406 | m_CorrespondingSourceObject: {fileID: 0} 407 | m_PrefabInstance: {fileID: 0} 408 | m_PrefabAsset: {fileID: 0} 409 | m_GameObject: {fileID: 130974} 410 | m_Enabled: 1 411 | m_EditorHideFlags: 0 412 | m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} 413 | m_Name: 414 | m_EditorClassIdentifier: 415 | m_HorizontalFit: 0 416 | m_VerticalFit: 2 417 | --- !u!1 &134952 418 | GameObject: 419 | m_ObjectHideFlags: 0 420 | m_CorrespondingSourceObject: {fileID: 0} 421 | m_PrefabInstance: {fileID: 0} 422 | m_PrefabAsset: {fileID: 0} 423 | serializedVersion: 6 424 | m_Component: 425 | - component: {fileID: 22476054} 426 | - component: {fileID: 22269264} 427 | - component: {fileID: 11476608} 428 | m_Layer: 5 429 | m_Name: Console Window 430 | m_TagString: Untagged 431 | m_Icon: {fileID: 0} 432 | m_NavMeshLayer: 0 433 | m_StaticEditorFlags: 0 434 | m_IsActive: 1 435 | --- !u!224 &22476054 436 | RectTransform: 437 | m_ObjectHideFlags: 0 438 | m_CorrespondingSourceObject: {fileID: 0} 439 | m_PrefabInstance: {fileID: 0} 440 | m_PrefabAsset: {fileID: 0} 441 | m_GameObject: {fileID: 134952} 442 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 443 | m_LocalPosition: {x: 0, y: 0, z: 0} 444 | m_LocalScale: {x: 1, y: 1, z: 1} 445 | m_ConstrainProportionsScale: 0 446 | m_Children: 447 | - {fileID: 22461436} 448 | - {fileID: 22423092} 449 | - {fileID: 22448326} 450 | m_Father: {fileID: 22404172} 451 | m_RootOrder: 0 452 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 453 | m_AnchorMin: {x: 0, y: 1} 454 | m_AnchorMax: {x: 1, y: 1} 455 | m_AnchoredPosition: {x: 0, y: 0} 456 | m_SizeDelta: {x: 0, y: 500} 457 | m_Pivot: {x: 0, y: 0} 458 | --- !u!222 &22269264 459 | CanvasRenderer: 460 | m_ObjectHideFlags: 0 461 | m_CorrespondingSourceObject: {fileID: 0} 462 | m_PrefabInstance: {fileID: 0} 463 | m_PrefabAsset: {fileID: 0} 464 | m_GameObject: {fileID: 134952} 465 | m_CullTransparentMesh: 1 466 | --- !u!114 &11476608 467 | MonoBehaviour: 468 | m_ObjectHideFlags: 0 469 | m_CorrespondingSourceObject: {fileID: 0} 470 | m_PrefabInstance: {fileID: 0} 471 | m_PrefabAsset: {fileID: 0} 472 | m_GameObject: {fileID: 134952} 473 | m_Enabled: 1 474 | m_EditorHideFlags: 0 475 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 476 | m_Name: 477 | m_EditorClassIdentifier: 478 | m_Material: {fileID: 0} 479 | m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 480 | m_RaycastTarget: 1 481 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 482 | m_Maskable: 1 483 | m_OnCullStateChanged: 484 | m_PersistentCalls: 485 | m_Calls: [] 486 | m_Sprite: {fileID: 0} 487 | m_Type: 1 488 | m_PreserveAspect: 0 489 | m_FillCenter: 1 490 | m_FillMethod: 4 491 | m_FillAmount: 1 492 | m_FillClockwise: 1 493 | m_FillOrigin: 0 494 | m_UseSpriteMesh: 0 495 | m_PixelsPerUnitMultiplier: 1 496 | --- !u!1 &139438 497 | GameObject: 498 | m_ObjectHideFlags: 0 499 | m_CorrespondingSourceObject: {fileID: 0} 500 | m_PrefabInstance: {fileID: 0} 501 | m_PrefabAsset: {fileID: 0} 502 | serializedVersion: 6 503 | m_Component: 504 | - component: {fileID: 22404172} 505 | - component: {fileID: 22368878} 506 | - component: {fileID: 11444272} 507 | - component: {fileID: 11456472} 508 | - component: {fileID: 11483814} 509 | m_Layer: 5 510 | m_Name: Drawer Console 511 | m_TagString: Untagged 512 | m_Icon: {fileID: 0} 513 | m_NavMeshLayer: 0 514 | m_StaticEditorFlags: 0 515 | m_IsActive: 1 516 | --- !u!224 &22404172 517 | RectTransform: 518 | m_ObjectHideFlags: 0 519 | m_CorrespondingSourceObject: {fileID: 0} 520 | m_PrefabInstance: {fileID: 0} 521 | m_PrefabAsset: {fileID: 0} 522 | m_GameObject: {fileID: 139438} 523 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 524 | m_LocalPosition: {x: 0, y: 0, z: 0} 525 | m_LocalScale: {x: 0, y: 0, z: 0} 526 | m_ConstrainProportionsScale: 0 527 | m_Children: 528 | - {fileID: 22476054} 529 | m_Father: {fileID: 0} 530 | m_RootOrder: 0 531 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 532 | m_AnchorMin: {x: 0, y: 0} 533 | m_AnchorMax: {x: 0, y: 0} 534 | m_AnchoredPosition: {x: 0, y: 0} 535 | m_SizeDelta: {x: 0, y: 0} 536 | m_Pivot: {x: 0, y: 0} 537 | --- !u!223 &22368878 538 | Canvas: 539 | m_ObjectHideFlags: 0 540 | m_CorrespondingSourceObject: {fileID: 0} 541 | m_PrefabInstance: {fileID: 0} 542 | m_PrefabAsset: {fileID: 0} 543 | m_GameObject: {fileID: 139438} 544 | m_Enabled: 1 545 | serializedVersion: 3 546 | m_RenderMode: 0 547 | m_Camera: {fileID: 0} 548 | m_PlaneDistance: 100 549 | m_PixelPerfect: 0 550 | m_ReceivesEvents: 1 551 | m_OverrideSorting: 0 552 | m_OverridePixelPerfect: 0 553 | m_SortingBucketNormalizedSize: 0 554 | m_AdditionalShaderChannelsFlag: 0 555 | m_SortingLayerID: 0 556 | m_SortingOrder: 9999 557 | m_TargetDisplay: 0 558 | --- !u!114 &11444272 559 | MonoBehaviour: 560 | m_ObjectHideFlags: 0 561 | m_CorrespondingSourceObject: {fileID: 0} 562 | m_PrefabInstance: {fileID: 0} 563 | m_PrefabAsset: {fileID: 0} 564 | m_GameObject: {fileID: 139438} 565 | m_Enabled: 1 566 | m_EditorHideFlags: 0 567 | m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} 568 | m_Name: 569 | m_EditorClassIdentifier: 570 | m_UiScaleMode: 1 571 | m_ReferencePixelsPerUnit: 100 572 | m_ScaleFactor: 1 573 | m_ReferenceResolution: {x: 1024, y: 768} 574 | m_ScreenMatchMode: 0 575 | m_MatchWidthOrHeight: 0.5 576 | m_PhysicalUnit: 3 577 | m_FallbackScreenDPI: 96 578 | m_DefaultSpriteDPI: 96 579 | m_DynamicPixelsPerUnit: 1 580 | m_PresetInfoIsWorld: 0 581 | --- !u!114 &11456472 582 | MonoBehaviour: 583 | m_ObjectHideFlags: 0 584 | m_CorrespondingSourceObject: {fileID: 0} 585 | m_PrefabInstance: {fileID: 0} 586 | m_PrefabAsset: {fileID: 0} 587 | m_GameObject: {fileID: 139438} 588 | m_Enabled: 1 589 | m_EditorHideFlags: 0 590 | m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} 591 | m_Name: 592 | m_EditorClassIdentifier: 593 | m_IgnoreReversedGraphics: 1 594 | m_BlockingObjects: 0 595 | m_BlockingMask: 596 | serializedVersion: 2 597 | m_Bits: 4294967295 598 | --- !u!114 &11483814 599 | MonoBehaviour: 600 | m_ObjectHideFlags: 0 601 | m_CorrespondingSourceObject: {fileID: 0} 602 | m_PrefabInstance: {fileID: 0} 603 | m_PrefabAsset: {fileID: 0} 604 | m_GameObject: {fileID: 139438} 605 | m_Enabled: 1 606 | m_EditorHideFlags: 0 607 | m_Script: {fileID: 11500000, guid: ab557bbf3995f40f998168b9594b16df, type: 3} 608 | m_Name: 609 | m_EditorClassIdentifier: 610 | height: 500 611 | console: {fileID: 0} 612 | consoleWindow: {fileID: 134952} 613 | consoleText: {fileID: 11474458} 614 | commandInput: {fileID: 11492874} 615 | --- !u!1 &145296 616 | GameObject: 617 | m_ObjectHideFlags: 0 618 | m_CorrespondingSourceObject: {fileID: 0} 619 | m_PrefabInstance: {fileID: 0} 620 | m_PrefabAsset: {fileID: 0} 621 | serializedVersion: 6 622 | m_Component: 623 | - component: {fileID: 22448326} 624 | - component: {fileID: 22265890} 625 | - component: {fileID: 11432764} 626 | m_Layer: 5 627 | m_Name: Title Image 628 | m_TagString: Untagged 629 | m_Icon: {fileID: 0} 630 | m_NavMeshLayer: 0 631 | m_StaticEditorFlags: 0 632 | m_IsActive: 1 633 | --- !u!224 &22448326 634 | RectTransform: 635 | m_ObjectHideFlags: 0 636 | m_CorrespondingSourceObject: {fileID: 0} 637 | m_PrefabInstance: {fileID: 0} 638 | m_PrefabAsset: {fileID: 0} 639 | m_GameObject: {fileID: 145296} 640 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 641 | m_LocalPosition: {x: 0, y: 0, z: 0} 642 | m_LocalScale: {x: 1, y: 1, z: 1} 643 | m_ConstrainProportionsScale: 0 644 | m_Children: [] 645 | m_Father: {fileID: 22476054} 646 | m_RootOrder: 2 647 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 648 | m_AnchorMin: {x: 1, y: 1} 649 | m_AnchorMax: {x: 1, y: 1} 650 | m_AnchoredPosition: {x: -30, y: -10} 651 | m_SizeDelta: {x: 42, y: 16} 652 | m_Pivot: {x: 1, y: 1} 653 | --- !u!222 &22265890 654 | CanvasRenderer: 655 | m_ObjectHideFlags: 0 656 | m_CorrespondingSourceObject: {fileID: 0} 657 | m_PrefabInstance: {fileID: 0} 658 | m_PrefabAsset: {fileID: 0} 659 | m_GameObject: {fileID: 145296} 660 | m_CullTransparentMesh: 1 661 | --- !u!114 &11432764 662 | MonoBehaviour: 663 | m_ObjectHideFlags: 0 664 | m_CorrespondingSourceObject: {fileID: 0} 665 | m_PrefabInstance: {fileID: 0} 666 | m_PrefabAsset: {fileID: 0} 667 | m_GameObject: {fileID: 145296} 668 | m_Enabled: 1 669 | m_EditorHideFlags: 0 670 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 671 | m_Name: 672 | m_EditorClassIdentifier: 673 | m_Material: {fileID: 0} 674 | m_Color: {r: 1, g: 1, b: 1, a: 1} 675 | m_RaycastTarget: 1 676 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 677 | m_Maskable: 1 678 | m_OnCullStateChanged: 679 | m_PersistentCalls: 680 | m_Calls: [] 681 | m_Sprite: {fileID: 21300000, guid: 3e4a824c42b3c71469b634c8e76a765c, type: 3} 682 | m_Type: 0 683 | m_PreserveAspect: 0 684 | m_FillCenter: 1 685 | m_FillMethod: 4 686 | m_FillAmount: 1 687 | m_FillClockwise: 1 688 | m_FillOrigin: 0 689 | m_UseSpriteMesh: 0 690 | m_PixelsPerUnitMultiplier: 1 691 | --- !u!1 &151552 692 | GameObject: 693 | m_ObjectHideFlags: 0 694 | m_CorrespondingSourceObject: {fileID: 0} 695 | m_PrefabInstance: {fileID: 0} 696 | m_PrefabAsset: {fileID: 0} 697 | serializedVersion: 6 698 | m_Component: 699 | - component: {fileID: 22462574} 700 | - component: {fileID: 22264380} 701 | - component: {fileID: 11437324} 702 | m_Layer: 5 703 | m_Name: Placeholder 704 | m_TagString: Untagged 705 | m_Icon: {fileID: 0} 706 | m_NavMeshLayer: 0 707 | m_StaticEditorFlags: 0 708 | m_IsActive: 1 709 | --- !u!224 &22462574 710 | RectTransform: 711 | m_ObjectHideFlags: 0 712 | m_CorrespondingSourceObject: {fileID: 0} 713 | m_PrefabInstance: {fileID: 0} 714 | m_PrefabAsset: {fileID: 0} 715 | m_GameObject: {fileID: 151552} 716 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 717 | m_LocalPosition: {x: 0, y: 0, z: 0} 718 | m_LocalScale: {x: 1, y: 1, z: 1} 719 | m_ConstrainProportionsScale: 0 720 | m_Children: [] 721 | m_Father: {fileID: 22423092} 722 | m_RootOrder: 0 723 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 724 | m_AnchorMin: {x: 0, y: 0} 725 | m_AnchorMax: {x: 1, y: 1} 726 | m_AnchoredPosition: {x: 0, y: 0} 727 | m_SizeDelta: {x: -20, y: 0} 728 | m_Pivot: {x: 0.5, y: 0.5} 729 | --- !u!222 &22264380 730 | CanvasRenderer: 731 | m_ObjectHideFlags: 0 732 | m_CorrespondingSourceObject: {fileID: 0} 733 | m_PrefabInstance: {fileID: 0} 734 | m_PrefabAsset: {fileID: 0} 735 | m_GameObject: {fileID: 151552} 736 | m_CullTransparentMesh: 1 737 | --- !u!114 &11437324 738 | MonoBehaviour: 739 | m_ObjectHideFlags: 0 740 | m_CorrespondingSourceObject: {fileID: 0} 741 | m_PrefabInstance: {fileID: 0} 742 | m_PrefabAsset: {fileID: 0} 743 | m_GameObject: {fileID: 151552} 744 | m_Enabled: 1 745 | m_EditorHideFlags: 0 746 | m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} 747 | m_Name: 748 | m_EditorClassIdentifier: 749 | m_Material: {fileID: 0} 750 | m_Color: {r: 0.9411765, g: 0.9411765, b: 0.9411765, a: 0.5} 751 | m_RaycastTarget: 1 752 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 753 | m_Maskable: 1 754 | m_OnCullStateChanged: 755 | m_PersistentCalls: 756 | m_Calls: [] 757 | m_FontData: 758 | m_Font: {fileID: 12800000, guid: 52fbb1602eac45b488f6a1789eba5a4e, type: 3} 759 | m_FontSize: 14 760 | m_FontStyle: 2 761 | m_BestFit: 0 762 | m_MinSize: 10 763 | m_MaxSize: 40 764 | m_Alignment: 3 765 | m_AlignByGeometry: 0 766 | m_RichText: 1 767 | m_HorizontalOverflow: 0 768 | m_VerticalOverflow: 0 769 | m_LineSpacing: 1 770 | m_Text: Enter command... 771 | --- !u!1 &172302 772 | GameObject: 773 | m_ObjectHideFlags: 0 774 | m_CorrespondingSourceObject: {fileID: 0} 775 | m_PrefabInstance: {fileID: 0} 776 | m_PrefabAsset: {fileID: 0} 777 | serializedVersion: 6 778 | m_Component: 779 | - component: {fileID: 22423092} 780 | - component: {fileID: 22243444} 781 | - component: {fileID: 11410802} 782 | - component: {fileID: 11492874} 783 | m_Layer: 5 784 | m_Name: InputField 785 | m_TagString: Untagged 786 | m_Icon: {fileID: 0} 787 | m_NavMeshLayer: 0 788 | m_StaticEditorFlags: 0 789 | m_IsActive: 1 790 | --- !u!224 &22423092 791 | RectTransform: 792 | m_ObjectHideFlags: 0 793 | m_CorrespondingSourceObject: {fileID: 0} 794 | m_PrefabInstance: {fileID: 0} 795 | m_PrefabAsset: {fileID: 0} 796 | m_GameObject: {fileID: 172302} 797 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 798 | m_LocalPosition: {x: 0, y: 0, z: 0} 799 | m_LocalScale: {x: 1, y: 1, z: 1} 800 | m_ConstrainProportionsScale: 0 801 | m_Children: 802 | - {fileID: 22462574} 803 | - {fileID: 22473114} 804 | m_Father: {fileID: 22476054} 805 | m_RootOrder: 1 806 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 807 | m_AnchorMin: {x: 0, y: 0} 808 | m_AnchorMax: {x: 1, y: 0} 809 | m_AnchoredPosition: {x: 0, y: 20} 810 | m_SizeDelta: {x: -10, y: 30} 811 | m_Pivot: {x: 0.5, y: 0.5} 812 | --- !u!222 &22243444 813 | CanvasRenderer: 814 | m_ObjectHideFlags: 0 815 | m_CorrespondingSourceObject: {fileID: 0} 816 | m_PrefabInstance: {fileID: 0} 817 | m_PrefabAsset: {fileID: 0} 818 | m_GameObject: {fileID: 172302} 819 | m_CullTransparentMesh: 1 820 | --- !u!114 &11410802 821 | MonoBehaviour: 822 | m_ObjectHideFlags: 0 823 | m_CorrespondingSourceObject: {fileID: 0} 824 | m_PrefabInstance: {fileID: 0} 825 | m_PrefabAsset: {fileID: 0} 826 | m_GameObject: {fileID: 172302} 827 | m_Enabled: 1 828 | m_EditorHideFlags: 0 829 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 830 | m_Name: 831 | m_EditorClassIdentifier: 832 | m_Material: {fileID: 0} 833 | m_Color: {r: 0.24313727, g: 0.24313727, b: 0.24313727, a: 0.94509804} 834 | m_RaycastTarget: 1 835 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 836 | m_Maskable: 1 837 | m_OnCullStateChanged: 838 | m_PersistentCalls: 839 | m_Calls: [] 840 | m_Sprite: {fileID: 21300000, guid: 7ec4c6b1aadd5fc49b8a9478d037f352, type: 3} 841 | m_Type: 0 842 | m_PreserveAspect: 0 843 | m_FillCenter: 1 844 | m_FillMethod: 4 845 | m_FillAmount: 1 846 | m_FillClockwise: 1 847 | m_FillOrigin: 0 848 | m_UseSpriteMesh: 0 849 | m_PixelsPerUnitMultiplier: 1 850 | --- !u!114 &11492874 851 | MonoBehaviour: 852 | m_ObjectHideFlags: 0 853 | m_CorrespondingSourceObject: {fileID: 0} 854 | m_PrefabInstance: {fileID: 0} 855 | m_PrefabAsset: {fileID: 0} 856 | m_GameObject: {fileID: 172302} 857 | m_Enabled: 1 858 | m_EditorHideFlags: 0 859 | m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} 860 | m_Name: 861 | m_EditorClassIdentifier: 862 | m_Navigation: 863 | m_Mode: 3 864 | m_WrapAround: 0 865 | m_SelectOnUp: {fileID: 0} 866 | m_SelectOnDown: {fileID: 0} 867 | m_SelectOnLeft: {fileID: 0} 868 | m_SelectOnRight: {fileID: 0} 869 | m_Transition: 1 870 | m_Colors: 871 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 872 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 873 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 874 | m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 875 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 876 | m_ColorMultiplier: 1 877 | m_FadeDuration: 0.1 878 | m_SpriteState: 879 | m_HighlightedSprite: {fileID: 0} 880 | m_PressedSprite: {fileID: 0} 881 | m_SelectedSprite: {fileID: 0} 882 | m_DisabledSprite: {fileID: 0} 883 | m_AnimationTriggers: 884 | m_NormalTrigger: Normal 885 | m_HighlightedTrigger: Highlighted 886 | m_PressedTrigger: Pressed 887 | m_SelectedTrigger: Highlighted 888 | m_DisabledTrigger: Disabled 889 | m_Interactable: 1 890 | m_TargetGraphic: {fileID: 11410802} 891 | m_TextComponent: {fileID: 11404228} 892 | m_Placeholder: {fileID: 11437324} 893 | m_ContentType: 0 894 | m_InputType: 0 895 | m_AsteriskChar: 42 896 | m_KeyboardType: 0 897 | m_LineType: 2 898 | m_HideMobileInput: 0 899 | m_CharacterValidation: 0 900 | m_CharacterLimit: 0 901 | m_OnSubmit: 902 | m_PersistentCalls: 903 | m_Calls: [] 904 | m_OnDidEndEdit: 905 | m_PersistentCalls: 906 | m_Calls: [] 907 | m_OnValueChanged: 908 | m_PersistentCalls: 909 | m_Calls: [] 910 | m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 911 | m_CustomCaretColor: 0 912 | m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} 913 | m_Text: 914 | m_CaretBlinkRate: 0.85 915 | m_CaretWidth: 1 916 | m_ReadOnly: 0 917 | m_ShouldActivateOnSelect: 1 918 | --- !u!1 &180314 919 | GameObject: 920 | m_ObjectHideFlags: 0 921 | m_CorrespondingSourceObject: {fileID: 0} 922 | m_PrefabInstance: {fileID: 0} 923 | m_PrefabAsset: {fileID: 0} 924 | serializedVersion: 6 925 | m_Component: 926 | - component: {fileID: 22446206} 927 | - component: {fileID: 22223590} 928 | - component: {fileID: 11481330} 929 | - component: {fileID: 11489436} 930 | m_Layer: 5 931 | m_Name: Scrollbar 932 | m_TagString: Untagged 933 | m_Icon: {fileID: 0} 934 | m_NavMeshLayer: 0 935 | m_StaticEditorFlags: 0 936 | m_IsActive: 1 937 | --- !u!224 &22446206 938 | RectTransform: 939 | m_ObjectHideFlags: 0 940 | m_CorrespondingSourceObject: {fileID: 0} 941 | m_PrefabInstance: {fileID: 0} 942 | m_PrefabAsset: {fileID: 0} 943 | m_GameObject: {fileID: 180314} 944 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 945 | m_LocalPosition: {x: 0, y: 0, z: 0} 946 | m_LocalScale: {x: 1, y: 1, z: 1} 947 | m_ConstrainProportionsScale: 0 948 | m_Children: 949 | - {fileID: 22490688} 950 | m_Father: {fileID: 22461436} 951 | m_RootOrder: 1 952 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 953 | m_AnchorMin: {x: 1, y: 0} 954 | m_AnchorMax: {x: 1, y: 1} 955 | m_AnchoredPosition: {x: 0, y: -2} 956 | m_SizeDelta: {x: 20, y: -4} 957 | m_Pivot: {x: 1, y: 1} 958 | --- !u!222 &22223590 959 | CanvasRenderer: 960 | m_ObjectHideFlags: 0 961 | m_CorrespondingSourceObject: {fileID: 0} 962 | m_PrefabInstance: {fileID: 0} 963 | m_PrefabAsset: {fileID: 0} 964 | m_GameObject: {fileID: 180314} 965 | m_CullTransparentMesh: 1 966 | --- !u!114 &11481330 967 | MonoBehaviour: 968 | m_ObjectHideFlags: 0 969 | m_CorrespondingSourceObject: {fileID: 0} 970 | m_PrefabInstance: {fileID: 0} 971 | m_PrefabAsset: {fileID: 0} 972 | m_GameObject: {fileID: 180314} 973 | m_Enabled: 1 974 | m_EditorHideFlags: 0 975 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 976 | m_Name: 977 | m_EditorClassIdentifier: 978 | m_Material: {fileID: 0} 979 | m_Color: {r: 0.24313727, g: 0.24313727, b: 0.24313727, a: 1} 980 | m_RaycastTarget: 1 981 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 982 | m_Maskable: 1 983 | m_OnCullStateChanged: 984 | m_PersistentCalls: 985 | m_Calls: [] 986 | m_Sprite: {fileID: 21300000, guid: 7ec4c6b1aadd5fc49b8a9478d037f352, type: 3} 987 | m_Type: 0 988 | m_PreserveAspect: 0 989 | m_FillCenter: 1 990 | m_FillMethod: 4 991 | m_FillAmount: 1 992 | m_FillClockwise: 1 993 | m_FillOrigin: 0 994 | m_UseSpriteMesh: 0 995 | m_PixelsPerUnitMultiplier: 1 996 | --- !u!114 &11489436 997 | MonoBehaviour: 998 | m_ObjectHideFlags: 0 999 | m_CorrespondingSourceObject: {fileID: 0} 1000 | m_PrefabInstance: {fileID: 0} 1001 | m_PrefabAsset: {fileID: 0} 1002 | m_GameObject: {fileID: 180314} 1003 | m_Enabled: 1 1004 | m_EditorHideFlags: 0 1005 | m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} 1006 | m_Name: 1007 | m_EditorClassIdentifier: 1008 | m_Navigation: 1009 | m_Mode: 3 1010 | m_WrapAround: 0 1011 | m_SelectOnUp: {fileID: 0} 1012 | m_SelectOnDown: {fileID: 0} 1013 | m_SelectOnLeft: {fileID: 0} 1014 | m_SelectOnRight: {fileID: 0} 1015 | m_Transition: 1 1016 | m_Colors: 1017 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 1018 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 1019 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 1020 | m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 1021 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 1022 | m_ColorMultiplier: 1 1023 | m_FadeDuration: 0.1 1024 | m_SpriteState: 1025 | m_HighlightedSprite: {fileID: 0} 1026 | m_PressedSprite: {fileID: 0} 1027 | m_SelectedSprite: {fileID: 0} 1028 | m_DisabledSprite: {fileID: 0} 1029 | m_AnimationTriggers: 1030 | m_NormalTrigger: Normal 1031 | m_HighlightedTrigger: Highlighted 1032 | m_PressedTrigger: Pressed 1033 | m_SelectedTrigger: Highlighted 1034 | m_DisabledTrigger: Disabled 1035 | m_Interactable: 1 1036 | m_TargetGraphic: {fileID: 11449100} 1037 | m_HandleRect: {fileID: 22449444} 1038 | m_Direction: 2 1039 | m_Value: 1 1040 | m_Size: 1 1041 | m_NumberOfSteps: 0 1042 | m_OnValueChanged: 1043 | m_PersistentCalls: 1044 | m_Calls: [] 1045 | --- !u!1 &198506 1046 | GameObject: 1047 | m_ObjectHideFlags: 0 1048 | m_CorrespondingSourceObject: {fileID: 0} 1049 | m_PrefabInstance: {fileID: 0} 1050 | m_PrefabAsset: {fileID: 0} 1051 | serializedVersion: 6 1052 | m_Component: 1053 | - component: {fileID: 22473114} 1054 | - component: {fileID: 22239300} 1055 | - component: {fileID: 11404228} 1056 | m_Layer: 5 1057 | m_Name: Text 1058 | m_TagString: Untagged 1059 | m_Icon: {fileID: 0} 1060 | m_NavMeshLayer: 0 1061 | m_StaticEditorFlags: 0 1062 | m_IsActive: 1 1063 | --- !u!224 &22473114 1064 | RectTransform: 1065 | m_ObjectHideFlags: 0 1066 | m_CorrespondingSourceObject: {fileID: 0} 1067 | m_PrefabInstance: {fileID: 0} 1068 | m_PrefabAsset: {fileID: 0} 1069 | m_GameObject: {fileID: 198506} 1070 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1071 | m_LocalPosition: {x: 0, y: 0, z: 0} 1072 | m_LocalScale: {x: 1, y: 1, z: 1} 1073 | m_ConstrainProportionsScale: 0 1074 | m_Children: [] 1075 | m_Father: {fileID: 22423092} 1076 | m_RootOrder: 1 1077 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1078 | m_AnchorMin: {x: 0, y: 0} 1079 | m_AnchorMax: {x: 1, y: 1} 1080 | m_AnchoredPosition: {x: 0, y: 0} 1081 | m_SizeDelta: {x: -20, y: 0} 1082 | m_Pivot: {x: 0.5, y: 0.5} 1083 | --- !u!222 &22239300 1084 | CanvasRenderer: 1085 | m_ObjectHideFlags: 0 1086 | m_CorrespondingSourceObject: {fileID: 0} 1087 | m_PrefabInstance: {fileID: 0} 1088 | m_PrefabAsset: {fileID: 0} 1089 | m_GameObject: {fileID: 198506} 1090 | m_CullTransparentMesh: 1 1091 | --- !u!114 &11404228 1092 | MonoBehaviour: 1093 | m_ObjectHideFlags: 0 1094 | m_CorrespondingSourceObject: {fileID: 0} 1095 | m_PrefabInstance: {fileID: 0} 1096 | m_PrefabAsset: {fileID: 0} 1097 | m_GameObject: {fileID: 198506} 1098 | m_Enabled: 1 1099 | m_EditorHideFlags: 0 1100 | m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} 1101 | m_Name: 1102 | m_EditorClassIdentifier: 1103 | m_Material: {fileID: 0} 1104 | m_Color: {r: 0.9411765, g: 0.9411765, b: 0.9411765, a: 1} 1105 | m_RaycastTarget: 1 1106 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 1107 | m_Maskable: 1 1108 | m_OnCullStateChanged: 1109 | m_PersistentCalls: 1110 | m_Calls: [] 1111 | m_FontData: 1112 | m_Font: {fileID: 12800000, guid: 52fbb1602eac45b488f6a1789eba5a4e, type: 3} 1113 | m_FontSize: 14 1114 | m_FontStyle: 0 1115 | m_BestFit: 0 1116 | m_MinSize: 10 1117 | m_MaxSize: 40 1118 | m_Alignment: 3 1119 | m_AlignByGeometry: 0 1120 | m_RichText: 0 1121 | m_HorizontalOverflow: 0 1122 | m_VerticalOverflow: 0 1123 | m_LineSpacing: 1 1124 | m_Text: 1125 | -------------------------------------------------------------------------------- /Prefabs/Windowed Console.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &142352 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 22442352} 12 | - component: {fileID: 22242352} 13 | - component: {fileID: 11442352} 14 | m_Layer: 5 15 | m_Name: Image 16 | m_TagString: Untagged 17 | m_Icon: {fileID: 0} 18 | m_NavMeshLayer: 0 19 | m_StaticEditorFlags: 0 20 | m_IsActive: 1 21 | --- !u!224 &22442352 22 | RectTransform: 23 | m_ObjectHideFlags: 0 24 | m_CorrespondingSourceObject: {fileID: 0} 25 | m_PrefabInstance: {fileID: 0} 26 | m_PrefabAsset: {fileID: 0} 27 | m_GameObject: {fileID: 142352} 28 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 29 | m_LocalPosition: {x: 0, y: 0, z: 0} 30 | m_LocalScale: {x: 1, y: 1, z: 1} 31 | m_ConstrainProportionsScale: 0 32 | m_Children: [] 33 | m_Father: {fileID: 22453392} 34 | m_RootOrder: 0 35 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 36 | m_AnchorMin: {x: 0.5, y: 0.5} 37 | m_AnchorMax: {x: 0.5, y: 0.5} 38 | m_AnchoredPosition: {x: 0, y: 0} 39 | m_SizeDelta: {x: 20, y: 20} 40 | m_Pivot: {x: 0.5, y: 0.5} 41 | --- !u!222 &22242352 42 | CanvasRenderer: 43 | m_ObjectHideFlags: 0 44 | m_CorrespondingSourceObject: {fileID: 0} 45 | m_PrefabInstance: {fileID: 0} 46 | m_PrefabAsset: {fileID: 0} 47 | m_GameObject: {fileID: 142352} 48 | m_CullTransparentMesh: 1 49 | --- !u!114 &11442352 50 | MonoBehaviour: 51 | m_ObjectHideFlags: 0 52 | m_CorrespondingSourceObject: {fileID: 0} 53 | m_PrefabInstance: {fileID: 0} 54 | m_PrefabAsset: {fileID: 0} 55 | m_GameObject: {fileID: 142352} 56 | m_Enabled: 1 57 | m_EditorHideFlags: 0 58 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 59 | m_Name: 60 | m_EditorClassIdentifier: 61 | m_Material: {fileID: 0} 62 | m_Color: {r: 1, g: 1, b: 1, a: 1} 63 | m_RaycastTarget: 1 64 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 65 | m_Maskable: 1 66 | m_OnCullStateChanged: 67 | m_PersistentCalls: 68 | m_Calls: [] 69 | m_Sprite: {fileID: 21300000, guid: b65ce3ba103504488b2ca397cc5b54b9, type: 3} 70 | m_Type: 0 71 | m_PreserveAspect: 0 72 | m_FillCenter: 1 73 | m_FillMethod: 4 74 | m_FillAmount: 1 75 | m_FillClockwise: 1 76 | m_FillOrigin: 0 77 | m_UseSpriteMesh: 0 78 | m_PixelsPerUnitMultiplier: 1 79 | --- !u!1 &142354 80 | GameObject: 81 | m_ObjectHideFlags: 0 82 | m_CorrespondingSourceObject: {fileID: 0} 83 | m_PrefabInstance: {fileID: 0} 84 | m_PrefabAsset: {fileID: 0} 85 | serializedVersion: 6 86 | m_Component: 87 | - component: {fileID: 22442354} 88 | - component: {fileID: 22242354} 89 | - component: {fileID: 11442356} 90 | m_Layer: 5 91 | m_Name: Image 92 | m_TagString: Untagged 93 | m_Icon: {fileID: 0} 94 | m_NavMeshLayer: 0 95 | m_StaticEditorFlags: 0 96 | m_IsActive: 1 97 | --- !u!224 &22442354 98 | RectTransform: 99 | m_ObjectHideFlags: 0 100 | m_CorrespondingSourceObject: {fileID: 0} 101 | m_PrefabInstance: {fileID: 0} 102 | m_PrefabAsset: {fileID: 0} 103 | m_GameObject: {fileID: 142354} 104 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 105 | m_LocalPosition: {x: 0, y: 0, z: 0} 106 | m_LocalScale: {x: 1, y: 1, z: 1} 107 | m_ConstrainProportionsScale: 0 108 | m_Children: [] 109 | m_Father: {fileID: 22453412} 110 | m_RootOrder: 0 111 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 112 | m_AnchorMin: {x: 0.5, y: 0.5} 113 | m_AnchorMax: {x: 0.5, y: 0.5} 114 | m_AnchoredPosition: {x: 0, y: 0} 115 | m_SizeDelta: {x: 21, y: 21} 116 | m_Pivot: {x: 0.5, y: 0.5} 117 | --- !u!222 &22242354 118 | CanvasRenderer: 119 | m_ObjectHideFlags: 0 120 | m_CorrespondingSourceObject: {fileID: 0} 121 | m_PrefabInstance: {fileID: 0} 122 | m_PrefabAsset: {fileID: 0} 123 | m_GameObject: {fileID: 142354} 124 | m_CullTransparentMesh: 1 125 | --- !u!114 &11442356 126 | MonoBehaviour: 127 | m_ObjectHideFlags: 0 128 | m_CorrespondingSourceObject: {fileID: 0} 129 | m_PrefabInstance: {fileID: 0} 130 | m_PrefabAsset: {fileID: 0} 131 | m_GameObject: {fileID: 142354} 132 | m_Enabled: 1 133 | m_EditorHideFlags: 0 134 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 135 | m_Name: 136 | m_EditorClassIdentifier: 137 | m_Material: {fileID: 0} 138 | m_Color: {r: 1, g: 1, b: 1, a: 1} 139 | m_RaycastTarget: 1 140 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 141 | m_Maskable: 1 142 | m_OnCullStateChanged: 143 | m_PersistentCalls: 144 | m_Calls: [] 145 | m_Sprite: {fileID: 21300000, guid: f9b779316ad72433293b182256765fbe, type: 3} 146 | m_Type: 0 147 | m_PreserveAspect: 0 148 | m_FillCenter: 1 149 | m_FillMethod: 4 150 | m_FillAmount: 1 151 | m_FillClockwise: 1 152 | m_FillOrigin: 0 153 | m_UseSpriteMesh: 0 154 | m_PixelsPerUnitMultiplier: 1 155 | --- !u!1 &146054 156 | GameObject: 157 | m_ObjectHideFlags: 0 158 | m_CorrespondingSourceObject: {fileID: 0} 159 | m_PrefabInstance: {fileID: 0} 160 | m_PrefabAsset: {fileID: 0} 161 | serializedVersion: 6 162 | m_Component: 163 | - component: {fileID: 22498174} 164 | - component: {fileID: 22263486} 165 | - component: {fileID: 11428292} 166 | m_Layer: 5 167 | m_Name: Logo 168 | m_TagString: Untagged 169 | m_Icon: {fileID: 0} 170 | m_NavMeshLayer: 0 171 | m_StaticEditorFlags: 0 172 | m_IsActive: 1 173 | --- !u!224 &22498174 174 | RectTransform: 175 | m_ObjectHideFlags: 0 176 | m_CorrespondingSourceObject: {fileID: 0} 177 | m_PrefabInstance: {fileID: 0} 178 | m_PrefabAsset: {fileID: 0} 179 | m_GameObject: {fileID: 146054} 180 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 181 | m_LocalPosition: {x: 0, y: 0, z: 0} 182 | m_LocalScale: {x: 1, y: 1, z: 1} 183 | m_ConstrainProportionsScale: 0 184 | m_Children: [] 185 | m_Father: {fileID: 22453406} 186 | m_RootOrder: 5 187 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 188 | m_AnchorMin: {x: 0, y: 1} 189 | m_AnchorMax: {x: 0, y: 1} 190 | m_AnchoredPosition: {x: 20, y: -5} 191 | m_SizeDelta: {x: 42, y: 16} 192 | m_Pivot: {x: 0, y: 1} 193 | --- !u!222 &22263486 194 | CanvasRenderer: 195 | m_ObjectHideFlags: 0 196 | m_CorrespondingSourceObject: {fileID: 0} 197 | m_PrefabInstance: {fileID: 0} 198 | m_PrefabAsset: {fileID: 0} 199 | m_GameObject: {fileID: 146054} 200 | m_CullTransparentMesh: 1 201 | --- !u!114 &11428292 202 | MonoBehaviour: 203 | m_ObjectHideFlags: 0 204 | m_CorrespondingSourceObject: {fileID: 0} 205 | m_PrefabInstance: {fileID: 0} 206 | m_PrefabAsset: {fileID: 0} 207 | m_GameObject: {fileID: 146054} 208 | m_Enabled: 1 209 | m_EditorHideFlags: 0 210 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 211 | m_Name: 212 | m_EditorClassIdentifier: 213 | m_Material: {fileID: 0} 214 | m_Color: {r: 1, g: 1, b: 1, a: 1} 215 | m_RaycastTarget: 1 216 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 217 | m_Maskable: 1 218 | m_OnCullStateChanged: 219 | m_PersistentCalls: 220 | m_Calls: [] 221 | m_Sprite: {fileID: 21300000, guid: 3e4a824c42b3c71469b634c8e76a765c, type: 3} 222 | m_Type: 0 223 | m_PreserveAspect: 0 224 | m_FillCenter: 1 225 | m_FillMethod: 4 226 | m_FillAmount: 1 227 | m_FillClockwise: 1 228 | m_FillOrigin: 0 229 | m_UseSpriteMesh: 0 230 | m_PixelsPerUnitMultiplier: 1 231 | --- !u!1 &153388 232 | GameObject: 233 | m_ObjectHideFlags: 0 234 | m_CorrespondingSourceObject: {fileID: 0} 235 | m_PrefabInstance: {fileID: 0} 236 | m_PrefabAsset: {fileID: 0} 237 | serializedVersion: 6 238 | m_Component: 239 | - component: {fileID: 22453388} 240 | - component: {fileID: 22253400} 241 | - component: {fileID: 11453376} 242 | m_Layer: 5 243 | m_Name: Placeholder 244 | m_TagString: Untagged 245 | m_Icon: {fileID: 0} 246 | m_NavMeshLayer: 0 247 | m_StaticEditorFlags: 0 248 | m_IsActive: 1 249 | --- !u!224 &22453388 250 | RectTransform: 251 | m_ObjectHideFlags: 0 252 | m_CorrespondingSourceObject: {fileID: 0} 253 | m_PrefabInstance: {fileID: 0} 254 | m_PrefabAsset: {fileID: 0} 255 | m_GameObject: {fileID: 153388} 256 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 257 | m_LocalPosition: {x: 0, y: 0, z: 0} 258 | m_LocalScale: {x: 1, y: 1, z: 1} 259 | m_ConstrainProportionsScale: 0 260 | m_Children: [] 261 | m_Father: {fileID: 22453398} 262 | m_RootOrder: 0 263 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 264 | m_AnchorMin: {x: 0, y: 0} 265 | m_AnchorMax: {x: 1, y: 1} 266 | m_AnchoredPosition: {x: 3.5, y: 0} 267 | m_SizeDelta: {x: -7, y: 0} 268 | m_Pivot: {x: 0.5, y: 0.5} 269 | --- !u!222 &22253400 270 | CanvasRenderer: 271 | m_ObjectHideFlags: 0 272 | m_CorrespondingSourceObject: {fileID: 0} 273 | m_PrefabInstance: {fileID: 0} 274 | m_PrefabAsset: {fileID: 0} 275 | m_GameObject: {fileID: 153388} 276 | m_CullTransparentMesh: 1 277 | --- !u!114 &11453376 278 | MonoBehaviour: 279 | m_ObjectHideFlags: 0 280 | m_CorrespondingSourceObject: {fileID: 0} 281 | m_PrefabInstance: {fileID: 0} 282 | m_PrefabAsset: {fileID: 0} 283 | m_GameObject: {fileID: 153388} 284 | m_Enabled: 1 285 | m_EditorHideFlags: 0 286 | m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} 287 | m_Name: 288 | m_EditorClassIdentifier: 289 | m_Material: {fileID: 0} 290 | m_Color: {r: 1, g: 1, b: 1, a: 0.59607846} 291 | m_RaycastTarget: 1 292 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 293 | m_Maskable: 1 294 | m_OnCullStateChanged: 295 | m_PersistentCalls: 296 | m_Calls: [] 297 | m_FontData: 298 | m_Font: {fileID: 12800000, guid: 52fbb1602eac45b488f6a1789eba5a4e, type: 3} 299 | m_FontSize: 14 300 | m_FontStyle: 2 301 | m_BestFit: 0 302 | m_MinSize: 10 303 | m_MaxSize: 40 304 | m_Alignment: 3 305 | m_AlignByGeometry: 0 306 | m_RichText: 1 307 | m_HorizontalOverflow: 0 308 | m_VerticalOverflow: 0 309 | m_LineSpacing: 1 310 | m_Text: Enter command... 311 | --- !u!1 &153390 312 | GameObject: 313 | m_ObjectHideFlags: 0 314 | m_CorrespondingSourceObject: {fileID: 0} 315 | m_PrefabInstance: {fileID: 0} 316 | m_PrefabAsset: {fileID: 0} 317 | serializedVersion: 6 318 | m_Component: 319 | - component: {fileID: 22453390} 320 | m_Layer: 5 321 | m_Name: Sliding Area 322 | m_TagString: Untagged 323 | m_Icon: {fileID: 0} 324 | m_NavMeshLayer: 0 325 | m_StaticEditorFlags: 0 326 | m_IsActive: 1 327 | --- !u!224 &22453390 328 | RectTransform: 329 | m_ObjectHideFlags: 0 330 | m_CorrespondingSourceObject: {fileID: 0} 331 | m_PrefabInstance: {fileID: 0} 332 | m_PrefabAsset: {fileID: 0} 333 | m_GameObject: {fileID: 153390} 334 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 335 | m_LocalPosition: {x: 0, y: 0, z: 0} 336 | m_LocalScale: {x: 1, y: 1, z: 1} 337 | m_ConstrainProportionsScale: 0 338 | m_Children: 339 | - {fileID: 22453410} 340 | m_Father: {fileID: 22453396} 341 | m_RootOrder: 0 342 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 343 | m_AnchorMin: {x: 0, y: 0} 344 | m_AnchorMax: {x: 1, y: 1} 345 | m_AnchoredPosition: {x: 0, y: 0} 346 | m_SizeDelta: {x: -20, y: -20} 347 | m_Pivot: {x: 0.5, y: 0.5} 348 | --- !u!1 &153392 349 | GameObject: 350 | m_ObjectHideFlags: 0 351 | m_CorrespondingSourceObject: {fileID: 0} 352 | m_PrefabInstance: {fileID: 0} 353 | m_PrefabAsset: {fileID: 0} 354 | serializedVersion: 6 355 | m_Component: 356 | - component: {fileID: 22453392} 357 | - component: {fileID: 22253402} 358 | - component: {fileID: 11453382} 359 | - component: {fileID: 11453378} 360 | m_Layer: 5 361 | m_Name: Resize Button 362 | m_TagString: Untagged 363 | m_Icon: {fileID: 0} 364 | m_NavMeshLayer: 0 365 | m_StaticEditorFlags: 0 366 | m_IsActive: 1 367 | --- !u!224 &22453392 368 | RectTransform: 369 | m_ObjectHideFlags: 0 370 | m_CorrespondingSourceObject: {fileID: 0} 371 | m_PrefabInstance: {fileID: 0} 372 | m_PrefabAsset: {fileID: 0} 373 | m_GameObject: {fileID: 153392} 374 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 375 | m_LocalPosition: {x: 0, y: 0, z: 0} 376 | m_LocalScale: {x: 1, y: 1, z: 1} 377 | m_ConstrainProportionsScale: 0 378 | m_Children: 379 | - {fileID: 22442352} 380 | m_Father: {fileID: 22453406} 381 | m_RootOrder: 1 382 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 383 | m_AnchorMin: {x: 1, y: 0} 384 | m_AnchorMax: {x: 1, y: 0} 385 | m_AnchoredPosition: {x: 0, y: 0} 386 | m_SizeDelta: {x: 24, y: 24} 387 | m_Pivot: {x: 1, y: 0} 388 | --- !u!222 &22253402 389 | CanvasRenderer: 390 | m_ObjectHideFlags: 0 391 | m_CorrespondingSourceObject: {fileID: 0} 392 | m_PrefabInstance: {fileID: 0} 393 | m_PrefabAsset: {fileID: 0} 394 | m_GameObject: {fileID: 153392} 395 | m_CullTransparentMesh: 1 396 | --- !u!114 &11453382 397 | MonoBehaviour: 398 | m_ObjectHideFlags: 0 399 | m_CorrespondingSourceObject: {fileID: 0} 400 | m_PrefabInstance: {fileID: 0} 401 | m_PrefabAsset: {fileID: 0} 402 | m_GameObject: {fileID: 153392} 403 | m_Enabled: 1 404 | m_EditorHideFlags: 0 405 | m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} 406 | m_Name: 407 | m_EditorClassIdentifier: 408 | m_Navigation: 409 | m_Mode: 3 410 | m_WrapAround: 0 411 | m_SelectOnUp: {fileID: 0} 412 | m_SelectOnDown: {fileID: 0} 413 | m_SelectOnLeft: {fileID: 0} 414 | m_SelectOnRight: {fileID: 0} 415 | m_Transition: 1 416 | m_Colors: 417 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 418 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 419 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 420 | m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 421 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 422 | m_ColorMultiplier: 1 423 | m_FadeDuration: 0.1 424 | m_SpriteState: 425 | m_HighlightedSprite: {fileID: 0} 426 | m_PressedSprite: {fileID: 0} 427 | m_SelectedSprite: {fileID: 0} 428 | m_DisabledSprite: {fileID: 0} 429 | m_AnimationTriggers: 430 | m_NormalTrigger: Normal 431 | m_HighlightedTrigger: Highlighted 432 | m_PressedTrigger: Pressed 433 | m_SelectedTrigger: Highlighted 434 | m_DisabledTrigger: Disabled 435 | m_Interactable: 1 436 | m_TargetGraphic: {fileID: 11442352} 437 | m_OnClick: 438 | m_PersistentCalls: 439 | m_Calls: [] 440 | --- !u!114 &11453378 441 | MonoBehaviour: 442 | m_ObjectHideFlags: 0 443 | m_CorrespondingSourceObject: {fileID: 0} 444 | m_PrefabInstance: {fileID: 0} 445 | m_PrefabAsset: {fileID: 0} 446 | m_GameObject: {fileID: 153392} 447 | m_Enabled: 1 448 | m_EditorHideFlags: 0 449 | m_Script: {fileID: 11500000, guid: c0703438ab04e4175a9b2dab3e0db7b6, type: 3} 450 | m_Name: 451 | m_EditorClassIdentifier: 452 | minSize: {x: 160, y: 150} 453 | panelRectTransform: {fileID: 22453406} 454 | --- !u!1 &153396 455 | GameObject: 456 | m_ObjectHideFlags: 0 457 | m_CorrespondingSourceObject: {fileID: 0} 458 | m_PrefabInstance: {fileID: 0} 459 | m_PrefabAsset: {fileID: 0} 460 | serializedVersion: 6 461 | m_Component: 462 | - component: {fileID: 22453396} 463 | - component: {fileID: 22253406} 464 | - component: {fileID: 11453386} 465 | - component: {fileID: 11453388} 466 | m_Layer: 5 467 | m_Name: Scrollbar 468 | m_TagString: Untagged 469 | m_Icon: {fileID: 0} 470 | m_NavMeshLayer: 0 471 | m_StaticEditorFlags: 0 472 | m_IsActive: 1 473 | --- !u!224 &22453396 474 | RectTransform: 475 | m_ObjectHideFlags: 0 476 | m_CorrespondingSourceObject: {fileID: 0} 477 | m_PrefabInstance: {fileID: 0} 478 | m_PrefabAsset: {fileID: 0} 479 | m_GameObject: {fileID: 153396} 480 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 481 | m_LocalPosition: {x: 0, y: 0, z: 0} 482 | m_LocalScale: {x: 1, y: 1, z: 1} 483 | m_ConstrainProportionsScale: 0 484 | m_Children: 485 | - {fileID: 22453390} 486 | m_Father: {fileID: 22453402} 487 | m_RootOrder: 1 488 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 489 | m_AnchorMin: {x: 1, y: 0} 490 | m_AnchorMax: {x: 1, y: 1} 491 | m_AnchoredPosition: {x: -10, y: 0} 492 | m_SizeDelta: {x: 20, y: -4} 493 | m_Pivot: {x: 0.5, y: 0.5} 494 | --- !u!222 &22253406 495 | CanvasRenderer: 496 | m_ObjectHideFlags: 0 497 | m_CorrespondingSourceObject: {fileID: 0} 498 | m_PrefabInstance: {fileID: 0} 499 | m_PrefabAsset: {fileID: 0} 500 | m_GameObject: {fileID: 153396} 501 | m_CullTransparentMesh: 1 502 | --- !u!114 &11453386 503 | MonoBehaviour: 504 | m_ObjectHideFlags: 0 505 | m_CorrespondingSourceObject: {fileID: 0} 506 | m_PrefabInstance: {fileID: 0} 507 | m_PrefabAsset: {fileID: 0} 508 | m_GameObject: {fileID: 153396} 509 | m_Enabled: 1 510 | m_EditorHideFlags: 0 511 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 512 | m_Name: 513 | m_EditorClassIdentifier: 514 | m_Material: {fileID: 0} 515 | m_Color: {r: 0.23529413, g: 0.23529413, b: 0.23529413, a: 1} 516 | m_RaycastTarget: 1 517 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 518 | m_Maskable: 1 519 | m_OnCullStateChanged: 520 | m_PersistentCalls: 521 | m_Calls: [] 522 | m_Sprite: {fileID: 0} 523 | m_Type: 0 524 | m_PreserveAspect: 0 525 | m_FillCenter: 1 526 | m_FillMethod: 4 527 | m_FillAmount: 1 528 | m_FillClockwise: 1 529 | m_FillOrigin: 0 530 | m_UseSpriteMesh: 0 531 | m_PixelsPerUnitMultiplier: 1 532 | --- !u!114 &11453388 533 | MonoBehaviour: 534 | m_ObjectHideFlags: 0 535 | m_CorrespondingSourceObject: {fileID: 0} 536 | m_PrefabInstance: {fileID: 0} 537 | m_PrefabAsset: {fileID: 0} 538 | m_GameObject: {fileID: 153396} 539 | m_Enabled: 1 540 | m_EditorHideFlags: 0 541 | m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} 542 | m_Name: 543 | m_EditorClassIdentifier: 544 | m_Navigation: 545 | m_Mode: 3 546 | m_WrapAround: 0 547 | m_SelectOnUp: {fileID: 0} 548 | m_SelectOnDown: {fileID: 0} 549 | m_SelectOnLeft: {fileID: 0} 550 | m_SelectOnRight: {fileID: 0} 551 | m_Transition: 1 552 | m_Colors: 553 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 554 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 555 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 556 | m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 557 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 558 | m_ColorMultiplier: 1 559 | m_FadeDuration: 0.1 560 | m_SpriteState: 561 | m_HighlightedSprite: {fileID: 0} 562 | m_PressedSprite: {fileID: 0} 563 | m_SelectedSprite: {fileID: 0} 564 | m_DisabledSprite: {fileID: 0} 565 | m_AnimationTriggers: 566 | m_NormalTrigger: Normal 567 | m_HighlightedTrigger: Highlighted 568 | m_PressedTrigger: Pressed 569 | m_SelectedTrigger: Highlighted 570 | m_DisabledTrigger: Disabled 571 | m_Interactable: 1 572 | m_TargetGraphic: {fileID: 11453406} 573 | m_HandleRect: {fileID: 22453410} 574 | m_Direction: 2 575 | m_Value: 0 576 | m_Size: 1 577 | m_NumberOfSteps: 0 578 | m_OnValueChanged: 579 | m_PersistentCalls: 580 | m_Calls: [] 581 | --- !u!1 &153398 582 | GameObject: 583 | m_ObjectHideFlags: 0 584 | m_CorrespondingSourceObject: {fileID: 0} 585 | m_PrefabInstance: {fileID: 0} 586 | m_PrefabAsset: {fileID: 0} 587 | serializedVersion: 6 588 | m_Component: 589 | - component: {fileID: 22453398} 590 | - component: {fileID: 22253408} 591 | - component: {fileID: 11453390} 592 | - component: {fileID: 11453392} 593 | m_Layer: 5 594 | m_Name: InputField 595 | m_TagString: Untagged 596 | m_Icon: {fileID: 0} 597 | m_NavMeshLayer: 0 598 | m_StaticEditorFlags: 0 599 | m_IsActive: 1 600 | --- !u!224 &22453398 601 | RectTransform: 602 | m_ObjectHideFlags: 0 603 | m_CorrespondingSourceObject: {fileID: 0} 604 | m_PrefabInstance: {fileID: 0} 605 | m_PrefabAsset: {fileID: 0} 606 | m_GameObject: {fileID: 153398} 607 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 608 | m_LocalPosition: {x: 0, y: 0, z: 0} 609 | m_LocalScale: {x: 1, y: 1, z: 1} 610 | m_ConstrainProportionsScale: 0 611 | m_Children: 612 | - {fileID: 22453388} 613 | - {fileID: 22453420} 614 | m_Father: {fileID: 22453406} 615 | m_RootOrder: 4 616 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 617 | m_AnchorMin: {x: 0, y: 0} 618 | m_AnchorMax: {x: 1, y: 0} 619 | m_AnchoredPosition: {x: 0, y: 10} 620 | m_SizeDelta: {x: -20, y: 30} 621 | m_Pivot: {x: 0.5, y: 0} 622 | --- !u!222 &22253408 623 | CanvasRenderer: 624 | m_ObjectHideFlags: 0 625 | m_CorrespondingSourceObject: {fileID: 0} 626 | m_PrefabInstance: {fileID: 0} 627 | m_PrefabAsset: {fileID: 0} 628 | m_GameObject: {fileID: 153398} 629 | m_CullTransparentMesh: 1 630 | --- !u!114 &11453390 631 | MonoBehaviour: 632 | m_ObjectHideFlags: 0 633 | m_CorrespondingSourceObject: {fileID: 0} 634 | m_PrefabInstance: {fileID: 0} 635 | m_PrefabAsset: {fileID: 0} 636 | m_GameObject: {fileID: 153398} 637 | m_Enabled: 1 638 | m_EditorHideFlags: 0 639 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 640 | m_Name: 641 | m_EditorClassIdentifier: 642 | m_Material: {fileID: 0} 643 | m_Color: {r: 0.23529413, g: 0.23529413, b: 0.23137257, a: 1} 644 | m_RaycastTarget: 1 645 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 646 | m_Maskable: 1 647 | m_OnCullStateChanged: 648 | m_PersistentCalls: 649 | m_Calls: [] 650 | m_Sprite: {fileID: 0} 651 | m_Type: 0 652 | m_PreserveAspect: 0 653 | m_FillCenter: 1 654 | m_FillMethod: 4 655 | m_FillAmount: 1 656 | m_FillClockwise: 1 657 | m_FillOrigin: 0 658 | m_UseSpriteMesh: 0 659 | m_PixelsPerUnitMultiplier: 1 660 | --- !u!114 &11453392 661 | MonoBehaviour: 662 | m_ObjectHideFlags: 0 663 | m_CorrespondingSourceObject: {fileID: 0} 664 | m_PrefabInstance: {fileID: 0} 665 | m_PrefabAsset: {fileID: 0} 666 | m_GameObject: {fileID: 153398} 667 | m_Enabled: 1 668 | m_EditorHideFlags: 0 669 | m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} 670 | m_Name: 671 | m_EditorClassIdentifier: 672 | m_Navigation: 673 | m_Mode: 3 674 | m_WrapAround: 0 675 | m_SelectOnUp: {fileID: 0} 676 | m_SelectOnDown: {fileID: 0} 677 | m_SelectOnLeft: {fileID: 0} 678 | m_SelectOnRight: {fileID: 0} 679 | m_Transition: 1 680 | m_Colors: 681 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 682 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 683 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 684 | m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 685 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 686 | m_ColorMultiplier: 1 687 | m_FadeDuration: 0.1 688 | m_SpriteState: 689 | m_HighlightedSprite: {fileID: 0} 690 | m_PressedSprite: {fileID: 0} 691 | m_SelectedSprite: {fileID: 0} 692 | m_DisabledSprite: {fileID: 0} 693 | m_AnimationTriggers: 694 | m_NormalTrigger: Normal 695 | m_HighlightedTrigger: Highlighted 696 | m_PressedTrigger: Pressed 697 | m_SelectedTrigger: Highlighted 698 | m_DisabledTrigger: Disabled 699 | m_Interactable: 1 700 | m_TargetGraphic: {fileID: 11453390} 701 | m_TextComponent: {fileID: 11453420} 702 | m_Placeholder: {fileID: 11453376} 703 | m_ContentType: 0 704 | m_InputType: 0 705 | m_AsteriskChar: 42 706 | m_KeyboardType: 0 707 | m_LineType: 2 708 | m_HideMobileInput: 0 709 | m_CharacterValidation: 0 710 | m_CharacterLimit: 0 711 | m_OnSubmit: 712 | m_PersistentCalls: 713 | m_Calls: [] 714 | m_OnDidEndEdit: 715 | m_PersistentCalls: 716 | m_Calls: [] 717 | m_OnValueChanged: 718 | m_PersistentCalls: 719 | m_Calls: [] 720 | m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 721 | m_CustomCaretColor: 0 722 | m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} 723 | m_Text: 724 | m_CaretBlinkRate: 1.7 725 | m_CaretWidth: 1 726 | m_ReadOnly: 0 727 | m_ShouldActivateOnSelect: 1 728 | --- !u!1 &153402 729 | GameObject: 730 | m_ObjectHideFlags: 0 731 | m_CorrespondingSourceObject: {fileID: 0} 732 | m_PrefabInstance: {fileID: 0} 733 | m_PrefabAsset: {fileID: 0} 734 | serializedVersion: 6 735 | m_Component: 736 | - component: {fileID: 22453402} 737 | - component: {fileID: 11453396} 738 | - component: {fileID: 22253410} 739 | - component: {fileID: 11453398} 740 | m_Layer: 5 741 | m_Name: mask 742 | m_TagString: Untagged 743 | m_Icon: {fileID: 0} 744 | m_NavMeshLayer: 0 745 | m_StaticEditorFlags: 0 746 | m_IsActive: 1 747 | --- !u!224 &22453402 748 | RectTransform: 749 | m_ObjectHideFlags: 0 750 | m_CorrespondingSourceObject: {fileID: 0} 751 | m_PrefabInstance: {fileID: 0} 752 | m_PrefabAsset: {fileID: 0} 753 | m_GameObject: {fileID: 153402} 754 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 755 | m_LocalPosition: {x: 0, y: 0, z: 0} 756 | m_LocalScale: {x: 1, y: 1, z: 1} 757 | m_ConstrainProportionsScale: 0 758 | m_Children: 759 | - {fileID: 22453404} 760 | - {fileID: 22453396} 761 | m_Father: {fileID: 22453406} 762 | m_RootOrder: 3 763 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 764 | m_AnchorMin: {x: 0, y: 0} 765 | m_AnchorMax: {x: 1, y: 1} 766 | m_AnchoredPosition: {x: 0, y: 5.5} 767 | m_SizeDelta: {x: -20, y: -71} 768 | m_Pivot: {x: 0.5, y: 0.5} 769 | --- !u!114 &11453396 770 | MonoBehaviour: 771 | m_ObjectHideFlags: 0 772 | m_CorrespondingSourceObject: {fileID: 0} 773 | m_PrefabInstance: {fileID: 0} 774 | m_PrefabAsset: {fileID: 0} 775 | m_GameObject: {fileID: 153402} 776 | m_Enabled: 1 777 | m_EditorHideFlags: 0 778 | m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} 779 | m_Name: 780 | m_EditorClassIdentifier: 781 | m_ShowMaskGraphic: 1 782 | --- !u!222 &22253410 783 | CanvasRenderer: 784 | m_ObjectHideFlags: 0 785 | m_CorrespondingSourceObject: {fileID: 0} 786 | m_PrefabInstance: {fileID: 0} 787 | m_PrefabAsset: {fileID: 0} 788 | m_GameObject: {fileID: 153402} 789 | m_CullTransparentMesh: 1 790 | --- !u!114 &11453398 791 | MonoBehaviour: 792 | m_ObjectHideFlags: 0 793 | m_CorrespondingSourceObject: {fileID: 0} 794 | m_PrefabInstance: {fileID: 0} 795 | m_PrefabAsset: {fileID: 0} 796 | m_GameObject: {fileID: 153402} 797 | m_Enabled: 1 798 | m_EditorHideFlags: 0 799 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 800 | m_Name: 801 | m_EditorClassIdentifier: 802 | m_Material: {fileID: 0} 803 | m_Color: {r: 0.23529412, g: 0.23529412, b: 0.23529412, a: 1} 804 | m_RaycastTarget: 1 805 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 806 | m_Maskable: 1 807 | m_OnCullStateChanged: 808 | m_PersistentCalls: 809 | m_Calls: [] 810 | m_Sprite: {fileID: 0} 811 | m_Type: 0 812 | m_PreserveAspect: 0 813 | m_FillCenter: 1 814 | m_FillMethod: 4 815 | m_FillAmount: 1 816 | m_FillClockwise: 1 817 | m_FillOrigin: 0 818 | m_UseSpriteMesh: 0 819 | m_PixelsPerUnitMultiplier: 1 820 | --- !u!1 &153404 821 | GameObject: 822 | m_ObjectHideFlags: 0 823 | m_CorrespondingSourceObject: {fileID: 0} 824 | m_PrefabInstance: {fileID: 0} 825 | m_PrefabAsset: {fileID: 0} 826 | serializedVersion: 6 827 | m_Component: 828 | - component: {fileID: 22453404} 829 | - component: {fileID: 11453400} 830 | m_Layer: 5 831 | m_Name: scroll rect 832 | m_TagString: Untagged 833 | m_Icon: {fileID: 0} 834 | m_NavMeshLayer: 0 835 | m_StaticEditorFlags: 0 836 | m_IsActive: 1 837 | --- !u!224 &22453404 838 | RectTransform: 839 | m_ObjectHideFlags: 0 840 | m_CorrespondingSourceObject: {fileID: 0} 841 | m_PrefabInstance: {fileID: 0} 842 | m_PrefabAsset: {fileID: 0} 843 | m_GameObject: {fileID: 153404} 844 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 845 | m_LocalPosition: {x: 0, y: 0, z: 0} 846 | m_LocalScale: {x: 1, y: 1, z: 1} 847 | m_ConstrainProportionsScale: 0 848 | m_Children: 849 | - {fileID: 22453416} 850 | m_Father: {fileID: 22453402} 851 | m_RootOrder: 0 852 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 853 | m_AnchorMin: {x: 0, y: 0} 854 | m_AnchorMax: {x: 1, y: 1} 855 | m_AnchoredPosition: {x: -10, y: -2.5} 856 | m_SizeDelta: {x: -30, y: -15} 857 | m_Pivot: {x: 0.5, y: 0.5} 858 | --- !u!114 &11453400 859 | MonoBehaviour: 860 | m_ObjectHideFlags: 0 861 | m_CorrespondingSourceObject: {fileID: 0} 862 | m_PrefabInstance: {fileID: 0} 863 | m_PrefabAsset: {fileID: 0} 864 | m_GameObject: {fileID: 153404} 865 | m_Enabled: 1 866 | m_EditorHideFlags: 0 867 | m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} 868 | m_Name: 869 | m_EditorClassIdentifier: 870 | m_Content: {fileID: 22453416} 871 | m_Horizontal: 0 872 | m_Vertical: 1 873 | m_MovementType: 1 874 | m_Elasticity: 0.1 875 | m_Inertia: 1 876 | m_DecelerationRate: 0.135 877 | m_ScrollSensitivity: 10 878 | m_Viewport: {fileID: 0} 879 | m_HorizontalScrollbar: {fileID: 0} 880 | m_VerticalScrollbar: {fileID: 11453388} 881 | m_HorizontalScrollbarVisibility: 0 882 | m_VerticalScrollbarVisibility: 0 883 | m_HorizontalScrollbarSpacing: 0 884 | m_VerticalScrollbarSpacing: 0 885 | m_OnValueChanged: 886 | m_PersistentCalls: 887 | m_Calls: [] 888 | --- !u!1 &153406 889 | GameObject: 890 | m_ObjectHideFlags: 0 891 | m_CorrespondingSourceObject: {fileID: 0} 892 | m_PrefabInstance: {fileID: 0} 893 | m_PrefabAsset: {fileID: 0} 894 | serializedVersion: 6 895 | m_Component: 896 | - component: {fileID: 22453406} 897 | - component: {fileID: 22253412} 898 | - component: {fileID: 11453402} 899 | m_Layer: 5 900 | m_Name: Console Window 901 | m_TagString: Untagged 902 | m_Icon: {fileID: 0} 903 | m_NavMeshLayer: 0 904 | m_StaticEditorFlags: 0 905 | m_IsActive: 1 906 | --- !u!224 &22453406 907 | RectTransform: 908 | m_ObjectHideFlags: 0 909 | m_CorrespondingSourceObject: {fileID: 0} 910 | m_PrefabInstance: {fileID: 0} 911 | m_PrefabAsset: {fileID: 0} 912 | m_GameObject: {fileID: 153406} 913 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 914 | m_LocalPosition: {x: 0, y: 0, z: 0} 915 | m_LocalScale: {x: 1, y: 1, z: 1} 916 | m_ConstrainProportionsScale: 0 917 | m_Children: 918 | - {fileID: 22453412} 919 | - {fileID: 22453392} 920 | - {fileID: 22453418} 921 | - {fileID: 22453402} 922 | - {fileID: 22453398} 923 | - {fileID: 22498174} 924 | m_Father: {fileID: 22453408} 925 | m_RootOrder: 0 926 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 927 | m_AnchorMin: {x: 0.5, y: 0.5} 928 | m_AnchorMax: {x: 0.5, y: 0.5} 929 | m_AnchoredPosition: {x: -345, y: 256} 930 | m_SizeDelta: {x: 846, y: 528} 931 | m_Pivot: {x: 0, y: 1} 932 | --- !u!222 &22253412 933 | CanvasRenderer: 934 | m_ObjectHideFlags: 0 935 | m_CorrespondingSourceObject: {fileID: 0} 936 | m_PrefabInstance: {fileID: 0} 937 | m_PrefabAsset: {fileID: 0} 938 | m_GameObject: {fileID: 153406} 939 | m_CullTransparentMesh: 1 940 | --- !u!114 &11453402 941 | MonoBehaviour: 942 | m_ObjectHideFlags: 0 943 | m_CorrespondingSourceObject: {fileID: 0} 944 | m_PrefabInstance: {fileID: 0} 945 | m_PrefabAsset: {fileID: 0} 946 | m_GameObject: {fileID: 153406} 947 | m_Enabled: 1 948 | m_EditorHideFlags: 0 949 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 950 | m_Name: 951 | m_EditorClassIdentifier: 952 | m_Material: {fileID: 0} 953 | m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 954 | m_RaycastTarget: 1 955 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 956 | m_Maskable: 1 957 | m_OnCullStateChanged: 958 | m_PersistentCalls: 959 | m_Calls: [] 960 | m_Sprite: {fileID: 0} 961 | m_Type: 1 962 | m_PreserveAspect: 0 963 | m_FillCenter: 1 964 | m_FillMethod: 4 965 | m_FillAmount: 1 966 | m_FillClockwise: 1 967 | m_FillOrigin: 0 968 | m_UseSpriteMesh: 0 969 | m_PixelsPerUnitMultiplier: 1 970 | --- !u!1 &153408 971 | GameObject: 972 | m_ObjectHideFlags: 0 973 | m_CorrespondingSourceObject: {fileID: 0} 974 | m_PrefabInstance: {fileID: 0} 975 | m_PrefabAsset: {fileID: 0} 976 | serializedVersion: 6 977 | m_Component: 978 | - component: {fileID: 22453408} 979 | - component: {fileID: 22340394} 980 | - component: {fileID: 114000011010268352} 981 | - component: {fileID: 11472428} 982 | - component: {fileID: 11453404} 983 | m_Layer: 5 984 | m_Name: Windowed Console 985 | m_TagString: Untagged 986 | m_Icon: {fileID: 0} 987 | m_NavMeshLayer: 0 988 | m_StaticEditorFlags: 0 989 | m_IsActive: 1 990 | --- !u!224 &22453408 991 | RectTransform: 992 | m_ObjectHideFlags: 0 993 | m_CorrespondingSourceObject: {fileID: 0} 994 | m_PrefabInstance: {fileID: 0} 995 | m_PrefabAsset: {fileID: 0} 996 | m_GameObject: {fileID: 153408} 997 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 998 | m_LocalPosition: {x: 0, y: 0, z: 0} 999 | m_LocalScale: {x: 0, y: 0, z: 0} 1000 | m_ConstrainProportionsScale: 0 1001 | m_Children: 1002 | - {fileID: 22453406} 1003 | m_Father: {fileID: 0} 1004 | m_RootOrder: 0 1005 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1006 | m_AnchorMin: {x: 0, y: 0} 1007 | m_AnchorMax: {x: 0, y: 0} 1008 | m_AnchoredPosition: {x: 0, y: 0} 1009 | m_SizeDelta: {x: 0, y: 0} 1010 | m_Pivot: {x: 0, y: 0} 1011 | --- !u!223 &22340394 1012 | Canvas: 1013 | m_ObjectHideFlags: 0 1014 | m_CorrespondingSourceObject: {fileID: 0} 1015 | m_PrefabInstance: {fileID: 0} 1016 | m_PrefabAsset: {fileID: 0} 1017 | m_GameObject: {fileID: 153408} 1018 | m_Enabled: 1 1019 | serializedVersion: 3 1020 | m_RenderMode: 0 1021 | m_Camera: {fileID: 0} 1022 | m_PlaneDistance: 100 1023 | m_PixelPerfect: 1 1024 | m_ReceivesEvents: 1 1025 | m_OverrideSorting: 0 1026 | m_OverridePixelPerfect: 1 1027 | m_SortingBucketNormalizedSize: 0 1028 | m_AdditionalShaderChannelsFlag: 0 1029 | m_SortingLayerID: 0 1030 | m_SortingOrder: 9999 1031 | m_TargetDisplay: 0 1032 | --- !u!114 &114000011010268352 1033 | MonoBehaviour: 1034 | m_ObjectHideFlags: 0 1035 | m_CorrespondingSourceObject: {fileID: 0} 1036 | m_PrefabInstance: {fileID: 0} 1037 | m_PrefabAsset: {fileID: 0} 1038 | m_GameObject: {fileID: 153408} 1039 | m_Enabled: 1 1040 | m_EditorHideFlags: 0 1041 | m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} 1042 | m_Name: 1043 | m_EditorClassIdentifier: 1044 | m_UiScaleMode: 1 1045 | m_ReferencePixelsPerUnit: 100 1046 | m_ScaleFactor: 1 1047 | m_ReferenceResolution: {x: 1024, y: 768} 1048 | m_ScreenMatchMode: 0 1049 | m_MatchWidthOrHeight: 0.5 1050 | m_PhysicalUnit: 3 1051 | m_FallbackScreenDPI: 96 1052 | m_DefaultSpriteDPI: 96 1053 | m_DynamicPixelsPerUnit: 1 1054 | m_PresetInfoIsWorld: 0 1055 | --- !u!114 &11472428 1056 | MonoBehaviour: 1057 | m_ObjectHideFlags: 0 1058 | m_CorrespondingSourceObject: {fileID: 0} 1059 | m_PrefabInstance: {fileID: 0} 1060 | m_PrefabAsset: {fileID: 0} 1061 | m_GameObject: {fileID: 153408} 1062 | m_Enabled: 1 1063 | m_EditorHideFlags: 0 1064 | m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} 1065 | m_Name: 1066 | m_EditorClassIdentifier: 1067 | m_IgnoreReversedGraphics: 1 1068 | m_BlockingObjects: 0 1069 | m_BlockingMask: 1070 | serializedVersion: 2 1071 | m_Bits: 4294967295 1072 | --- !u!114 &11453404 1073 | MonoBehaviour: 1074 | m_ObjectHideFlags: 0 1075 | m_CorrespondingSourceObject: {fileID: 0} 1076 | m_PrefabInstance: {fileID: 0} 1077 | m_PrefabAsset: {fileID: 0} 1078 | m_GameObject: {fileID: 153408} 1079 | m_Enabled: 1 1080 | m_EditorHideFlags: 0 1081 | m_Script: {fileID: 11500000, guid: 2e9e6a485f6c64bae85b8570fb72fcf6, type: 3} 1082 | m_Name: 1083 | m_EditorClassIdentifier: 1084 | console: {fileID: 11400000, guid: a2b6a06c20c47604bb9a436a4a291410, type: 2} 1085 | consoleWindow: {fileID: 153406} 1086 | consoleText: {fileID: 11453412} 1087 | commandInput: {fileID: 11453392} 1088 | --- !u!1 &153410 1089 | GameObject: 1090 | m_ObjectHideFlags: 0 1091 | m_CorrespondingSourceObject: {fileID: 0} 1092 | m_PrefabInstance: {fileID: 0} 1093 | m_PrefabAsset: {fileID: 0} 1094 | serializedVersion: 6 1095 | m_Component: 1096 | - component: {fileID: 22453410} 1097 | - component: {fileID: 22253414} 1098 | - component: {fileID: 11453406} 1099 | m_Layer: 5 1100 | m_Name: Handle 1101 | m_TagString: Untagged 1102 | m_Icon: {fileID: 0} 1103 | m_NavMeshLayer: 0 1104 | m_StaticEditorFlags: 0 1105 | m_IsActive: 1 1106 | --- !u!224 &22453410 1107 | RectTransform: 1108 | m_ObjectHideFlags: 0 1109 | m_CorrespondingSourceObject: {fileID: 0} 1110 | m_PrefabInstance: {fileID: 0} 1111 | m_PrefabAsset: {fileID: 0} 1112 | m_GameObject: {fileID: 153410} 1113 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1114 | m_LocalPosition: {x: 0, y: 0, z: 0} 1115 | m_LocalScale: {x: 1, y: 1, z: 1} 1116 | m_ConstrainProportionsScale: 0 1117 | m_Children: [] 1118 | m_Father: {fileID: 22453390} 1119 | m_RootOrder: 0 1120 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1121 | m_AnchorMin: {x: 0, y: 0} 1122 | m_AnchorMax: {x: 0, y: 0} 1123 | m_AnchoredPosition: {x: 0, y: 0} 1124 | m_SizeDelta: {x: 14, y: 20} 1125 | m_Pivot: {x: 0.5, y: 0.5} 1126 | --- !u!222 &22253414 1127 | CanvasRenderer: 1128 | m_ObjectHideFlags: 0 1129 | m_CorrespondingSourceObject: {fileID: 0} 1130 | m_PrefabInstance: {fileID: 0} 1131 | m_PrefabAsset: {fileID: 0} 1132 | m_GameObject: {fileID: 153410} 1133 | m_CullTransparentMesh: 1 1134 | --- !u!114 &11453406 1135 | MonoBehaviour: 1136 | m_ObjectHideFlags: 0 1137 | m_CorrespondingSourceObject: {fileID: 0} 1138 | m_PrefabInstance: {fileID: 0} 1139 | m_PrefabAsset: {fileID: 0} 1140 | m_GameObject: {fileID: 153410} 1141 | m_Enabled: 1 1142 | m_EditorHideFlags: 0 1143 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 1144 | m_Name: 1145 | m_EditorClassIdentifier: 1146 | m_Material: {fileID: 0} 1147 | m_Color: {r: 0.3962264, g: 0.3962264, b: 0.38688144, a: 1} 1148 | m_RaycastTarget: 1 1149 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 1150 | m_Maskable: 1 1151 | m_OnCullStateChanged: 1152 | m_PersistentCalls: 1153 | m_Calls: [] 1154 | m_Sprite: {fileID: 0} 1155 | m_Type: 0 1156 | m_PreserveAspect: 0 1157 | m_FillCenter: 1 1158 | m_FillMethod: 4 1159 | m_FillAmount: 1 1160 | m_FillClockwise: 1 1161 | m_FillOrigin: 0 1162 | m_UseSpriteMesh: 0 1163 | m_PixelsPerUnitMultiplier: 1 1164 | --- !u!1 &153412 1165 | GameObject: 1166 | m_ObjectHideFlags: 0 1167 | m_CorrespondingSourceObject: {fileID: 0} 1168 | m_PrefabInstance: {fileID: 0} 1169 | m_PrefabAsset: {fileID: 0} 1170 | serializedVersion: 6 1171 | m_Component: 1172 | - component: {fileID: 22453412} 1173 | - component: {fileID: 22253416} 1174 | - component: {fileID: 11453410} 1175 | m_Layer: 5 1176 | m_Name: Close Button 1177 | m_TagString: Untagged 1178 | m_Icon: {fileID: 0} 1179 | m_NavMeshLayer: 0 1180 | m_StaticEditorFlags: 0 1181 | m_IsActive: 1 1182 | --- !u!224 &22453412 1183 | RectTransform: 1184 | m_ObjectHideFlags: 0 1185 | m_CorrespondingSourceObject: {fileID: 0} 1186 | m_PrefabInstance: {fileID: 0} 1187 | m_PrefabAsset: {fileID: 0} 1188 | m_GameObject: {fileID: 153412} 1189 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1190 | m_LocalPosition: {x: 0, y: 0, z: 0} 1191 | m_LocalScale: {x: 1, y: 1, z: 1} 1192 | m_ConstrainProportionsScale: 0 1193 | m_Children: 1194 | - {fileID: 22442354} 1195 | m_Father: {fileID: 22453406} 1196 | m_RootOrder: 0 1197 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1198 | m_AnchorMin: {x: 1, y: 1} 1199 | m_AnchorMax: {x: 1, y: 1} 1200 | m_AnchoredPosition: {x: 0, y: 4} 1201 | m_SizeDelta: {x: 40, y: 40} 1202 | m_Pivot: {x: 1, y: 1} 1203 | --- !u!222 &22253416 1204 | CanvasRenderer: 1205 | m_ObjectHideFlags: 0 1206 | m_CorrespondingSourceObject: {fileID: 0} 1207 | m_PrefabInstance: {fileID: 0} 1208 | m_PrefabAsset: {fileID: 0} 1209 | m_GameObject: {fileID: 153412} 1210 | m_CullTransparentMesh: 1 1211 | --- !u!114 &11453410 1212 | MonoBehaviour: 1213 | m_ObjectHideFlags: 0 1214 | m_CorrespondingSourceObject: {fileID: 0} 1215 | m_PrefabInstance: {fileID: 0} 1216 | m_PrefabAsset: {fileID: 0} 1217 | m_GameObject: {fileID: 153412} 1218 | m_Enabled: 1 1219 | m_EditorHideFlags: 0 1220 | m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} 1221 | m_Name: 1222 | m_EditorClassIdentifier: 1223 | m_Navigation: 1224 | m_Mode: 3 1225 | m_WrapAround: 0 1226 | m_SelectOnUp: {fileID: 0} 1227 | m_SelectOnDown: {fileID: 0} 1228 | m_SelectOnLeft: {fileID: 0} 1229 | m_SelectOnRight: {fileID: 0} 1230 | m_Transition: 1 1231 | m_Colors: 1232 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 1233 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 1234 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 1235 | m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 1236 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 1237 | m_ColorMultiplier: 1 1238 | m_FadeDuration: 0.1 1239 | m_SpriteState: 1240 | m_HighlightedSprite: {fileID: 0} 1241 | m_PressedSprite: {fileID: 0} 1242 | m_SelectedSprite: {fileID: 0} 1243 | m_DisabledSprite: {fileID: 0} 1244 | m_AnimationTriggers: 1245 | m_NormalTrigger: Normal 1246 | m_HighlightedTrigger: Highlighted 1247 | m_PressedTrigger: Pressed 1248 | m_SelectedTrigger: Highlighted 1249 | m_DisabledTrigger: Disabled 1250 | m_Interactable: 1 1251 | m_TargetGraphic: {fileID: 11442356} 1252 | m_OnClick: 1253 | m_PersistentCalls: 1254 | m_Calls: 1255 | - m_Target: {fileID: 153406} 1256 | m_TargetAssemblyTypeName: 1257 | m_MethodName: SetActive 1258 | m_Mode: 6 1259 | m_Arguments: 1260 | m_ObjectArgument: {fileID: 0} 1261 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 1262 | m_IntArgument: 0 1263 | m_FloatArgument: 0 1264 | m_StringArgument: 1265 | m_BoolArgument: 0 1266 | m_CallState: 2 1267 | --- !u!1 &153416 1268 | GameObject: 1269 | m_ObjectHideFlags: 0 1270 | m_CorrespondingSourceObject: {fileID: 0} 1271 | m_PrefabInstance: {fileID: 0} 1272 | m_PrefabAsset: {fileID: 0} 1273 | serializedVersion: 6 1274 | m_Component: 1275 | - component: {fileID: 22453416} 1276 | - component: {fileID: 22253418} 1277 | - component: {fileID: 11453412} 1278 | - component: {fileID: 11453414} 1279 | m_Layer: 5 1280 | m_Name: Text 1281 | m_TagString: Untagged 1282 | m_Icon: {fileID: 0} 1283 | m_NavMeshLayer: 0 1284 | m_StaticEditorFlags: 0 1285 | m_IsActive: 1 1286 | --- !u!224 &22453416 1287 | RectTransform: 1288 | m_ObjectHideFlags: 0 1289 | m_CorrespondingSourceObject: {fileID: 0} 1290 | m_PrefabInstance: {fileID: 0} 1291 | m_PrefabAsset: {fileID: 0} 1292 | m_GameObject: {fileID: 153416} 1293 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1294 | m_LocalPosition: {x: 0, y: 0, z: 0} 1295 | m_LocalScale: {x: 1, y: 1, z: 1} 1296 | m_ConstrainProportionsScale: 0 1297 | m_Children: [] 1298 | m_Father: {fileID: 22453404} 1299 | m_RootOrder: 0 1300 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1301 | m_AnchorMin: {x: 0, y: 0} 1302 | m_AnchorMax: {x: 1, y: 1} 1303 | m_AnchoredPosition: {x: 0, y: 0} 1304 | m_SizeDelta: {x: 0, y: 0} 1305 | m_Pivot: {x: 0, y: 0} 1306 | --- !u!222 &22253418 1307 | CanvasRenderer: 1308 | m_ObjectHideFlags: 0 1309 | m_CorrespondingSourceObject: {fileID: 0} 1310 | m_PrefabInstance: {fileID: 0} 1311 | m_PrefabAsset: {fileID: 0} 1312 | m_GameObject: {fileID: 153416} 1313 | m_CullTransparentMesh: 1 1314 | --- !u!114 &11453412 1315 | MonoBehaviour: 1316 | m_ObjectHideFlags: 0 1317 | m_CorrespondingSourceObject: {fileID: 0} 1318 | m_PrefabInstance: {fileID: 0} 1319 | m_PrefabAsset: {fileID: 0} 1320 | m_GameObject: {fileID: 153416} 1321 | m_Enabled: 1 1322 | m_EditorHideFlags: 0 1323 | m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} 1324 | m_Name: 1325 | m_EditorClassIdentifier: 1326 | m_Material: {fileID: 0} 1327 | m_Color: {r: 0.9411765, g: 0.9411765, b: 0.9411765, a: 1} 1328 | m_RaycastTarget: 1 1329 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 1330 | m_Maskable: 1 1331 | m_OnCullStateChanged: 1332 | m_PersistentCalls: 1333 | m_Calls: [] 1334 | m_FontData: 1335 | m_Font: {fileID: 12800000, guid: 52fbb1602eac45b488f6a1789eba5a4e, type: 3} 1336 | m_FontSize: 14 1337 | m_FontStyle: 0 1338 | m_BestFit: 0 1339 | m_MinSize: 10 1340 | m_MaxSize: 40 1341 | m_Alignment: 6 1342 | m_AlignByGeometry: 0 1343 | m_RichText: 1 1344 | m_HorizontalOverflow: 0 1345 | m_VerticalOverflow: 1 1346 | m_LineSpacing: 0.9 1347 | m_Text: " _ _ __ ___ __ _ _ \n /' \\/' \\ 1348 | /\\ \\__ __ /\\_ \\ /\\ \\ /' \\/' \\ \n/\\_/\\__// \\ \\ ,_\\/\\_\\\\//\\ 1349 | \\ \\_\\ \\ __ /\\_/\\__// \n\\//\\/__/ \\ \\ \\/\\/\\ \\ \\ \\ \\ 1350 | /'_` \\ /'__`\\//\\/__/ \n \\ \\ \\_\\ \\ \\ \\_\\ \\_/\\ \\/\\ 1351 | \\/\\ __/ \n \\ \\__\\\\ \\_\\/\\____\\ \\___,_\\ \\____\\ 1352 | \n \\/__/ \\/_/\\/____/\\/__,_ /\\/____/ \n 1353 | \n " 1354 | --- !u!114 &11453414 1355 | MonoBehaviour: 1356 | m_ObjectHideFlags: 0 1357 | m_CorrespondingSourceObject: {fileID: 0} 1358 | m_PrefabInstance: {fileID: 0} 1359 | m_PrefabAsset: {fileID: 0} 1360 | m_GameObject: {fileID: 153416} 1361 | m_Enabled: 1 1362 | m_EditorHideFlags: 0 1363 | m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} 1364 | m_Name: 1365 | m_EditorClassIdentifier: 1366 | m_HorizontalFit: 0 1367 | m_VerticalFit: 2 1368 | --- !u!1 &153418 1369 | GameObject: 1370 | m_ObjectHideFlags: 0 1371 | m_CorrespondingSourceObject: {fileID: 0} 1372 | m_PrefabInstance: {fileID: 0} 1373 | m_PrefabAsset: {fileID: 0} 1374 | serializedVersion: 6 1375 | m_Component: 1376 | - component: {fileID: 22453418} 1377 | - component: {fileID: 11453418} 1378 | - component: {fileID: 22253420} 1379 | - component: {fileID: 11453416} 1380 | m_Layer: 5 1381 | m_Name: Drag Region 1382 | m_TagString: Untagged 1383 | m_Icon: {fileID: 0} 1384 | m_NavMeshLayer: 0 1385 | m_StaticEditorFlags: 0 1386 | m_IsActive: 1 1387 | --- !u!224 &22453418 1388 | RectTransform: 1389 | m_ObjectHideFlags: 0 1390 | m_CorrespondingSourceObject: {fileID: 0} 1391 | m_PrefabInstance: {fileID: 0} 1392 | m_PrefabAsset: {fileID: 0} 1393 | m_GameObject: {fileID: 153418} 1394 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1395 | m_LocalPosition: {x: 0, y: 0, z: 0} 1396 | m_LocalScale: {x: 1, y: 1, z: 1} 1397 | m_ConstrainProportionsScale: 0 1398 | m_Children: [] 1399 | m_Father: {fileID: 22453406} 1400 | m_RootOrder: 2 1401 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1402 | m_AnchorMin: {x: 0, y: 1} 1403 | m_AnchorMax: {x: 1, y: 1} 1404 | m_AnchoredPosition: {x: -20, y: 0} 1405 | m_SizeDelta: {x: -40, y: 30} 1406 | m_Pivot: {x: 0.5, y: 1} 1407 | --- !u!114 &11453418 1408 | MonoBehaviour: 1409 | m_ObjectHideFlags: 0 1410 | m_CorrespondingSourceObject: {fileID: 0} 1411 | m_PrefabInstance: {fileID: 0} 1412 | m_PrefabAsset: {fileID: 0} 1413 | m_GameObject: {fileID: 153418} 1414 | m_Enabled: 1 1415 | m_EditorHideFlags: 0 1416 | m_Script: {fileID: 11500000, guid: 752a966ed8bfb4e65be6d7ca04f3fb5a, type: 3} 1417 | m_Name: 1418 | m_EditorClassIdentifier: 1419 | panelRectTransform: {fileID: 22453406} 1420 | --- !u!222 &22253420 1421 | CanvasRenderer: 1422 | m_ObjectHideFlags: 0 1423 | m_CorrespondingSourceObject: {fileID: 0} 1424 | m_PrefabInstance: {fileID: 0} 1425 | m_PrefabAsset: {fileID: 0} 1426 | m_GameObject: {fileID: 153418} 1427 | m_CullTransparentMesh: 1 1428 | --- !u!114 &11453416 1429 | MonoBehaviour: 1430 | m_ObjectHideFlags: 0 1431 | m_CorrespondingSourceObject: {fileID: 0} 1432 | m_PrefabInstance: {fileID: 0} 1433 | m_PrefabAsset: {fileID: 0} 1434 | m_GameObject: {fileID: 153418} 1435 | m_Enabled: 1 1436 | m_EditorHideFlags: 0 1437 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 1438 | m_Name: 1439 | m_EditorClassIdentifier: 1440 | m_Material: {fileID: 0} 1441 | m_Color: {r: 1, g: 1, b: 1, a: 0} 1442 | m_RaycastTarget: 1 1443 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 1444 | m_Maskable: 1 1445 | m_OnCullStateChanged: 1446 | m_PersistentCalls: 1447 | m_Calls: [] 1448 | m_Sprite: {fileID: 21300000, guid: 7ec4c6b1aadd5fc49b8a9478d037f352, type: 3} 1449 | m_Type: 0 1450 | m_PreserveAspect: 0 1451 | m_FillCenter: 1 1452 | m_FillMethod: 4 1453 | m_FillAmount: 1 1454 | m_FillClockwise: 1 1455 | m_FillOrigin: 0 1456 | m_UseSpriteMesh: 0 1457 | m_PixelsPerUnitMultiplier: 1 1458 | --- !u!1 &153420 1459 | GameObject: 1460 | m_ObjectHideFlags: 0 1461 | m_CorrespondingSourceObject: {fileID: 0} 1462 | m_PrefabInstance: {fileID: 0} 1463 | m_PrefabAsset: {fileID: 0} 1464 | serializedVersion: 6 1465 | m_Component: 1466 | - component: {fileID: 22453420} 1467 | - component: {fileID: 22253422} 1468 | - component: {fileID: 11453420} 1469 | m_Layer: 5 1470 | m_Name: Text 1471 | m_TagString: Untagged 1472 | m_Icon: {fileID: 0} 1473 | m_NavMeshLayer: 0 1474 | m_StaticEditorFlags: 0 1475 | m_IsActive: 1 1476 | --- !u!224 &22453420 1477 | RectTransform: 1478 | m_ObjectHideFlags: 0 1479 | m_CorrespondingSourceObject: {fileID: 0} 1480 | m_PrefabInstance: {fileID: 0} 1481 | m_PrefabAsset: {fileID: 0} 1482 | m_GameObject: {fileID: 153420} 1483 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1484 | m_LocalPosition: {x: 0, y: 0, z: 0} 1485 | m_LocalScale: {x: 1, y: 1, z: 1} 1486 | m_ConstrainProportionsScale: 0 1487 | m_Children: [] 1488 | m_Father: {fileID: 22453398} 1489 | m_RootOrder: 1 1490 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1491 | m_AnchorMin: {x: 0, y: 0} 1492 | m_AnchorMax: {x: 1, y: 1} 1493 | m_AnchoredPosition: {x: 3.5, y: 0} 1494 | m_SizeDelta: {x: -7, y: 0} 1495 | m_Pivot: {x: 0.5, y: 0.5} 1496 | --- !u!222 &22253422 1497 | CanvasRenderer: 1498 | m_ObjectHideFlags: 0 1499 | m_CorrespondingSourceObject: {fileID: 0} 1500 | m_PrefabInstance: {fileID: 0} 1501 | m_PrefabAsset: {fileID: 0} 1502 | m_GameObject: {fileID: 153420} 1503 | m_CullTransparentMesh: 1 1504 | --- !u!114 &11453420 1505 | MonoBehaviour: 1506 | m_ObjectHideFlags: 0 1507 | m_CorrespondingSourceObject: {fileID: 0} 1508 | m_PrefabInstance: {fileID: 0} 1509 | m_PrefabAsset: {fileID: 0} 1510 | m_GameObject: {fileID: 153420} 1511 | m_Enabled: 1 1512 | m_EditorHideFlags: 0 1513 | m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} 1514 | m_Name: 1515 | m_EditorClassIdentifier: 1516 | m_Material: {fileID: 0} 1517 | m_Color: {r: 1, g: 1, b: 1, a: 1} 1518 | m_RaycastTarget: 1 1519 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 1520 | m_Maskable: 1 1521 | m_OnCullStateChanged: 1522 | m_PersistentCalls: 1523 | m_Calls: [] 1524 | m_FontData: 1525 | m_Font: {fileID: 12800000, guid: 52fbb1602eac45b488f6a1789eba5a4e, type: 3} 1526 | m_FontSize: 14 1527 | m_FontStyle: 0 1528 | m_BestFit: 0 1529 | m_MinSize: 10 1530 | m_MaxSize: 40 1531 | m_Alignment: 3 1532 | m_AlignByGeometry: 0 1533 | m_RichText: 0 1534 | m_HorizontalOverflow: 0 1535 | m_VerticalOverflow: 0 1536 | m_LineSpacing: 1 1537 | m_Text: 1538 | -------------------------------------------------------------------------------- /Samples~/Demo/Tilde Example.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | OcclusionCullingSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_OcclusionBakeSettings: 8 | smallestOccluder: 5 9 | smallestHole: 0.25 10 | backfaceThreshold: 100 11 | m_SceneGUID: 00000000000000000000000000000000 12 | m_OcclusionCullingData: {fileID: 0} 13 | --- !u!104 &2 14 | RenderSettings: 15 | m_ObjectHideFlags: 0 16 | serializedVersion: 9 17 | m_Fog: 0 18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} 19 | m_FogMode: 3 20 | m_FogDensity: 0.01 21 | m_LinearFogStart: 0 22 | m_LinearFogEnd: 300 23 | m_AmbientSkyColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} 24 | m_AmbientEquatorColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} 25 | m_AmbientGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} 26 | m_AmbientIntensity: 1 27 | m_AmbientMode: 3 28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} 29 | m_SkyboxMaterial: {fileID: 0} 30 | m_HaloStrength: 0.5 31 | m_FlareStrength: 1 32 | m_FlareFadeSpeed: 3 33 | m_HaloTexture: {fileID: 0} 34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} 35 | m_DefaultReflectionMode: 0 36 | m_DefaultReflectionResolution: 128 37 | m_ReflectionBounces: 1 38 | m_ReflectionIntensity: 1 39 | m_CustomReflection: {fileID: 0} 40 | m_Sun: {fileID: 0} 41 | m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} 42 | m_UseRadianceAmbientProbe: 0 43 | --- !u!157 &4 44 | LightmapSettings: 45 | m_ObjectHideFlags: 0 46 | serializedVersion: 12 47 | m_GIWorkflowMode: 1 48 | m_GISettings: 49 | serializedVersion: 2 50 | m_BounceScale: 1 51 | m_IndirectOutputScale: 1 52 | m_AlbedoBoost: 1 53 | m_EnvironmentLightingMode: 0 54 | m_EnableBakedLightmaps: 1 55 | m_EnableRealtimeLightmaps: 0 56 | m_LightmapEditorSettings: 57 | serializedVersion: 12 58 | m_Resolution: 1 59 | m_BakeResolution: 50 60 | m_AtlasSize: 1024 61 | m_AO: 0 62 | m_AOMaxDistance: 1 63 | m_CompAOExponent: 0 64 | m_CompAOExponentDirect: 0 65 | m_ExtractAmbientOcclusion: 0 66 | m_Padding: 2 67 | m_LightmapParameters: {fileID: 0} 68 | m_LightmapsBakeMode: 1 69 | m_TextureCompression: 0 70 | m_FinalGather: 0 71 | m_FinalGatherFiltering: 1 72 | m_FinalGatherRayCount: 1024 73 | m_ReflectionCompression: 2 74 | m_MixedBakeMode: 1 75 | m_BakeBackend: 0 76 | m_PVRSampling: 1 77 | m_PVRDirectSampleCount: 32 78 | m_PVRSampleCount: 500 79 | m_PVRBounces: 2 80 | m_PVREnvironmentSampleCount: 500 81 | m_PVREnvironmentReferencePointCount: 2048 82 | m_PVRFilteringMode: 2 83 | m_PVRDenoiserTypeDirect: 0 84 | m_PVRDenoiserTypeIndirect: 0 85 | m_PVRDenoiserTypeAO: 0 86 | m_PVRFilterTypeDirect: 0 87 | m_PVRFilterTypeIndirect: 0 88 | m_PVRFilterTypeAO: 0 89 | m_PVREnvironmentMIS: 0 90 | m_PVRCulling: 1 91 | m_PVRFilteringGaussRadiusDirect: 1 92 | m_PVRFilteringGaussRadiusIndirect: 5 93 | m_PVRFilteringGaussRadiusAO: 2 94 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 95 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 96 | m_PVRFilteringAtrousPositionSigmaAO: 1 97 | m_ExportTrainingData: 0 98 | m_TrainingDataDestination: TrainingData 99 | m_LightProbeSampleCountMultiplier: 4 100 | m_LightingDataAsset: {fileID: 0} 101 | m_LightingSettings: {fileID: 1047309517} 102 | --- !u!196 &5 103 | NavMeshSettings: 104 | serializedVersion: 2 105 | m_ObjectHideFlags: 0 106 | m_BuildSettings: 107 | serializedVersion: 2 108 | agentTypeID: 0 109 | agentRadius: 0.5 110 | agentHeight: 2 111 | agentSlope: 45 112 | agentClimb: 0.4 113 | ledgeDropHeight: 0 114 | maxJumpAcrossDistance: 0 115 | minRegionArea: 2 116 | manualCellSize: 0 117 | cellSize: 0.16666666 118 | manualTileSize: 0 119 | tileSize: 256 120 | accuratePlacement: 0 121 | maxJobWorkers: 0 122 | preserveTilesOutsideBounds: 0 123 | debug: 124 | m_Flags: 0 125 | m_NavMeshData: {fileID: 0} 126 | --- !u!1 &92346050 127 | GameObject: 128 | m_ObjectHideFlags: 0 129 | m_CorrespondingSourceObject: {fileID: 0} 130 | m_PrefabInstance: {fileID: 0} 131 | m_PrefabAsset: {fileID: 0} 132 | serializedVersion: 6 133 | m_Component: 134 | - component: {fileID: 92346054} 135 | - component: {fileID: 92346053} 136 | - component: {fileID: 92346052} 137 | m_Layer: 0 138 | m_Name: EventSystem 139 | m_TagString: Untagged 140 | m_Icon: {fileID: 0} 141 | m_NavMeshLayer: 0 142 | m_StaticEditorFlags: 0 143 | m_IsActive: 1 144 | --- !u!114 &92346052 145 | MonoBehaviour: 146 | m_ObjectHideFlags: 0 147 | m_CorrespondingSourceObject: {fileID: 0} 148 | m_PrefabInstance: {fileID: 0} 149 | m_PrefabAsset: {fileID: 0} 150 | m_GameObject: {fileID: 92346050} 151 | m_Enabled: 1 152 | m_EditorHideFlags: 0 153 | m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} 154 | m_Name: 155 | m_EditorClassIdentifier: 156 | m_HorizontalAxis: Horizontal 157 | m_VerticalAxis: Vertical 158 | m_SubmitButton: Submit 159 | m_CancelButton: Cancel 160 | m_InputActionsPerSecond: 10 161 | m_RepeatDelay: 0.5 162 | m_ForceModuleActive: 0 163 | --- !u!114 &92346053 164 | MonoBehaviour: 165 | m_ObjectHideFlags: 0 166 | m_CorrespondingSourceObject: {fileID: 0} 167 | m_PrefabInstance: {fileID: 0} 168 | m_PrefabAsset: {fileID: 0} 169 | m_GameObject: {fileID: 92346050} 170 | m_Enabled: 1 171 | m_EditorHideFlags: 0 172 | m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} 173 | m_Name: 174 | m_EditorClassIdentifier: 175 | m_FirstSelected: {fileID: 0} 176 | m_sendNavigationEvents: 1 177 | m_DragThreshold: 5 178 | --- !u!4 &92346054 179 | Transform: 180 | m_ObjectHideFlags: 0 181 | m_CorrespondingSourceObject: {fileID: 0} 182 | m_PrefabInstance: {fileID: 0} 183 | m_PrefabAsset: {fileID: 0} 184 | m_GameObject: {fileID: 92346050} 185 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 186 | m_LocalPosition: {x: 0, y: 0, z: 0} 187 | m_LocalScale: {x: 1, y: 1, z: 1} 188 | m_ConstrainProportionsScale: 0 189 | m_Children: [] 190 | m_Father: {fileID: 0} 191 | m_RootOrder: 1 192 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 193 | --- !u!114 &286234167 stripped 194 | MonoBehaviour: 195 | m_CorrespondingSourceObject: {fileID: 5554939547148895918, guid: 9ece047c6761c45b3a368c2589f10aa6, 196 | type: 3} 197 | m_PrefabInstance: {fileID: 5554939546897731737} 198 | m_PrefabAsset: {fileID: 0} 199 | m_GameObject: {fileID: 0} 200 | m_Enabled: 1 201 | m_EditorHideFlags: 0 202 | m_Script: {fileID: 11500000, guid: 2eb62627c72204743941947f60534808, type: 3} 203 | m_Name: 204 | m_EditorClassIdentifier: 205 | --- !u!1 &286722189 206 | GameObject: 207 | m_ObjectHideFlags: 0 208 | m_CorrespondingSourceObject: {fileID: 0} 209 | m_PrefabInstance: {fileID: 0} 210 | m_PrefabAsset: {fileID: 0} 211 | serializedVersion: 6 212 | m_Component: 213 | - component: {fileID: 286722190} 214 | - component: {fileID: 286722192} 215 | - component: {fileID: 286722191} 216 | m_Layer: 5 217 | m_Name: Label 218 | m_TagString: Untagged 219 | m_Icon: {fileID: 0} 220 | m_NavMeshLayer: 0 221 | m_StaticEditorFlags: 0 222 | m_IsActive: 1 223 | --- !u!224 &286722190 224 | RectTransform: 225 | m_ObjectHideFlags: 0 226 | m_CorrespondingSourceObject: {fileID: 0} 227 | m_PrefabInstance: {fileID: 0} 228 | m_PrefabAsset: {fileID: 0} 229 | m_GameObject: {fileID: 286722189} 230 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 231 | m_LocalPosition: {x: 0, y: 0, z: 0} 232 | m_LocalScale: {x: 1, y: 1, z: 1} 233 | m_ConstrainProportionsScale: 0 234 | m_Children: [] 235 | m_Father: {fileID: 642003165} 236 | m_RootOrder: 1 237 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 238 | m_AnchorMin: {x: 0, y: 0} 239 | m_AnchorMax: {x: 1, y: 1} 240 | m_AnchoredPosition: {x: 24, y: 0} 241 | m_SizeDelta: {x: -59, y: -3} 242 | m_Pivot: {x: 0.5, y: 0.5} 243 | --- !u!114 &286722191 244 | MonoBehaviour: 245 | m_ObjectHideFlags: 0 246 | m_CorrespondingSourceObject: {fileID: 0} 247 | m_PrefabInstance: {fileID: 0} 248 | m_PrefabAsset: {fileID: 0} 249 | m_GameObject: {fileID: 286722189} 250 | m_Enabled: 1 251 | m_EditorHideFlags: 0 252 | m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} 253 | m_Name: 254 | m_EditorClassIdentifier: 255 | m_Material: {fileID: 0} 256 | m_Color: {r: 1, g: 1, b: 1, a: 1} 257 | m_RaycastTarget: 1 258 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 259 | m_Maskable: 1 260 | m_OnCullStateChanged: 261 | m_PersistentCalls: 262 | m_Calls: [] 263 | m_FontData: 264 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 265 | m_FontSize: 36 266 | m_FontStyle: 0 267 | m_BestFit: 0 268 | m_MinSize: 10 269 | m_MaxSize: 40 270 | m_Alignment: 3 271 | m_AlignByGeometry: 0 272 | m_RichText: 1 273 | m_HorizontalOverflow: 0 274 | m_VerticalOverflow: 0 275 | m_LineSpacing: 1 276 | m_Text: Windowed Console 277 | --- !u!222 &286722192 278 | CanvasRenderer: 279 | m_ObjectHideFlags: 0 280 | m_CorrespondingSourceObject: {fileID: 0} 281 | m_PrefabInstance: {fileID: 0} 282 | m_PrefabAsset: {fileID: 0} 283 | m_GameObject: {fileID: 286722189} 284 | m_CullTransparentMesh: 1 285 | --- !u!1 &412007546 286 | GameObject: 287 | m_ObjectHideFlags: 0 288 | m_CorrespondingSourceObject: {fileID: 0} 289 | m_PrefabInstance: {fileID: 0} 290 | m_PrefabAsset: {fileID: 0} 291 | serializedVersion: 6 292 | m_Component: 293 | - component: {fileID: 412007547} 294 | - component: {fileID: 412007549} 295 | - component: {fileID: 412007548} 296 | m_Layer: 5 297 | m_Name: Checkmark 298 | m_TagString: Untagged 299 | m_Icon: {fileID: 0} 300 | m_NavMeshLayer: 0 301 | m_StaticEditorFlags: 0 302 | m_IsActive: 1 303 | --- !u!224 &412007547 304 | RectTransform: 305 | m_ObjectHideFlags: 0 306 | m_CorrespondingSourceObject: {fileID: 0} 307 | m_PrefabInstance: {fileID: 0} 308 | m_PrefabAsset: {fileID: 0} 309 | m_GameObject: {fileID: 412007546} 310 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 311 | m_LocalPosition: {x: 0, y: 0, z: 0} 312 | m_LocalScale: {x: 1, y: 1, z: 1} 313 | m_ConstrainProportionsScale: 0 314 | m_Children: [] 315 | m_Father: {fileID: 1318610011} 316 | m_RootOrder: 0 317 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 318 | m_AnchorMin: {x: 0.5, y: 0.5} 319 | m_AnchorMax: {x: 0.5, y: 0.5} 320 | m_AnchoredPosition: {x: 0, y: 0} 321 | m_SizeDelta: {x: 40, y: 40} 322 | m_Pivot: {x: 0.5, y: 0.5} 323 | --- !u!114 &412007548 324 | MonoBehaviour: 325 | m_ObjectHideFlags: 0 326 | m_CorrespondingSourceObject: {fileID: 0} 327 | m_PrefabInstance: {fileID: 0} 328 | m_PrefabAsset: {fileID: 0} 329 | m_GameObject: {fileID: 412007546} 330 | m_Enabled: 1 331 | m_EditorHideFlags: 0 332 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 333 | m_Name: 334 | m_EditorClassIdentifier: 335 | m_Material: {fileID: 0} 336 | m_Color: {r: 1, g: 1, b: 1, a: 1} 337 | m_RaycastTarget: 1 338 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 339 | m_Maskable: 1 340 | m_OnCullStateChanged: 341 | m_PersistentCalls: 342 | m_Calls: [] 343 | m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} 344 | m_Type: 0 345 | m_PreserveAspect: 0 346 | m_FillCenter: 1 347 | m_FillMethod: 4 348 | m_FillAmount: 1 349 | m_FillClockwise: 1 350 | m_FillOrigin: 0 351 | m_UseSpriteMesh: 0 352 | m_PixelsPerUnitMultiplier: 1 353 | --- !u!222 &412007549 354 | CanvasRenderer: 355 | m_ObjectHideFlags: 0 356 | m_CorrespondingSourceObject: {fileID: 0} 357 | m_PrefabInstance: {fileID: 0} 358 | m_PrefabAsset: {fileID: 0} 359 | m_GameObject: {fileID: 412007546} 360 | m_CullTransparentMesh: 1 361 | --- !u!1 &483760531 362 | GameObject: 363 | m_ObjectHideFlags: 0 364 | m_CorrespondingSourceObject: {fileID: 0} 365 | m_PrefabInstance: {fileID: 0} 366 | m_PrefabAsset: {fileID: 0} 367 | serializedVersion: 6 368 | m_Component: 369 | - component: {fileID: 483760536} 370 | - component: {fileID: 483760535} 371 | - component: {fileID: 483760533} 372 | - component: {fileID: 483760532} 373 | m_Layer: 0 374 | m_Name: Main Camera 375 | m_TagString: MainCamera 376 | m_Icon: {fileID: 0} 377 | m_NavMeshLayer: 0 378 | m_StaticEditorFlags: 0 379 | m_IsActive: 1 380 | --- !u!81 &483760532 381 | AudioListener: 382 | m_ObjectHideFlags: 0 383 | m_CorrespondingSourceObject: {fileID: 0} 384 | m_PrefabInstance: {fileID: 0} 385 | m_PrefabAsset: {fileID: 0} 386 | m_GameObject: {fileID: 483760531} 387 | m_Enabled: 1 388 | --- !u!124 &483760533 389 | Behaviour: 390 | m_ObjectHideFlags: 0 391 | m_CorrespondingSourceObject: {fileID: 0} 392 | m_PrefabInstance: {fileID: 0} 393 | m_PrefabAsset: {fileID: 0} 394 | m_GameObject: {fileID: 483760531} 395 | m_Enabled: 1 396 | --- !u!20 &483760535 397 | Camera: 398 | m_ObjectHideFlags: 0 399 | m_CorrespondingSourceObject: {fileID: 0} 400 | m_PrefabInstance: {fileID: 0} 401 | m_PrefabAsset: {fileID: 0} 402 | m_GameObject: {fileID: 483760531} 403 | m_Enabled: 1 404 | serializedVersion: 2 405 | m_ClearFlags: 1 406 | m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1} 407 | m_projectionMatrixMode: 1 408 | m_GateFitMode: 2 409 | m_FOVAxisMode: 0 410 | m_SensorSize: {x: 36, y: 24} 411 | m_LensShift: {x: 0, y: 0} 412 | m_FocalLength: 50 413 | m_NormalizedViewPortRect: 414 | serializedVersion: 2 415 | x: 0 416 | y: 0 417 | width: 1 418 | height: 1 419 | near clip plane: 0.3 420 | far clip plane: 1000 421 | field of view: 60 422 | orthographic: 0 423 | orthographic size: 5 424 | m_Depth: -1 425 | m_CullingMask: 426 | serializedVersion: 2 427 | m_Bits: 4294967295 428 | m_RenderingPath: -1 429 | m_TargetTexture: {fileID: 0} 430 | m_TargetDisplay: 0 431 | m_TargetEye: 3 432 | m_HDR: 0 433 | m_AllowMSAA: 0 434 | m_AllowDynamicResolution: 0 435 | m_ForceIntoRT: 0 436 | m_OcclusionCulling: 1 437 | m_StereoConvergence: 10 438 | m_StereoSeparation: 0.022 439 | --- !u!4 &483760536 440 | Transform: 441 | m_ObjectHideFlags: 0 442 | m_CorrespondingSourceObject: {fileID: 0} 443 | m_PrefabInstance: {fileID: 0} 444 | m_PrefabAsset: {fileID: 0} 445 | m_GameObject: {fileID: 483760531} 446 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 447 | m_LocalPosition: {x: 0, y: 1, z: -10} 448 | m_LocalScale: {x: 1, y: 1, z: 1} 449 | m_ConstrainProportionsScale: 0 450 | m_Children: [] 451 | m_Father: {fileID: 0} 452 | m_RootOrder: 0 453 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 454 | --- !u!1 &642003164 455 | GameObject: 456 | m_ObjectHideFlags: 0 457 | m_CorrespondingSourceObject: {fileID: 0} 458 | m_PrefabInstance: {fileID: 0} 459 | m_PrefabAsset: {fileID: 0} 460 | serializedVersion: 6 461 | m_Component: 462 | - component: {fileID: 642003165} 463 | - component: {fileID: 642003166} 464 | m_Layer: 5 465 | m_Name: Toggle 1 466 | m_TagString: Untagged 467 | m_Icon: {fileID: 0} 468 | m_NavMeshLayer: 0 469 | m_StaticEditorFlags: 0 470 | m_IsActive: 1 471 | --- !u!224 &642003165 472 | RectTransform: 473 | m_ObjectHideFlags: 0 474 | m_CorrespondingSourceObject: {fileID: 0} 475 | m_PrefabInstance: {fileID: 0} 476 | m_PrefabAsset: {fileID: 0} 477 | m_GameObject: {fileID: 642003164} 478 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 479 | m_LocalPosition: {x: 0, y: 0, z: 0} 480 | m_LocalScale: {x: 1, y: 1, z: 1} 481 | m_ConstrainProportionsScale: 0 482 | m_Children: 483 | - {fileID: 1489588249} 484 | - {fileID: 286722190} 485 | m_Father: {fileID: 962441909} 486 | m_RootOrder: 2 487 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 488 | m_AnchorMin: {x: 0.5, y: 0.5} 489 | m_AnchorMax: {x: 0.5, y: 0.5} 490 | m_AnchoredPosition: {x: 0, y: -117} 491 | m_SizeDelta: {x: 498, y: 52} 492 | m_Pivot: {x: 0.5, y: 0.5} 493 | --- !u!114 &642003166 494 | MonoBehaviour: 495 | m_ObjectHideFlags: 0 496 | m_CorrespondingSourceObject: {fileID: 0} 497 | m_PrefabInstance: {fileID: 0} 498 | m_PrefabAsset: {fileID: 0} 499 | m_GameObject: {fileID: 642003164} 500 | m_Enabled: 1 501 | m_EditorHideFlags: 0 502 | m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} 503 | m_Name: 504 | m_EditorClassIdentifier: 505 | m_Navigation: 506 | m_Mode: 3 507 | m_WrapAround: 0 508 | m_SelectOnUp: {fileID: 0} 509 | m_SelectOnDown: {fileID: 0} 510 | m_SelectOnLeft: {fileID: 0} 511 | m_SelectOnRight: {fileID: 0} 512 | m_Transition: 1 513 | m_Colors: 514 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 515 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 516 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 517 | m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 518 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 519 | m_ColorMultiplier: 1 520 | m_FadeDuration: 0.1 521 | m_SpriteState: 522 | m_HighlightedSprite: {fileID: 0} 523 | m_PressedSprite: {fileID: 0} 524 | m_SelectedSprite: {fileID: 0} 525 | m_DisabledSprite: {fileID: 0} 526 | m_AnimationTriggers: 527 | m_NormalTrigger: Normal 528 | m_HighlightedTrigger: Highlighted 529 | m_PressedTrigger: Pressed 530 | m_SelectedTrigger: Highlighted 531 | m_DisabledTrigger: Disabled 532 | m_Interactable: 1 533 | m_TargetGraphic: {fileID: 1489588250} 534 | toggleTransition: 1 535 | graphic: {fileID: 664584402} 536 | m_Group: {fileID: 1662333883} 537 | onValueChanged: 538 | m_PersistentCalls: 539 | m_Calls: 540 | - m_Target: {fileID: 1505077688} 541 | m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine 542 | m_MethodName: SetActive 543 | m_Mode: 0 544 | m_Arguments: 545 | m_ObjectArgument: {fileID: 0} 546 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 547 | m_IntArgument: 0 548 | m_FloatArgument: 0 549 | m_StringArgument: 550 | m_BoolArgument: 0 551 | m_CallState: 2 552 | m_IsOn: 0 553 | --- !u!1 &656697709 554 | GameObject: 555 | m_ObjectHideFlags: 0 556 | m_CorrespondingSourceObject: {fileID: 0} 557 | m_PrefabInstance: {fileID: 0} 558 | m_PrefabAsset: {fileID: 0} 559 | serializedVersion: 6 560 | m_Component: 561 | - component: {fileID: 656697710} 562 | - component: {fileID: 656697712} 563 | - component: {fileID: 656697711} 564 | m_Layer: 5 565 | m_Name: Label 566 | m_TagString: Untagged 567 | m_Icon: {fileID: 0} 568 | m_NavMeshLayer: 0 569 | m_StaticEditorFlags: 0 570 | m_IsActive: 1 571 | --- !u!224 &656697710 572 | RectTransform: 573 | m_ObjectHideFlags: 0 574 | m_CorrespondingSourceObject: {fileID: 0} 575 | m_PrefabInstance: {fileID: 0} 576 | m_PrefabAsset: {fileID: 0} 577 | m_GameObject: {fileID: 656697709} 578 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 579 | m_LocalPosition: {x: 0, y: 0, z: 0} 580 | m_LocalScale: {x: 1, y: 1, z: 1} 581 | m_ConstrainProportionsScale: 0 582 | m_Children: [] 583 | m_Father: {fileID: 1662333881} 584 | m_RootOrder: 1 585 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 586 | m_AnchorMin: {x: 0, y: 0} 587 | m_AnchorMax: {x: 1, y: 1} 588 | m_AnchoredPosition: {x: 24, y: 0} 589 | m_SizeDelta: {x: -59, y: -3} 590 | m_Pivot: {x: 0.5, y: 0.5} 591 | --- !u!114 &656697711 592 | MonoBehaviour: 593 | m_ObjectHideFlags: 0 594 | m_CorrespondingSourceObject: {fileID: 0} 595 | m_PrefabInstance: {fileID: 0} 596 | m_PrefabAsset: {fileID: 0} 597 | m_GameObject: {fileID: 656697709} 598 | m_Enabled: 1 599 | m_EditorHideFlags: 0 600 | m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} 601 | m_Name: 602 | m_EditorClassIdentifier: 603 | m_Material: {fileID: 0} 604 | m_Color: {r: 1, g: 1, b: 1, a: 1} 605 | m_RaycastTarget: 1 606 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 607 | m_Maskable: 1 608 | m_OnCullStateChanged: 609 | m_PersistentCalls: 610 | m_Calls: [] 611 | m_FontData: 612 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 613 | m_FontSize: 36 614 | m_FontStyle: 0 615 | m_BestFit: 0 616 | m_MinSize: 10 617 | m_MaxSize: 40 618 | m_Alignment: 3 619 | m_AlignByGeometry: 0 620 | m_RichText: 1 621 | m_HorizontalOverflow: 0 622 | m_VerticalOverflow: 0 623 | m_LineSpacing: 1 624 | m_Text: Drawer Console 625 | --- !u!222 &656697712 626 | CanvasRenderer: 627 | m_ObjectHideFlags: 0 628 | m_CorrespondingSourceObject: {fileID: 0} 629 | m_PrefabInstance: {fileID: 0} 630 | m_PrefabAsset: {fileID: 0} 631 | m_GameObject: {fileID: 656697709} 632 | m_CullTransparentMesh: 1 633 | --- !u!1 &664584400 634 | GameObject: 635 | m_ObjectHideFlags: 0 636 | m_CorrespondingSourceObject: {fileID: 0} 637 | m_PrefabInstance: {fileID: 0} 638 | m_PrefabAsset: {fileID: 0} 639 | serializedVersion: 6 640 | m_Component: 641 | - component: {fileID: 664584401} 642 | - component: {fileID: 664584403} 643 | - component: {fileID: 664584402} 644 | m_Layer: 5 645 | m_Name: Checkmark 646 | m_TagString: Untagged 647 | m_Icon: {fileID: 0} 648 | m_NavMeshLayer: 0 649 | m_StaticEditorFlags: 0 650 | m_IsActive: 1 651 | --- !u!224 &664584401 652 | RectTransform: 653 | m_ObjectHideFlags: 0 654 | m_CorrespondingSourceObject: {fileID: 0} 655 | m_PrefabInstance: {fileID: 0} 656 | m_PrefabAsset: {fileID: 0} 657 | m_GameObject: {fileID: 664584400} 658 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 659 | m_LocalPosition: {x: 0, y: 0, z: 0} 660 | m_LocalScale: {x: 1, y: 1, z: 1} 661 | m_ConstrainProportionsScale: 0 662 | m_Children: [] 663 | m_Father: {fileID: 1489588249} 664 | m_RootOrder: 0 665 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 666 | m_AnchorMin: {x: 0.5, y: 0.5} 667 | m_AnchorMax: {x: 0.5, y: 0.5} 668 | m_AnchoredPosition: {x: 0, y: 0} 669 | m_SizeDelta: {x: 40, y: 40} 670 | m_Pivot: {x: 0.5, y: 0.5} 671 | --- !u!114 &664584402 672 | MonoBehaviour: 673 | m_ObjectHideFlags: 0 674 | m_CorrespondingSourceObject: {fileID: 0} 675 | m_PrefabInstance: {fileID: 0} 676 | m_PrefabAsset: {fileID: 0} 677 | m_GameObject: {fileID: 664584400} 678 | m_Enabled: 1 679 | m_EditorHideFlags: 0 680 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 681 | m_Name: 682 | m_EditorClassIdentifier: 683 | m_Material: {fileID: 0} 684 | m_Color: {r: 1, g: 1, b: 1, a: 1} 685 | m_RaycastTarget: 1 686 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 687 | m_Maskable: 1 688 | m_OnCullStateChanged: 689 | m_PersistentCalls: 690 | m_Calls: [] 691 | m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} 692 | m_Type: 0 693 | m_PreserveAspect: 0 694 | m_FillCenter: 1 695 | m_FillMethod: 4 696 | m_FillAmount: 1 697 | m_FillClockwise: 1 698 | m_FillOrigin: 0 699 | m_UseSpriteMesh: 0 700 | m_PixelsPerUnitMultiplier: 1 701 | --- !u!222 &664584403 702 | CanvasRenderer: 703 | m_ObjectHideFlags: 0 704 | m_CorrespondingSourceObject: {fileID: 0} 705 | m_PrefabInstance: {fileID: 0} 706 | m_PrefabAsset: {fileID: 0} 707 | m_GameObject: {fileID: 664584400} 708 | m_CullTransparentMesh: 1 709 | --- !u!1 &962441908 710 | GameObject: 711 | m_ObjectHideFlags: 0 712 | m_CorrespondingSourceObject: {fileID: 0} 713 | m_PrefabInstance: {fileID: 0} 714 | m_PrefabAsset: {fileID: 0} 715 | serializedVersion: 6 716 | m_Component: 717 | - component: {fileID: 962441909} 718 | - component: {fileID: 962441912} 719 | - component: {fileID: 962441911} 720 | - component: {fileID: 962441910} 721 | m_Layer: 5 722 | m_Name: Instructions Canvas 723 | m_TagString: Untagged 724 | m_Icon: {fileID: 0} 725 | m_NavMeshLayer: 0 726 | m_StaticEditorFlags: 0 727 | m_IsActive: 1 728 | --- !u!224 &962441909 729 | RectTransform: 730 | m_ObjectHideFlags: 0 731 | m_CorrespondingSourceObject: {fileID: 0} 732 | m_PrefabInstance: {fileID: 0} 733 | m_PrefabAsset: {fileID: 0} 734 | m_GameObject: {fileID: 962441908} 735 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 736 | m_LocalPosition: {x: 0, y: 0, z: 0} 737 | m_LocalScale: {x: 0, y: 0, z: 0} 738 | m_ConstrainProportionsScale: 0 739 | m_Children: 740 | - {fileID: 1263125326} 741 | - {fileID: 1662333881} 742 | - {fileID: 642003165} 743 | m_Father: {fileID: 0} 744 | m_RootOrder: 5 745 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 746 | m_AnchorMin: {x: 0, y: 0} 747 | m_AnchorMax: {x: 0, y: 0} 748 | m_AnchoredPosition: {x: 0, y: 0} 749 | m_SizeDelta: {x: 0, y: 0} 750 | m_Pivot: {x: 0, y: 0} 751 | --- !u!114 &962441910 752 | MonoBehaviour: 753 | m_ObjectHideFlags: 0 754 | m_CorrespondingSourceObject: {fileID: 0} 755 | m_PrefabInstance: {fileID: 0} 756 | m_PrefabAsset: {fileID: 0} 757 | m_GameObject: {fileID: 962441908} 758 | m_Enabled: 1 759 | m_EditorHideFlags: 0 760 | m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} 761 | m_Name: 762 | m_EditorClassIdentifier: 763 | m_IgnoreReversedGraphics: 1 764 | m_BlockingObjects: 0 765 | m_BlockingMask: 766 | serializedVersion: 2 767 | m_Bits: 4294967295 768 | --- !u!114 &962441911 769 | MonoBehaviour: 770 | m_ObjectHideFlags: 0 771 | m_CorrespondingSourceObject: {fileID: 0} 772 | m_PrefabInstance: {fileID: 0} 773 | m_PrefabAsset: {fileID: 0} 774 | m_GameObject: {fileID: 962441908} 775 | m_Enabled: 1 776 | m_EditorHideFlags: 0 777 | m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} 778 | m_Name: 779 | m_EditorClassIdentifier: 780 | m_UiScaleMode: 1 781 | m_ReferencePixelsPerUnit: 100 782 | m_ScaleFactor: 1 783 | m_ReferenceResolution: {x: 1024, y: 768} 784 | m_ScreenMatchMode: 0 785 | m_MatchWidthOrHeight: 0.5 786 | m_PhysicalUnit: 3 787 | m_FallbackScreenDPI: 96 788 | m_DefaultSpriteDPI: 96 789 | m_DynamicPixelsPerUnit: 1 790 | m_PresetInfoIsWorld: 0 791 | --- !u!223 &962441912 792 | Canvas: 793 | m_ObjectHideFlags: 0 794 | m_CorrespondingSourceObject: {fileID: 0} 795 | m_PrefabInstance: {fileID: 0} 796 | m_PrefabAsset: {fileID: 0} 797 | m_GameObject: {fileID: 962441908} 798 | m_Enabled: 1 799 | serializedVersion: 3 800 | m_RenderMode: 0 801 | m_Camera: {fileID: 0} 802 | m_PlaneDistance: 100 803 | m_PixelPerfect: 0 804 | m_ReceivesEvents: 1 805 | m_OverrideSorting: 0 806 | m_OverridePixelPerfect: 0 807 | m_SortingBucketNormalizedSize: 0 808 | m_AdditionalShaderChannelsFlag: 0 809 | m_SortingLayerID: 0 810 | m_SortingOrder: 0 811 | m_TargetDisplay: 0 812 | --- !u!850595691 &1047309517 813 | LightingSettings: 814 | m_ObjectHideFlags: 0 815 | m_CorrespondingSourceObject: {fileID: 0} 816 | m_PrefabInstance: {fileID: 0} 817 | m_PrefabAsset: {fileID: 0} 818 | m_Name: Settings.lighting 819 | serializedVersion: 4 820 | m_GIWorkflowMode: 1 821 | m_EnableBakedLightmaps: 1 822 | m_EnableRealtimeLightmaps: 0 823 | m_RealtimeEnvironmentLighting: 1 824 | m_BounceScale: 1 825 | m_AlbedoBoost: 1 826 | m_IndirectOutputScale: 1 827 | m_UsingShadowmask: 0 828 | m_BakeBackend: 0 829 | m_LightmapMaxSize: 1024 830 | m_BakeResolution: 50 831 | m_Padding: 2 832 | m_LightmapCompression: 0 833 | m_AO: 0 834 | m_AOMaxDistance: 1 835 | m_CompAOExponent: 0 836 | m_CompAOExponentDirect: 0 837 | m_ExtractAO: 0 838 | m_MixedBakeMode: 1 839 | m_LightmapsBakeMode: 1 840 | m_FilterMode: 1 841 | m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0} 842 | m_ExportTrainingData: 0 843 | m_TrainingDataDestination: TrainingData 844 | m_RealtimeResolution: 1 845 | m_ForceWhiteAlbedo: 0 846 | m_ForceUpdates: 0 847 | m_FinalGather: 0 848 | m_FinalGatherRayCount: 1024 849 | m_FinalGatherFiltering: 1 850 | m_PVRCulling: 1 851 | m_PVRSampling: 1 852 | m_PVRDirectSampleCount: 32 853 | m_PVRSampleCount: 500 854 | m_PVREnvironmentSampleCount: 500 855 | m_PVREnvironmentReferencePointCount: 2048 856 | m_LightProbeSampleCountMultiplier: 4 857 | m_PVRBounces: 2 858 | m_PVRMinBounces: 2 859 | m_PVREnvironmentMIS: 0 860 | m_PVRFilteringMode: 2 861 | m_PVRDenoiserTypeDirect: 0 862 | m_PVRDenoiserTypeIndirect: 0 863 | m_PVRDenoiserTypeAO: 0 864 | m_PVRFilterTypeDirect: 0 865 | m_PVRFilterTypeIndirect: 0 866 | m_PVRFilterTypeAO: 0 867 | m_PVRFilteringGaussRadiusDirect: 1 868 | m_PVRFilteringGaussRadiusIndirect: 5 869 | m_PVRFilteringGaussRadiusAO: 2 870 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 871 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 872 | m_PVRFilteringAtrousPositionSigmaAO: 1 873 | m_PVRTiledBaking: 0 874 | --- !u!1 &1263125325 875 | GameObject: 876 | m_ObjectHideFlags: 0 877 | m_CorrespondingSourceObject: {fileID: 0} 878 | m_PrefabInstance: {fileID: 0} 879 | m_PrefabAsset: {fileID: 0} 880 | serializedVersion: 6 881 | m_Component: 882 | - component: {fileID: 1263125326} 883 | - component: {fileID: 1263125328} 884 | - component: {fileID: 1263125327} 885 | m_Layer: 5 886 | m_Name: Text 887 | m_TagString: Untagged 888 | m_Icon: {fileID: 0} 889 | m_NavMeshLayer: 0 890 | m_StaticEditorFlags: 0 891 | m_IsActive: 1 892 | --- !u!224 &1263125326 893 | RectTransform: 894 | m_ObjectHideFlags: 0 895 | m_CorrespondingSourceObject: {fileID: 0} 896 | m_PrefabInstance: {fileID: 0} 897 | m_PrefabAsset: {fileID: 0} 898 | m_GameObject: {fileID: 1263125325} 899 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 900 | m_LocalPosition: {x: 0, y: 0, z: 0} 901 | m_LocalScale: {x: 1, y: 1, z: 1} 902 | m_ConstrainProportionsScale: 0 903 | m_Children: [] 904 | m_Father: {fileID: 962441909} 905 | m_RootOrder: 0 906 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 907 | m_AnchorMin: {x: 0.5, y: 0.5} 908 | m_AnchorMax: {x: 0.5, y: 0.5} 909 | m_AnchoredPosition: {x: 0, y: 0} 910 | m_SizeDelta: {x: 500, y: 54} 911 | m_Pivot: {x: 0.5, y: 0.5} 912 | --- !u!114 &1263125327 913 | MonoBehaviour: 914 | m_ObjectHideFlags: 0 915 | m_CorrespondingSourceObject: {fileID: 0} 916 | m_PrefabInstance: {fileID: 0} 917 | m_PrefabAsset: {fileID: 0} 918 | m_GameObject: {fileID: 1263125325} 919 | m_Enabled: 1 920 | m_EditorHideFlags: 0 921 | m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} 922 | m_Name: 923 | m_EditorClassIdentifier: 924 | m_Material: {fileID: 0} 925 | m_Color: {r: 1, g: 1, b: 1, a: 1} 926 | m_RaycastTarget: 1 927 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 928 | m_Maskable: 1 929 | m_OnCullStateChanged: 930 | m_PersistentCalls: 931 | m_Calls: [] 932 | m_FontData: 933 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 934 | m_FontSize: 36 935 | m_FontStyle: 0 936 | m_BestFit: 0 937 | m_MinSize: 10 938 | m_MaxSize: 40 939 | m_Alignment: 0 940 | m_AlignByGeometry: 0 941 | m_RichText: 1 942 | m_HorizontalOverflow: 0 943 | m_VerticalOverflow: 0 944 | m_LineSpacing: 1 945 | m_Text: Press ~ to open the console 946 | --- !u!222 &1263125328 947 | CanvasRenderer: 948 | m_ObjectHideFlags: 0 949 | m_CorrespondingSourceObject: {fileID: 0} 950 | m_PrefabInstance: {fileID: 0} 951 | m_PrefabAsset: {fileID: 0} 952 | m_GameObject: {fileID: 1263125325} 953 | m_CullTransparentMesh: 1 954 | --- !u!1 &1318610010 955 | GameObject: 956 | m_ObjectHideFlags: 0 957 | m_CorrespondingSourceObject: {fileID: 0} 958 | m_PrefabInstance: {fileID: 0} 959 | m_PrefabAsset: {fileID: 0} 960 | serializedVersion: 6 961 | m_Component: 962 | - component: {fileID: 1318610011} 963 | - component: {fileID: 1318610013} 964 | - component: {fileID: 1318610012} 965 | m_Layer: 5 966 | m_Name: Background 967 | m_TagString: Untagged 968 | m_Icon: {fileID: 0} 969 | m_NavMeshLayer: 0 970 | m_StaticEditorFlags: 0 971 | m_IsActive: 1 972 | --- !u!224 &1318610011 973 | RectTransform: 974 | m_ObjectHideFlags: 0 975 | m_CorrespondingSourceObject: {fileID: 0} 976 | m_PrefabInstance: {fileID: 0} 977 | m_PrefabAsset: {fileID: 0} 978 | m_GameObject: {fileID: 1318610010} 979 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 980 | m_LocalPosition: {x: 0, y: 0, z: 0} 981 | m_LocalScale: {x: 1, y: 1, z: 1} 982 | m_ConstrainProportionsScale: 0 983 | m_Children: 984 | - {fileID: 412007547} 985 | m_Father: {fileID: 1662333881} 986 | m_RootOrder: 0 987 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 988 | m_AnchorMin: {x: 0, y: 0.5} 989 | m_AnchorMax: {x: 0, y: 0.5} 990 | m_AnchoredPosition: {x: 20, y: 0} 991 | m_SizeDelta: {x: 40, y: 40} 992 | m_Pivot: {x: 0.5, y: 0.5} 993 | --- !u!114 &1318610012 994 | MonoBehaviour: 995 | m_ObjectHideFlags: 0 996 | m_CorrespondingSourceObject: {fileID: 0} 997 | m_PrefabInstance: {fileID: 0} 998 | m_PrefabAsset: {fileID: 0} 999 | m_GameObject: {fileID: 1318610010} 1000 | m_Enabled: 1 1001 | m_EditorHideFlags: 0 1002 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 1003 | m_Name: 1004 | m_EditorClassIdentifier: 1005 | m_Material: {fileID: 0} 1006 | m_Color: {r: 1, g: 1, b: 1, a: 1} 1007 | m_RaycastTarget: 1 1008 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 1009 | m_Maskable: 1 1010 | m_OnCullStateChanged: 1011 | m_PersistentCalls: 1012 | m_Calls: [] 1013 | m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} 1014 | m_Type: 1 1015 | m_PreserveAspect: 0 1016 | m_FillCenter: 1 1017 | m_FillMethod: 4 1018 | m_FillAmount: 1 1019 | m_FillClockwise: 1 1020 | m_FillOrigin: 0 1021 | m_UseSpriteMesh: 0 1022 | m_PixelsPerUnitMultiplier: 1 1023 | --- !u!222 &1318610013 1024 | CanvasRenderer: 1025 | m_ObjectHideFlags: 0 1026 | m_CorrespondingSourceObject: {fileID: 0} 1027 | m_PrefabInstance: {fileID: 0} 1028 | m_PrefabAsset: {fileID: 0} 1029 | m_GameObject: {fileID: 1318610010} 1030 | m_CullTransparentMesh: 1 1031 | --- !u!1 &1489588248 1032 | GameObject: 1033 | m_ObjectHideFlags: 0 1034 | m_CorrespondingSourceObject: {fileID: 0} 1035 | m_PrefabInstance: {fileID: 0} 1036 | m_PrefabAsset: {fileID: 0} 1037 | serializedVersion: 6 1038 | m_Component: 1039 | - component: {fileID: 1489588249} 1040 | - component: {fileID: 1489588251} 1041 | - component: {fileID: 1489588250} 1042 | m_Layer: 5 1043 | m_Name: Background 1044 | m_TagString: Untagged 1045 | m_Icon: {fileID: 0} 1046 | m_NavMeshLayer: 0 1047 | m_StaticEditorFlags: 0 1048 | m_IsActive: 1 1049 | --- !u!224 &1489588249 1050 | RectTransform: 1051 | m_ObjectHideFlags: 0 1052 | m_CorrespondingSourceObject: {fileID: 0} 1053 | m_PrefabInstance: {fileID: 0} 1054 | m_PrefabAsset: {fileID: 0} 1055 | m_GameObject: {fileID: 1489588248} 1056 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1057 | m_LocalPosition: {x: 0, y: 0, z: 0} 1058 | m_LocalScale: {x: 1, y: 1, z: 1} 1059 | m_ConstrainProportionsScale: 0 1060 | m_Children: 1061 | - {fileID: 664584401} 1062 | m_Father: {fileID: 642003165} 1063 | m_RootOrder: 0 1064 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1065 | m_AnchorMin: {x: 0, y: 0.5} 1066 | m_AnchorMax: {x: 0, y: 0.5} 1067 | m_AnchoredPosition: {x: 20, y: 0} 1068 | m_SizeDelta: {x: 40, y: 40} 1069 | m_Pivot: {x: 0.5, y: 0.5} 1070 | --- !u!114 &1489588250 1071 | MonoBehaviour: 1072 | m_ObjectHideFlags: 0 1073 | m_CorrespondingSourceObject: {fileID: 0} 1074 | m_PrefabInstance: {fileID: 0} 1075 | m_PrefabAsset: {fileID: 0} 1076 | m_GameObject: {fileID: 1489588248} 1077 | m_Enabled: 1 1078 | m_EditorHideFlags: 0 1079 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 1080 | m_Name: 1081 | m_EditorClassIdentifier: 1082 | m_Material: {fileID: 0} 1083 | m_Color: {r: 1, g: 1, b: 1, a: 1} 1084 | m_RaycastTarget: 1 1085 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 1086 | m_Maskable: 1 1087 | m_OnCullStateChanged: 1088 | m_PersistentCalls: 1089 | m_Calls: [] 1090 | m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} 1091 | m_Type: 1 1092 | m_PreserveAspect: 0 1093 | m_FillCenter: 1 1094 | m_FillMethod: 4 1095 | m_FillAmount: 1 1096 | m_FillClockwise: 1 1097 | m_FillOrigin: 0 1098 | m_UseSpriteMesh: 0 1099 | m_PixelsPerUnitMultiplier: 1 1100 | --- !u!222 &1489588251 1101 | CanvasRenderer: 1102 | m_ObjectHideFlags: 0 1103 | m_CorrespondingSourceObject: {fileID: 0} 1104 | m_PrefabInstance: {fileID: 0} 1105 | m_PrefabAsset: {fileID: 0} 1106 | m_GameObject: {fileID: 1489588248} 1107 | m_CullTransparentMesh: 1 1108 | --- !u!1 &1505077688 stripped 1109 | GameObject: 1110 | m_CorrespondingSourceObject: {fileID: 153408, guid: 83db041da528e48efb33934c6b2c4504, 1111 | type: 3} 1112 | m_PrefabInstance: {fileID: 2072842671} 1113 | m_PrefabAsset: {fileID: 0} 1114 | --- !u!1001 &1589673741 1115 | PrefabInstance: 1116 | m_ObjectHideFlags: 0 1117 | serializedVersion: 2 1118 | m_Modification: 1119 | m_TransformParent: {fileID: 0} 1120 | m_Modifications: 1121 | - target: {fileID: 134952, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1122 | propertyPath: m_IsActive 1123 | value: 0 1124 | objectReference: {fileID: 0} 1125 | - target: {fileID: 139438, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1126 | propertyPath: m_Name 1127 | value: Drawer Console 1128 | objectReference: {fileID: 0} 1129 | - target: {fileID: 139438, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1130 | propertyPath: m_IsActive 1131 | value: 1 1132 | objectReference: {fileID: 0} 1133 | - target: {fileID: 11444272, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1134 | propertyPath: m_Enabled 1135 | value: 1 1136 | objectReference: {fileID: 0} 1137 | - target: {fileID: 11483814, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1138 | propertyPath: console 1139 | value: 1140 | objectReference: {fileID: 286234167} 1141 | - target: {fileID: 22368878, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1142 | propertyPath: m_Enabled 1143 | value: 1 1144 | objectReference: {fileID: 0} 1145 | - target: {fileID: 22368878, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1146 | propertyPath: m_PixelPerfect 1147 | value: 1 1148 | objectReference: {fileID: 0} 1149 | - target: {fileID: 22404172, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1150 | propertyPath: m_Pivot.x 1151 | value: 0 1152 | objectReference: {fileID: 0} 1153 | - target: {fileID: 22404172, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1154 | propertyPath: m_Pivot.y 1155 | value: 0 1156 | objectReference: {fileID: 0} 1157 | - target: {fileID: 22404172, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1158 | propertyPath: m_RootOrder 1159 | value: 3 1160 | objectReference: {fileID: 0} 1161 | - target: {fileID: 22404172, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1162 | propertyPath: m_AnchorMax.x 1163 | value: 0 1164 | objectReference: {fileID: 0} 1165 | - target: {fileID: 22404172, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1166 | propertyPath: m_AnchorMax.y 1167 | value: 0 1168 | objectReference: {fileID: 0} 1169 | - target: {fileID: 22404172, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1170 | propertyPath: m_AnchorMin.x 1171 | value: 0 1172 | objectReference: {fileID: 0} 1173 | - target: {fileID: 22404172, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1174 | propertyPath: m_AnchorMin.y 1175 | value: 0 1176 | objectReference: {fileID: 0} 1177 | - target: {fileID: 22404172, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1178 | propertyPath: m_SizeDelta.x 1179 | value: 0 1180 | objectReference: {fileID: 0} 1181 | - target: {fileID: 22404172, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1182 | propertyPath: m_SizeDelta.y 1183 | value: 0 1184 | objectReference: {fileID: 0} 1185 | - target: {fileID: 22404172, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1186 | propertyPath: m_LocalPosition.x 1187 | value: 0 1188 | objectReference: {fileID: 0} 1189 | - target: {fileID: 22404172, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1190 | propertyPath: m_LocalPosition.y 1191 | value: 0 1192 | objectReference: {fileID: 0} 1193 | - target: {fileID: 22404172, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1194 | propertyPath: m_LocalPosition.z 1195 | value: 0 1196 | objectReference: {fileID: 0} 1197 | - target: {fileID: 22404172, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1198 | propertyPath: m_LocalRotation.w 1199 | value: 1 1200 | objectReference: {fileID: 0} 1201 | - target: {fileID: 22404172, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1202 | propertyPath: m_LocalRotation.x 1203 | value: 0 1204 | objectReference: {fileID: 0} 1205 | - target: {fileID: 22404172, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1206 | propertyPath: m_LocalRotation.y 1207 | value: 0 1208 | objectReference: {fileID: 0} 1209 | - target: {fileID: 22404172, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1210 | propertyPath: m_LocalRotation.z 1211 | value: 0 1212 | objectReference: {fileID: 0} 1213 | - target: {fileID: 22404172, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1214 | propertyPath: m_AnchoredPosition.x 1215 | value: 0 1216 | objectReference: {fileID: 0} 1217 | - target: {fileID: 22404172, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1218 | propertyPath: m_AnchoredPosition.y 1219 | value: 0 1220 | objectReference: {fileID: 0} 1221 | - target: {fileID: 22404172, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1222 | propertyPath: m_LocalEulerAnglesHint.x 1223 | value: 0 1224 | objectReference: {fileID: 0} 1225 | - target: {fileID: 22404172, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1226 | propertyPath: m_LocalEulerAnglesHint.y 1227 | value: 0 1228 | objectReference: {fileID: 0} 1229 | - target: {fileID: 22404172, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1230 | propertyPath: m_LocalEulerAnglesHint.z 1231 | value: 0 1232 | objectReference: {fileID: 0} 1233 | - target: {fileID: 22420974, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1234 | propertyPath: m_SizeDelta.y 1235 | value: -315.43164 1236 | objectReference: {fileID: 0} 1237 | - target: {fileID: 22420974, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1238 | propertyPath: m_AnchoredPosition.y 1239 | value: 0.00012207031 1240 | objectReference: {fileID: 0} 1241 | - target: {fileID: 22449444, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1242 | propertyPath: m_AnchorMax.x 1243 | value: 1 1244 | objectReference: {fileID: 0} 1245 | - target: {fileID: 22449444, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1246 | propertyPath: m_AnchorMax.y 1247 | value: 1 1248 | objectReference: {fileID: 0} 1249 | - target: {fileID: 22449444, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1250 | propertyPath: m_AnchorMin.y 1251 | value: 0 1252 | objectReference: {fileID: 0} 1253 | m_RemovedComponents: [] 1254 | m_SourcePrefab: {fileID: 100100000, guid: 65d686389c5bf4ab6a262d16193ac8cb, type: 3} 1255 | --- !u!1 &1589673743 stripped 1256 | GameObject: 1257 | m_CorrespondingSourceObject: {fileID: 139438, guid: 65d686389c5bf4ab6a262d16193ac8cb, 1258 | type: 3} 1259 | m_PrefabInstance: {fileID: 1589673741} 1260 | m_PrefabAsset: {fileID: 0} 1261 | --- !u!1 &1662333880 1262 | GameObject: 1263 | m_ObjectHideFlags: 0 1264 | m_CorrespondingSourceObject: {fileID: 0} 1265 | m_PrefabInstance: {fileID: 0} 1266 | m_PrefabAsset: {fileID: 0} 1267 | serializedVersion: 6 1268 | m_Component: 1269 | - component: {fileID: 1662333881} 1270 | - component: {fileID: 1662333882} 1271 | - component: {fileID: 1662333883} 1272 | m_Layer: 5 1273 | m_Name: Toggle 1274 | m_TagString: Untagged 1275 | m_Icon: {fileID: 0} 1276 | m_NavMeshLayer: 0 1277 | m_StaticEditorFlags: 0 1278 | m_IsActive: 1 1279 | --- !u!224 &1662333881 1280 | RectTransform: 1281 | m_ObjectHideFlags: 0 1282 | m_CorrespondingSourceObject: {fileID: 0} 1283 | m_PrefabInstance: {fileID: 0} 1284 | m_PrefabAsset: {fileID: 0} 1285 | m_GameObject: {fileID: 1662333880} 1286 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1287 | m_LocalPosition: {x: 0, y: 0, z: 0} 1288 | m_LocalScale: {x: 1, y: 1, z: 1} 1289 | m_ConstrainProportionsScale: 0 1290 | m_Children: 1291 | - {fileID: 1318610011} 1292 | - {fileID: 656697710} 1293 | m_Father: {fileID: 962441909} 1294 | m_RootOrder: 1 1295 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1296 | m_AnchorMin: {x: 0.5, y: 0.5} 1297 | m_AnchorMax: {x: 0.5, y: 0.5} 1298 | m_AnchoredPosition: {x: 1, y: -65} 1299 | m_SizeDelta: {x: 498, y: 52} 1300 | m_Pivot: {x: 0.5, y: 0.5} 1301 | --- !u!114 &1662333882 1302 | MonoBehaviour: 1303 | m_ObjectHideFlags: 0 1304 | m_CorrespondingSourceObject: {fileID: 0} 1305 | m_PrefabInstance: {fileID: 0} 1306 | m_PrefabAsset: {fileID: 0} 1307 | m_GameObject: {fileID: 1662333880} 1308 | m_Enabled: 1 1309 | m_EditorHideFlags: 0 1310 | m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} 1311 | m_Name: 1312 | m_EditorClassIdentifier: 1313 | m_Navigation: 1314 | m_Mode: 3 1315 | m_WrapAround: 0 1316 | m_SelectOnUp: {fileID: 0} 1317 | m_SelectOnDown: {fileID: 0} 1318 | m_SelectOnLeft: {fileID: 0} 1319 | m_SelectOnRight: {fileID: 0} 1320 | m_Transition: 1 1321 | m_Colors: 1322 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 1323 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 1324 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 1325 | m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 1326 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 1327 | m_ColorMultiplier: 1 1328 | m_FadeDuration: 0.1 1329 | m_SpriteState: 1330 | m_HighlightedSprite: {fileID: 0} 1331 | m_PressedSprite: {fileID: 0} 1332 | m_SelectedSprite: {fileID: 0} 1333 | m_DisabledSprite: {fileID: 0} 1334 | m_AnimationTriggers: 1335 | m_NormalTrigger: Normal 1336 | m_HighlightedTrigger: Highlighted 1337 | m_PressedTrigger: Pressed 1338 | m_SelectedTrigger: Highlighted 1339 | m_DisabledTrigger: Disabled 1340 | m_Interactable: 1 1341 | m_TargetGraphic: {fileID: 1318610012} 1342 | toggleTransition: 1 1343 | graphic: {fileID: 412007548} 1344 | m_Group: {fileID: 1662333883} 1345 | onValueChanged: 1346 | m_PersistentCalls: 1347 | m_Calls: 1348 | - m_Target: {fileID: 1589673743} 1349 | m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine 1350 | m_MethodName: SetActive 1351 | m_Mode: 0 1352 | m_Arguments: 1353 | m_ObjectArgument: {fileID: 0} 1354 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 1355 | m_IntArgument: 0 1356 | m_FloatArgument: 0 1357 | m_StringArgument: 1358 | m_BoolArgument: 0 1359 | m_CallState: 2 1360 | m_IsOn: 1 1361 | --- !u!114 &1662333883 1362 | MonoBehaviour: 1363 | m_ObjectHideFlags: 0 1364 | m_CorrespondingSourceObject: {fileID: 0} 1365 | m_PrefabInstance: {fileID: 0} 1366 | m_PrefabAsset: {fileID: 0} 1367 | m_GameObject: {fileID: 1662333880} 1368 | m_Enabled: 1 1369 | m_EditorHideFlags: 0 1370 | m_Script: {fileID: 11500000, guid: 2fafe2cfe61f6974895a912c3755e8f1, type: 3} 1371 | m_Name: 1372 | m_EditorClassIdentifier: 1373 | m_AllowSwitchOff: 0 1374 | --- !u!1001 &2072842671 1375 | PrefabInstance: 1376 | m_ObjectHideFlags: 0 1377 | serializedVersion: 2 1378 | m_Modification: 1379 | m_TransformParent: {fileID: 0} 1380 | m_Modifications: 1381 | - target: {fileID: 153406, guid: 83db041da528e48efb33934c6b2c4504, type: 3} 1382 | propertyPath: m_IsActive 1383 | value: 0 1384 | objectReference: {fileID: 0} 1385 | - target: {fileID: 153408, guid: 83db041da528e48efb33934c6b2c4504, type: 3} 1386 | propertyPath: m_IsActive 1387 | value: 0 1388 | objectReference: {fileID: 0} 1389 | - target: {fileID: 11453404, guid: 83db041da528e48efb33934c6b2c4504, type: 3} 1390 | propertyPath: console 1391 | value: 1392 | objectReference: {fileID: 286234167} 1393 | - target: {fileID: 22453408, guid: 83db041da528e48efb33934c6b2c4504, type: 3} 1394 | propertyPath: m_Pivot.x 1395 | value: 0 1396 | objectReference: {fileID: 0} 1397 | - target: {fileID: 22453408, guid: 83db041da528e48efb33934c6b2c4504, type: 3} 1398 | propertyPath: m_Pivot.y 1399 | value: 0 1400 | objectReference: {fileID: 0} 1401 | - target: {fileID: 22453408, guid: 83db041da528e48efb33934c6b2c4504, type: 3} 1402 | propertyPath: m_RootOrder 1403 | value: 2 1404 | objectReference: {fileID: 0} 1405 | - target: {fileID: 22453408, guid: 83db041da528e48efb33934c6b2c4504, type: 3} 1406 | propertyPath: m_AnchorMax.x 1407 | value: 0 1408 | objectReference: {fileID: 0} 1409 | - target: {fileID: 22453408, guid: 83db041da528e48efb33934c6b2c4504, type: 3} 1410 | propertyPath: m_AnchorMax.y 1411 | value: 0 1412 | objectReference: {fileID: 0} 1413 | - target: {fileID: 22453408, guid: 83db041da528e48efb33934c6b2c4504, type: 3} 1414 | propertyPath: m_AnchorMin.x 1415 | value: 0 1416 | objectReference: {fileID: 0} 1417 | - target: {fileID: 22453408, guid: 83db041da528e48efb33934c6b2c4504, type: 3} 1418 | propertyPath: m_AnchorMin.y 1419 | value: 0 1420 | objectReference: {fileID: 0} 1421 | - target: {fileID: 22453408, guid: 83db041da528e48efb33934c6b2c4504, type: 3} 1422 | propertyPath: m_SizeDelta.x 1423 | value: 0 1424 | objectReference: {fileID: 0} 1425 | - target: {fileID: 22453408, guid: 83db041da528e48efb33934c6b2c4504, type: 3} 1426 | propertyPath: m_SizeDelta.y 1427 | value: 0 1428 | objectReference: {fileID: 0} 1429 | - target: {fileID: 22453408, guid: 83db041da528e48efb33934c6b2c4504, type: 3} 1430 | propertyPath: m_LocalPosition.x 1431 | value: 0 1432 | objectReference: {fileID: 0} 1433 | - target: {fileID: 22453408, guid: 83db041da528e48efb33934c6b2c4504, type: 3} 1434 | propertyPath: m_LocalPosition.y 1435 | value: 0 1436 | objectReference: {fileID: 0} 1437 | - target: {fileID: 22453408, guid: 83db041da528e48efb33934c6b2c4504, type: 3} 1438 | propertyPath: m_LocalPosition.z 1439 | value: 0 1440 | objectReference: {fileID: 0} 1441 | - target: {fileID: 22453408, guid: 83db041da528e48efb33934c6b2c4504, type: 3} 1442 | propertyPath: m_LocalRotation.w 1443 | value: 1 1444 | objectReference: {fileID: 0} 1445 | - target: {fileID: 22453408, guid: 83db041da528e48efb33934c6b2c4504, type: 3} 1446 | propertyPath: m_LocalRotation.x 1447 | value: -0 1448 | objectReference: {fileID: 0} 1449 | - target: {fileID: 22453408, guid: 83db041da528e48efb33934c6b2c4504, type: 3} 1450 | propertyPath: m_LocalRotation.y 1451 | value: -0 1452 | objectReference: {fileID: 0} 1453 | - target: {fileID: 22453408, guid: 83db041da528e48efb33934c6b2c4504, type: 3} 1454 | propertyPath: m_LocalRotation.z 1455 | value: -0 1456 | objectReference: {fileID: 0} 1457 | - target: {fileID: 22453408, guid: 83db041da528e48efb33934c6b2c4504, type: 3} 1458 | propertyPath: m_AnchoredPosition.x 1459 | value: 0 1460 | objectReference: {fileID: 0} 1461 | - target: {fileID: 22453408, guid: 83db041da528e48efb33934c6b2c4504, type: 3} 1462 | propertyPath: m_AnchoredPosition.y 1463 | value: 0 1464 | objectReference: {fileID: 0} 1465 | - target: {fileID: 22453410, guid: 83db041da528e48efb33934c6b2c4504, type: 3} 1466 | propertyPath: m_AnchorMax.x 1467 | value: 1 1468 | objectReference: {fileID: 0} 1469 | - target: {fileID: 22453410, guid: 83db041da528e48efb33934c6b2c4504, type: 3} 1470 | propertyPath: m_AnchorMax.y 1471 | value: 1 1472 | objectReference: {fileID: 0} 1473 | - target: {fileID: 22453416, guid: 83db041da528e48efb33934c6b2c4504, type: 3} 1474 | propertyPath: m_SizeDelta.y 1475 | value: -309.0761 1476 | objectReference: {fileID: 0} 1477 | m_RemovedComponents: [] 1478 | m_SourcePrefab: {fileID: 100100000, guid: 83db041da528e48efb33934c6b2c4504, type: 3} 1479 | --- !u!1001 &5554939546897731737 1480 | PrefabInstance: 1481 | m_ObjectHideFlags: 0 1482 | serializedVersion: 2 1483 | m_Modification: 1484 | m_TransformParent: {fileID: 0} 1485 | m_Modifications: 1486 | - target: {fileID: 5554939547148895905, guid: 9ece047c6761c45b3a368c2589f10aa6, 1487 | type: 3} 1488 | propertyPath: m_RootOrder 1489 | value: 4 1490 | objectReference: {fileID: 0} 1491 | - target: {fileID: 5554939547148895905, guid: 9ece047c6761c45b3a368c2589f10aa6, 1492 | type: 3} 1493 | propertyPath: m_LocalPosition.x 1494 | value: 0 1495 | objectReference: {fileID: 0} 1496 | - target: {fileID: 5554939547148895905, guid: 9ece047c6761c45b3a368c2589f10aa6, 1497 | type: 3} 1498 | propertyPath: m_LocalPosition.y 1499 | value: 0 1500 | objectReference: {fileID: 0} 1501 | - target: {fileID: 5554939547148895905, guid: 9ece047c6761c45b3a368c2589f10aa6, 1502 | type: 3} 1503 | propertyPath: m_LocalPosition.z 1504 | value: 0 1505 | objectReference: {fileID: 0} 1506 | - target: {fileID: 5554939547148895905, guid: 9ece047c6761c45b3a368c2589f10aa6, 1507 | type: 3} 1508 | propertyPath: m_LocalRotation.w 1509 | value: 1 1510 | objectReference: {fileID: 0} 1511 | - target: {fileID: 5554939547148895905, guid: 9ece047c6761c45b3a368c2589f10aa6, 1512 | type: 3} 1513 | propertyPath: m_LocalRotation.x 1514 | value: 0 1515 | objectReference: {fileID: 0} 1516 | - target: {fileID: 5554939547148895905, guid: 9ece047c6761c45b3a368c2589f10aa6, 1517 | type: 3} 1518 | propertyPath: m_LocalRotation.y 1519 | value: 0 1520 | objectReference: {fileID: 0} 1521 | - target: {fileID: 5554939547148895905, guid: 9ece047c6761c45b3a368c2589f10aa6, 1522 | type: 3} 1523 | propertyPath: m_LocalRotation.z 1524 | value: 0 1525 | objectReference: {fileID: 0} 1526 | - target: {fileID: 5554939547148895905, guid: 9ece047c6761c45b3a368c2589f10aa6, 1527 | type: 3} 1528 | propertyPath: m_LocalEulerAnglesHint.x 1529 | value: 0 1530 | objectReference: {fileID: 0} 1531 | - target: {fileID: 5554939547148895905, guid: 9ece047c6761c45b3a368c2589f10aa6, 1532 | type: 3} 1533 | propertyPath: m_LocalEulerAnglesHint.y 1534 | value: 0 1535 | objectReference: {fileID: 0} 1536 | - target: {fileID: 5554939547148895905, guid: 9ece047c6761c45b3a368c2589f10aa6, 1537 | type: 3} 1538 | propertyPath: m_LocalEulerAnglesHint.z 1539 | value: 0 1540 | objectReference: {fileID: 0} 1541 | - target: {fileID: 5554939547148895916, guid: 9ece047c6761c45b3a368c2589f10aa6, 1542 | type: 3} 1543 | propertyPath: m_Name 1544 | value: Tilde 1545 | objectReference: {fileID: 0} 1546 | m_RemovedComponents: [] 1547 | m_SourcePrefab: {fileID: 100100000, guid: 9ece047c6761c45b3a368c2589f10aa6, type: 3} 1548 | --------------------------------------------------------------------------------