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