From 252de80d7df1bd5fc1dd6de392fe07ed15f5c7d7 Mon Sep 17 00:00:00 2001 From: huyufei Date: Mon, 6 May 2024 20:34:07 +0800 Subject: [PATCH] update: add event bus --- Editor/BuildTool/AppBuilder.cs | 2 +- Runtime/GuruCore/Runtime/Ads/ADService.cs | 3 + Runtime/GuruCore/Runtime/Ads/ADServiceBase.cs | 11 +- .../GuruCore/Runtime/Ads/ADServiceEvent.cs | 18 + .../Runtime/Ads/ADServiceEvent.cs.meta | 3 + .../Runtime/Ads/Channels/Max/AdChanelMax.cs | 22 +- Runtime/GuruCore/Runtime/Events.meta | 3 + Runtime/GuruCore/Runtime/Events/EventBus.cs | 327 ++++ .../GuruCore/Runtime/Events/EventBus.cs.meta | 3 + Runtime/GuruCore/Runtime/GameDefine.cs | 2 +- Runtime/GuruDebugger.meta | 8 + Runtime/GuruDebugger/README.md | 60 + Runtime/GuruDebugger/README.md.meta | 3 + Runtime/GuruDebugger/Runtime.meta | 8 + Runtime/GuruDebugger/Runtime/AdsStatus.meta | 3 + .../Runtime/AdsStatus/AdStatus.cs | 42 + .../Runtime/AdsStatus/AdStatus.cs.meta | 3 + .../Runtime/AdsStatus/AdStatusConsts.cs | 14 + .../Runtime/AdsStatus/AdStatusConsts.cs.meta | 3 + .../GuruDebugger/Runtime/AdsStatus/Data.meta | 3 + .../Runtime/AdsStatus/Data/AdStatusInfo.cs | 59 + .../AdsStatus/Data/AdStatusInfo.cs.meta | 3 + .../GuruDebugger/Runtime/AdsStatus/MVP.meta | 3 + .../Runtime/AdsStatus/MVP/AdStatusModel.cs | 68 + .../AdsStatus/MVP/AdStatusModel.cs.meta | 3 + .../AdsStatus/MVP/AdStatusMonitorView.cs | 111 ++ .../AdsStatus/MVP/AdStatusMonitorView.cs.meta | 11 + .../AdsStatus/MVP/AdStatusPresenter.Ads.cs | 416 +++++ .../MVP/AdStatusPresenter.Ads.cs.meta | 3 + .../MVP/AdStatusPresenter.Factory.cs | 101 ++ .../MVP/AdStatusPresenter.Factory.cs.meta | 3 + .../AdsStatus/MVP/AdStatusPresenter.cs | 81 + .../AdsStatus/MVP/AdStatusPresenter.cs.meta | 3 + .../Runtime/AdsStatus/Resources.meta | 3 + .../Runtime/AdsStatus/Resources/ui.meta | 8 + .../Resources/ui/debugger_root.prefab | 331 ++++ .../Resources/ui/debugger_root.prefab.meta | 7 + Runtime/GuruDebugger/Runtime/Debugger.meta | 8 + .../GuruDebugger/Runtime/Debugger/Core.meta | 8 + .../Runtime/Debugger/Core/Debugger.cs | 291 +++ .../Runtime/Debugger/Core/Debugger.cs.meta | 3 + .../Runtime/Debugger/Core/DebuggerConsts.cs | 34 + .../Debugger/Core/DebuggerConsts.cs.meta | 3 + .../Runtime/Debugger/Core/UIComponent.cs | 57 + .../Runtime/Debugger/Core/UIComponent.cs.meta | 3 + Runtime/GuruDebugger/Runtime/Debugger/UI.meta | 3 + .../Debugger/UI/DebuggerViewRoot.Factory.cs | 221 +++ .../UI/DebuggerViewRoot.Factory.cs.meta | 3 + .../Runtime/Debugger/UI/DebuggerViewRoot.cs | 151 ++ .../Debugger/UI/DebuggerViewRoot.cs.meta | 3 + .../Runtime/Debugger/UI/IVFactory.cs | 22 + .../Runtime/Debugger/UI/IVFactory.cs.meta | 3 + .../Runtime/Debugger/UI/UIOptionItem.cs | 114 ++ .../Runtime/Debugger/UI/UIOptionItem.cs.meta | 3 + .../Runtime/Debugger/UI/UITabItem.cs | 93 + .../Runtime/Debugger/UI/UITabItem.cs.meta | 3 + .../Runtime/Debugger/UI/VButton.cs | 52 + .../Runtime/Debugger/UI/VButton.cs.meta | 3 + .../Runtime/Debugger/UI/VLabel.cs | 36 + .../Runtime/Debugger/UI/VLabel.cs.meta | 3 + Runtime/GuruDebugger/Runtime/Prefab.meta | 8 + .../Runtime/Prefab/btn_item.prefab | 206 +++ .../Runtime/Prefab/btn_item.prefab.meta | 7 + .../Runtime/Prefab/opt_node_item.prefab | 391 ++++ .../Runtime/Prefab/opt_node_item.prefab.meta | 7 + .../Runtime/Prefab/tab_node_item.prefab | 174 ++ .../Runtime/Prefab/tab_node_item.prefab.meta | 7 + .../GuruDebugger/Runtime/Prefab/v_btn.prefab | 233 +++ .../Runtime/Prefab/v_btn.prefab.meta | 7 + .../Runtime/Prefab/v_label.prefab | 133 ++ .../Runtime/Prefab/v_label.prefab.meta | 7 + Runtime/GuruDebugger/Runtime/Resources.meta | 8 + .../GuruDebugger/Runtime/Resources/ui.meta | 8 + .../Runtime/Resources/ui/debugger_root.prefab | 1604 +++++++++++++++++ .../Resources/ui/debugger_root.prefab.meta | 7 + Runtime/GuruDebugger/Samples.meta | 3 + Runtime/GuruDebugger/Samples/DebugDemo.cs | 25 + .../GuruDebugger/Samples/DebugDemo.cs.meta | 11 + Runtime/GuruDebugger/Samples/DebugDemo.unity | 509 ++++++ .../GuruDebugger/Samples/DebugDemo.unity.meta | 7 + 80 files changed, 6220 insertions(+), 17 deletions(-) create mode 100644 Runtime/GuruCore/Runtime/Ads/ADServiceEvent.cs create mode 100644 Runtime/GuruCore/Runtime/Ads/ADServiceEvent.cs.meta create mode 100644 Runtime/GuruCore/Runtime/Events.meta create mode 100644 Runtime/GuruCore/Runtime/Events/EventBus.cs create mode 100644 Runtime/GuruCore/Runtime/Events/EventBus.cs.meta create mode 100644 Runtime/GuruDebugger.meta create mode 100644 Runtime/GuruDebugger/README.md create mode 100644 Runtime/GuruDebugger/README.md.meta create mode 100644 Runtime/GuruDebugger/Runtime.meta create mode 100644 Runtime/GuruDebugger/Runtime/AdsStatus.meta create mode 100644 Runtime/GuruDebugger/Runtime/AdsStatus/AdStatus.cs create mode 100644 Runtime/GuruDebugger/Runtime/AdsStatus/AdStatus.cs.meta create mode 100644 Runtime/GuruDebugger/Runtime/AdsStatus/AdStatusConsts.cs create mode 100644 Runtime/GuruDebugger/Runtime/AdsStatus/AdStatusConsts.cs.meta create mode 100644 Runtime/GuruDebugger/Runtime/AdsStatus/Data.meta create mode 100644 Runtime/GuruDebugger/Runtime/AdsStatus/Data/AdStatusInfo.cs create mode 100644 Runtime/GuruDebugger/Runtime/AdsStatus/Data/AdStatusInfo.cs.meta create mode 100644 Runtime/GuruDebugger/Runtime/AdsStatus/MVP.meta create mode 100644 Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusModel.cs create mode 100644 Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusModel.cs.meta create mode 100644 Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusMonitorView.cs create mode 100644 Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusMonitorView.cs.meta create mode 100644 Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusPresenter.Ads.cs create mode 100644 Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusPresenter.Ads.cs.meta create mode 100644 Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusPresenter.Factory.cs create mode 100644 Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusPresenter.Factory.cs.meta create mode 100644 Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusPresenter.cs create mode 100644 Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusPresenter.cs.meta create mode 100644 Runtime/GuruDebugger/Runtime/AdsStatus/Resources.meta create mode 100644 Runtime/GuruDebugger/Runtime/AdsStatus/Resources/ui.meta create mode 100644 Runtime/GuruDebugger/Runtime/AdsStatus/Resources/ui/debugger_root.prefab create mode 100644 Runtime/GuruDebugger/Runtime/AdsStatus/Resources/ui/debugger_root.prefab.meta create mode 100644 Runtime/GuruDebugger/Runtime/Debugger.meta create mode 100644 Runtime/GuruDebugger/Runtime/Debugger/Core.meta create mode 100644 Runtime/GuruDebugger/Runtime/Debugger/Core/Debugger.cs create mode 100644 Runtime/GuruDebugger/Runtime/Debugger/Core/Debugger.cs.meta create mode 100644 Runtime/GuruDebugger/Runtime/Debugger/Core/DebuggerConsts.cs create mode 100644 Runtime/GuruDebugger/Runtime/Debugger/Core/DebuggerConsts.cs.meta create mode 100644 Runtime/GuruDebugger/Runtime/Debugger/Core/UIComponent.cs create mode 100644 Runtime/GuruDebugger/Runtime/Debugger/Core/UIComponent.cs.meta create mode 100644 Runtime/GuruDebugger/Runtime/Debugger/UI.meta create mode 100644 Runtime/GuruDebugger/Runtime/Debugger/UI/DebuggerViewRoot.Factory.cs create mode 100644 Runtime/GuruDebugger/Runtime/Debugger/UI/DebuggerViewRoot.Factory.cs.meta create mode 100644 Runtime/GuruDebugger/Runtime/Debugger/UI/DebuggerViewRoot.cs create mode 100644 Runtime/GuruDebugger/Runtime/Debugger/UI/DebuggerViewRoot.cs.meta create mode 100644 Runtime/GuruDebugger/Runtime/Debugger/UI/IVFactory.cs create mode 100644 Runtime/GuruDebugger/Runtime/Debugger/UI/IVFactory.cs.meta create mode 100644 Runtime/GuruDebugger/Runtime/Debugger/UI/UIOptionItem.cs create mode 100644 Runtime/GuruDebugger/Runtime/Debugger/UI/UIOptionItem.cs.meta create mode 100644 Runtime/GuruDebugger/Runtime/Debugger/UI/UITabItem.cs create mode 100644 Runtime/GuruDebugger/Runtime/Debugger/UI/UITabItem.cs.meta create mode 100644 Runtime/GuruDebugger/Runtime/Debugger/UI/VButton.cs create mode 100644 Runtime/GuruDebugger/Runtime/Debugger/UI/VButton.cs.meta create mode 100644 Runtime/GuruDebugger/Runtime/Debugger/UI/VLabel.cs create mode 100644 Runtime/GuruDebugger/Runtime/Debugger/UI/VLabel.cs.meta create mode 100644 Runtime/GuruDebugger/Runtime/Prefab.meta create mode 100644 Runtime/GuruDebugger/Runtime/Prefab/btn_item.prefab create mode 100644 Runtime/GuruDebugger/Runtime/Prefab/btn_item.prefab.meta create mode 100644 Runtime/GuruDebugger/Runtime/Prefab/opt_node_item.prefab create mode 100644 Runtime/GuruDebugger/Runtime/Prefab/opt_node_item.prefab.meta create mode 100644 Runtime/GuruDebugger/Runtime/Prefab/tab_node_item.prefab create mode 100644 Runtime/GuruDebugger/Runtime/Prefab/tab_node_item.prefab.meta create mode 100644 Runtime/GuruDebugger/Runtime/Prefab/v_btn.prefab create mode 100644 Runtime/GuruDebugger/Runtime/Prefab/v_btn.prefab.meta create mode 100644 Runtime/GuruDebugger/Runtime/Prefab/v_label.prefab create mode 100644 Runtime/GuruDebugger/Runtime/Prefab/v_label.prefab.meta create mode 100644 Runtime/GuruDebugger/Runtime/Resources.meta create mode 100644 Runtime/GuruDebugger/Runtime/Resources/ui.meta create mode 100644 Runtime/GuruDebugger/Runtime/Resources/ui/debugger_root.prefab create mode 100644 Runtime/GuruDebugger/Runtime/Resources/ui/debugger_root.prefab.meta create mode 100644 Runtime/GuruDebugger/Samples.meta create mode 100644 Runtime/GuruDebugger/Samples/DebugDemo.cs create mode 100644 Runtime/GuruDebugger/Samples/DebugDemo.cs.meta create mode 100644 Runtime/GuruDebugger/Samples/DebugDemo.unity create mode 100644 Runtime/GuruDebugger/Samples/DebugDemo.unity.meta diff --git a/Editor/BuildTool/AppBuilder.cs b/Editor/BuildTool/AppBuilder.cs index 1706fd0..d2da38d 100644 --- a/Editor/BuildTool/AppBuilder.cs +++ b/Editor/BuildTool/AppBuilder.cs @@ -60,7 +60,7 @@ namespace Guru.Editor #region 构建 Android 接口 /// - /// + /// 构建 Android 包体 /// /// /// diff --git a/Runtime/GuruCore/Runtime/Ads/ADService.cs b/Runtime/GuruCore/Runtime/Ads/ADService.cs index 7f44c17..21fe587 100644 --- a/Runtime/GuruCore/Runtime/Ads/ADService.cs +++ b/Runtime/GuruCore/Runtime/Ads/ADService.cs @@ -117,6 +117,7 @@ namespace Guru { _badsloadStartTime = Time.realtimeSinceStartup; _chanelMax.LoadBannerAD(); + OnBannerStartLoad?.Invoke(_chanelMax.MaxBADSSlotID); } #endregion @@ -148,6 +149,7 @@ namespace Guru private void OnLoadMaxIV() { _iadsLoadStartTime = Time.realtimeSinceStartup; // 更新计时器 _chanelMax.LoadInterstitialAD(); + OnInterstitialStartLoad?.Invoke(_chanelMax.MaxIADSSlotID); } @@ -180,6 +182,7 @@ namespace Guru { _radsLoadStartTime = Time.realtimeSinceStartup; // 更新计时器 _chanelMax.LoadRewardAD(); + OnRewardStartLoad?.Invoke(_chanelMax.MaxRADSSlotID); } diff --git a/Runtime/GuruCore/Runtime/Ads/ADServiceBase.cs b/Runtime/GuruCore/Runtime/Ads/ADServiceBase.cs index 537c116..f1d6f40 100644 --- a/Runtime/GuruCore/Runtime/Ads/ADServiceBase.cs +++ b/Runtime/GuruCore/Runtime/Ads/ADServiceBase.cs @@ -26,11 +26,14 @@ namespace Guru protected Action _onSdkInitReady; + public static Action OnBannerStartLoad; public static Action OnBannerLoaded; + public static Action OnInterstitialStartLoad; public static Action OnInterstitialLoaded; public static Action OnInterstitialFailed; + public static Action OnRewardStartLoad; public static Action OnRewardLoaded; public static Action OnRewardFailed; @@ -545,7 +548,7 @@ namespace Guru if (IsRadsLoading) return; OnLoadRads(); - var id = GetRewardedVideoID(); + var id = GetRewardedID(); Analytics.ADRadsLoad(AdParams.Build(id)); // 上报打点 MaxSdk.LoadRewardedAd(id); } @@ -561,7 +564,7 @@ namespace Guru if (!IsInitialized) return false; - return MaxSdk.IsRewardedAdReady(GetRewardedVideoID()); + return MaxSdk.IsRewardedAdReady(GetRewardedID()); } /// @@ -589,7 +592,7 @@ namespace Guru _rewardAction = rewardAction; _failAction = failAction; _dismissAction = dismissAction; - MaxSdk.ShowRewardedAd(GetRewardedVideoID()); + MaxSdk.ShowRewardedAd(GetRewardedID()); // RequestRewardedAD(); } @@ -684,7 +687,7 @@ namespace Guru #region Ad Settings - protected virtual string GetRewardedVideoID() + protected virtual string GetRewardedID() { return GuruSettings.Instance.ADSetting.GetRewardedVideoID(); } diff --git a/Runtime/GuruCore/Runtime/Ads/ADServiceEvent.cs b/Runtime/GuruCore/Runtime/Ads/ADServiceEvent.cs new file mode 100644 index 0000000..2415add --- /dev/null +++ b/Runtime/GuruCore/Runtime/Ads/ADServiceEvent.cs @@ -0,0 +1,18 @@ +namespace Guru +{ + public static class ADServiceEvent + { + public const string ADSERVICE_READY = "evt_adservice_ready"; + + public const string BADS_LOAD_START = "evt_bads_load_start"; + public const string BADS_LOADED = "evt_bads_loaded"; + public const string BADS_LOAD_FAILED = "evt_bads_load_failed"; + public const string BADS_IMP = "evt_bads_imp"; + + + + + + + } +} \ No newline at end of file diff --git a/Runtime/GuruCore/Runtime/Ads/ADServiceEvent.cs.meta b/Runtime/GuruCore/Runtime/Ads/ADServiceEvent.cs.meta new file mode 100644 index 0000000..a350a9c --- /dev/null +++ b/Runtime/GuruCore/Runtime/Ads/ADServiceEvent.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 48d4ca9d7e6c4393bf13f6ce619145bc +timeCreated: 1714970592 \ No newline at end of file diff --git a/Runtime/GuruCore/Runtime/Ads/Channels/Max/AdChanelMax.cs b/Runtime/GuruCore/Runtime/Ads/Channels/Max/AdChanelMax.cs index 7818a51..5701b84 100644 --- a/Runtime/GuruCore/Runtime/Ads/Channels/Max/AdChanelMax.cs +++ b/Runtime/GuruCore/Runtime/Ads/Channels/Max/AdChanelMax.cs @@ -21,9 +21,9 @@ namespace Guru #region 广告位 // ---------------- Max 广告位ID -------------------- - internal string MaxBannerSlotID => GuruSettings.Instance.ADSetting.GetBannerID(); - internal string MaxIVSlotID => GuruSettings.Instance.ADSetting.GetInterstitialID(); - internal string MaxRVSlotID => GuruSettings.Instance.ADSetting.GetRewardedVideoID(); + internal string MaxBADSSlotID => GuruSettings.Instance.ADSetting.GetBannerID(); + internal string MaxIADSSlotID => GuruSettings.Instance.ADSetting.GetInterstitialID(); + internal string MaxRADSSlotID => GuruSettings.Instance.ADSetting.GetRewardedVideoID(); #endregion @@ -49,11 +49,11 @@ namespace Guru { // Banners are automatically sized to 320x50 on phones and 728x90 on tablets // You may use the utility method `MaxSdkUtils.isTablet()` to help with view sizing adjustments - MaxSdk.CreateBanner(MaxBannerSlotID, MaxSdkBase.BannerPosition.BottomCenter); - MaxSdk.SetBannerExtraParameter(MaxBannerSlotID, "adaptive_banner", "false"); + MaxSdk.CreateBanner(MaxBADSSlotID, MaxSdkBase.BannerPosition.BottomCenter); + MaxSdk.SetBannerExtraParameter(MaxBADSSlotID, "adaptive_banner", "false"); // Set background or background color for banners to be fully functional - MaxSdk.SetBannerBackgroundColor(MaxBannerSlotID, _backColor); - Analytics.ADBadsLoad(AdParams.Build(MaxBannerSlotID)); + MaxSdk.SetBannerBackgroundColor(MaxBADSSlotID, _backColor); + Analytics.ADBadsLoad(AdParams.Build(MaxBADSSlotID)); } public void SetBannerBackColor(string hex) @@ -69,8 +69,8 @@ namespace Guru public bool IsInterstitialRequestOver => true; public void LoadInterstitialAD() { - Analytics.ADIadsLoad(AdParams.Build(MaxIVSlotID)); // 上报打点 - MaxSdk.LoadInterstitial(MaxIVSlotID); + Analytics.ADIadsLoad(AdParams.Build(MaxIADSSlotID)); // 上报打点 + MaxSdk.LoadInterstitial(MaxIADSSlotID); } #endregion @@ -80,8 +80,8 @@ namespace Guru public bool IsRewardRequestOver => true; public void LoadRewardAD() { - Analytics.ADRadsLoad(AdParams.Build(MaxRVSlotID)); // 上报打点 - MaxSdk.LoadRewardedAd(MaxRVSlotID); + Analytics.ADRadsLoad(AdParams.Build(MaxRADSSlotID)); // 上报打点 + MaxSdk.LoadRewardedAd(MaxRADSSlotID); } #endregion diff --git a/Runtime/GuruCore/Runtime/Events.meta b/Runtime/GuruCore/Runtime/Events.meta new file mode 100644 index 0000000..fcce08c --- /dev/null +++ b/Runtime/GuruCore/Runtime/Events.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 31cc00ccd21c4fdc9fb6ea0163677367 +timeCreated: 1714955721 \ No newline at end of file diff --git a/Runtime/GuruCore/Runtime/Events/EventBus.cs b/Runtime/GuruCore/Runtime/Events/EventBus.cs new file mode 100644 index 0000000..ee8aeb1 --- /dev/null +++ b/Runtime/GuruCore/Runtime/Events/EventBus.cs @@ -0,0 +1,327 @@ + +namespace Guru +{ + using UnityEngine; + using System.Collections.Generic; + using System; + + public class EventBus: MonoBehaviour + { + private const string Tag = "[EventBus]"; + private static bool _initOnce = false; + private Dictionary> _normalEvents; + private Dictionary> _mainThreadEvents; + private Queue _mainThreadQueue; + private Queue _mainThreadEventPool; + + private static EventBus _instance; + public static EventBus Instance { + get + { + if (_instance == null) + { + if (GuruSDKCallback.Instance != null) + { + _instance = AttachOnHost(GuruSDKCallback.Instance); // Set to the host object + } + } + return _instance; + } + } + + + + public static EventBus AttachOnHost(GameObject go) + { + var ins = go.AddComponent(); + ins.Init(); + return ins; + } + public static EventBus AttachOnHost(Component component) + { + return component.gameObject.AddComponent(); + } + + + + + + #region API + + public static void Bind(string evtName, Action callback) + { + if (Instance == null) + { + LogE($"{Tag} EventBus is not ready"); + return; + } + + Instance.AddNormalEvent(evtName, callback); + } + + + public static void UnBind(string evtName, Action callback) + { + if (Instance == null) + { + LogE($"{Tag} EventBus is not ready"); + return; + } + + Instance.RemoveNormalEvent(evtName, callback); + } + + + public static void BindOnMainThread(string evtName, Action callback) + { + if (Instance == null) + { + LogE($"{Tag} EventBus is not ready"); + return; + } + + Instance.AddNormalEventOnMainThread(evtName, callback); + } + + + + + public static void UnBindOnMainThread(string evtName, Action callback) + { + if (Instance == null) + { + LogE($"{Tag} EventBus is not ready"); + return; + } + + Instance.RemoveNormalEventOnMainThread(evtName, callback); + } + + public static void Send(string evtName, object evt) + { + if (Instance == null) + { + LogE($"{Tag} EventBus is not ready"); + return; + } + + Instance.FireEvent(evtName, evt); + } + + + + + + #endregion + + + + + + #region Initialize Functions + + private void Init() + { + if (_initOnce) return; + _initOnce = true; + + _normalEvents = new Dictionary>(20); + _mainThreadEvents = new Dictionary>(20); + _mainThreadQueue = new Queue(20); + _mainThreadEventPool = new Queue(20); + } + + private void AddEvent(string evtName, Action callback, ref Dictionary> dict) + { + if (dict == null) dict = new Dictionary>(20); + + if (!IsEventExists(evtName, dict)) + { + dict[evtName] = new List(20); + } + + if (!dict[evtName].Contains(callback)) + { + dict[evtName].Add(callback); + } + + } + + + private void RemoveEvent(string evtName, Action callback, ref Dictionary> dict) + { + + if (dict == null) + { + dict = new Dictionary>(20); + return; + } + + if (IsEventExists(evtName, dict) && dict[evtName].Contains(callback)) + { + dict[evtName].Remove(callback); + } + } + + private bool IsEventExists(string eventName, Dictionary> events) + { + if(events == null) return false; + return events.ContainsKey(eventName); + } + + #endregion + + #region Normal Events + + + private void AddNormalEvent(string evtName, Action callback) + { + AddEvent(evtName, callback, ref _normalEvents); + } + + private void AddNormalEventOnMainThread(string evtName, Action callback) + { + AddEvent(evtName, callback, ref _mainThreadEvents); + } + + private void RemoveNormalEvent(string evtName, Action callback) + { + RemoveEvent(evtName, callback, ref _normalEvents); + } + + private void RemoveNormalEventOnMainThread(string evtName, Action callback) + { + RemoveEvent(evtName, callback, ref _mainThreadEvents); + } + + private void FireEvent(string evtName, object evtObject) + { + // ---------- Normal Events ------------ + if (_normalEvents.TryGetValue(evtName, out var listeners)) + { + int i = 0; + while (i < listeners.Count) + { + listeners[i]?.DynamicInvoke(evtObject); + i++; + } + return; + } + + // ---------- Main Thread Events ------------ + if (IsEventExists(evtName, _mainThreadEvents)) + { + AddEventToMainThread(evtName, evtObject); + return; + } + + // ---------- Send Events Failed ------------ + LogE($"{Tag} EventBus:: Fire event [{evtName}] not found"); + } + + + #endregion + + #region Logger + + + private static void LogI(object msg) + { + UnityEngine.Debug.Log(msg); + } + + private static void LogE(object msg) + { + UnityEngine.Debug.LogError(msg); + } + #endregion + + + #region Mono Lifecycle + + private void Update() + { + ConsumeMainThreadEvent(); // 消费主线程事件 + } + + #endregion + + + + + #region ThreadQueueInfo + + + internal struct MainThreadEvent + { + + public string eventName; + public object eventBody; + + public void Setup(string evtName, object evtBody) + { + eventName = evtName; + eventBody = evtBody; + } + + public void Clear() + { + eventName = null; + eventBody = null; + } + } + + + private MainThreadEvent GetMainThreadEvent(string evtName, object evtBody) + { + MainThreadEvent evt; + if (_mainThreadEventPool != null && _mainThreadEventPool.Count > 0) + { + evt = _mainThreadEventPool.Dequeue(); + } + else + { + evt = new MainThreadEvent(); + } + evt.Setup(evtName, evtBody); + return evt; + } + + + private void AddEventToMainThread(string evtName, object evtBody) + { + if(_mainThreadQueue == null) _mainThreadQueue = new Queue(20); + _mainThreadQueue.Enqueue(GetMainThreadEvent(evtName, evtBody)); + } + + private void SaveMainThreadEvent(MainThreadEvent evt) + { + if (_mainThreadEventPool == null) + { + _mainThreadEventPool = new Queue(20); + } + evt.Clear(); + _mainThreadEventPool.Enqueue(evt); + } + + + + private void ConsumeMainThreadEvent() + { + if (_mainThreadQueue != null && _mainThreadQueue.Count > 0) + { + while (_mainThreadQueue.Count > 0) + { + var evt = _mainThreadQueue.Dequeue(); + FireEvent(evt.eventName, evt.eventBody); + SaveMainThreadEvent(evt); + } + } + } + + + + #endregion + + } +} \ No newline at end of file diff --git a/Runtime/GuruCore/Runtime/Events/EventBus.cs.meta b/Runtime/GuruCore/Runtime/Events/EventBus.cs.meta new file mode 100644 index 0000000..5e38ad5 --- /dev/null +++ b/Runtime/GuruCore/Runtime/Events/EventBus.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 5e386f6917c242d48ba0913b1c2713ce +timeCreated: 1714955737 \ No newline at end of file diff --git a/Runtime/GuruCore/Runtime/GameDefine.cs b/Runtime/GuruCore/Runtime/GameDefine.cs index 71ac2fe..2ecd589 100644 --- a/Runtime/GuruCore/Runtime/GameDefine.cs +++ b/Runtime/GuruCore/Runtime/GameDefine.cs @@ -5,7 +5,7 @@ namespace Guru /// public partial class GameDefine { - public static string CompanyName = "Guru Fun Game Studio"; + public static string CompanyName = "Guru Game"; public const string MACRO_LOG = "ENABLE_LOG"; public const string MACRO_DEBUG = "DEBUG"; public const string MACRO_RELEASE = "RELEASE"; diff --git a/Runtime/GuruDebugger.meta b/Runtime/GuruDebugger.meta new file mode 100644 index 0000000..56335e1 --- /dev/null +++ b/Runtime/GuruDebugger.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d717553eea6bf4338b9f3059be371e71 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruDebugger/README.md b/Runtime/GuruDebugger/README.md new file mode 100644 index 0000000..32975a7 --- /dev/null +++ b/Runtime/GuruDebugger/README.md @@ -0,0 +1,60 @@ +# Guru Debugger 面板 + +Version 1.0.0 + +# 使用方法 + +调用方式, 可直接调用 + +```c# +// 首次调用需要初始化 +Debugger.Init(): + +// TODO: 加入你的Layout初始化方法 + +// 显示 Debugger: +Debuggger.Show(); + +// 关闭回调 +Debugger.OnClose += OnDebuggerClose; + +private void OnDebuggerClose(){ + + // TODO: do sth when debugger is closed +} + +``` + +Layout 初始化 +```c# +// 添加一个条目 +// 一般一个条目的构成为 {tab}/{option} 的方式 + +// 添加一个 Key - Value item +Debugger.Instance.AddOption("Start Info/Test Key", "Test Value"); + +// 添加一个整体可点击的 Item +Debugger.Instance.AddOption("Start Info/Yes, click me", "", () => { + // TODO: the item is a pure button, add click event. +}); + +// 添加一个 Button +Debugger.Instance.AddOption("Start Info/Test Key", "Test Value") + .AddButton("Button", ()=>{ + // TODO: do sth when button is clicked + }); + +// Option 可以添加更多的内容, 但是不建议超过 5 个 +Debugger.Instance.AddOption("Start Info/Test2", "valueof2") + .AddLabel("Sth else to add") + .AddCopyButton(); + + + +``` + + + + + + diff --git a/Runtime/GuruDebugger/README.md.meta b/Runtime/GuruDebugger/README.md.meta new file mode 100644 index 0000000..6a8af8a --- /dev/null +++ b/Runtime/GuruDebugger/README.md.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 48c5db714459493d8d02ecaf89f1c2ac +timeCreated: 1711084921 \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime.meta b/Runtime/GuruDebugger/Runtime.meta new file mode 100644 index 0000000..cca0a1f --- /dev/null +++ b/Runtime/GuruDebugger/Runtime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 036a24160e57d414290c124d76a4a66f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruDebugger/Runtime/AdsStatus.meta b/Runtime/GuruDebugger/Runtime/AdsStatus.meta new file mode 100644 index 0000000..e93118d --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/AdsStatus.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: d58fb9f98adf4830b25ff52a810ffdd6 +timeCreated: 1714471155 \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/AdsStatus/AdStatus.cs b/Runtime/GuruDebugger/Runtime/AdsStatus/AdStatus.cs new file mode 100644 index 0000000..0e8b079 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/AdsStatus/AdStatus.cs @@ -0,0 +1,42 @@ +namespace Guru.Debugger +{ + public class AdStatus + { + + private static AdStatusPresenter _adp; + + private static bool _inited; + + + public static void Install() + { + if (_inited) return; + _inited = true; + _adp = new AdStatusPresenter(); + _adp.Init(); + + } + + + public static void ShowMonitor() + { + if(!_inited) Install(); + + if (_adp != null) + { + _adp.ShowMonitor(); + } + } + + public static void HideMonitor() + { + if(!_inited) Install(); + + if (_adp != null) + { + _adp.HideMonitor(); + } + } + + } +} \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/AdsStatus/AdStatus.cs.meta b/Runtime/GuruDebugger/Runtime/AdsStatus/AdStatus.cs.meta new file mode 100644 index 0000000..201a6ac --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/AdsStatus/AdStatus.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 2d3bb9dff8e44e5c8d76a505ebf0e5c0 +timeCreated: 1714188842 \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/AdsStatus/AdStatusConsts.cs b/Runtime/GuruDebugger/Runtime/AdsStatus/AdStatusConsts.cs new file mode 100644 index 0000000..c18f9df --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/AdsStatus/AdStatusConsts.cs @@ -0,0 +1,14 @@ +namespace Guru.Debugger +{ + public class AdStatusConsts + { + + public static readonly int MaxInfoCount = 20; + public static readonly string ColorGreen = "88FF00"; + public static readonly string ColorRed = "FF0000"; + public static readonly string ColorGray = "747474"; + public static readonly string ColorYellow = "FFE700"; + public static readonly float MonitorStartAlpha = 0.72f; + public static readonly float MonitorStayTime = 5f; + } +} \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/AdsStatus/AdStatusConsts.cs.meta b/Runtime/GuruDebugger/Runtime/AdsStatus/AdStatusConsts.cs.meta new file mode 100644 index 0000000..283ae6f --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/AdsStatus/AdStatusConsts.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 707f290f7f5a40959be9a2e4cc3f7196 +timeCreated: 1714190216 \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/AdsStatus/Data.meta b/Runtime/GuruDebugger/Runtime/AdsStatus/Data.meta new file mode 100644 index 0000000..404d350 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/AdsStatus/Data.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: afeefc6f0b0b4a88b274a24366952bd1 +timeCreated: 1714189118 \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/AdsStatus/Data/AdStatusInfo.cs b/Runtime/GuruDebugger/Runtime/AdsStatus/Data/AdStatusInfo.cs new file mode 100644 index 0000000..152d2d3 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/AdsStatus/Data/AdStatusInfo.cs @@ -0,0 +1,59 @@ + + +namespace Guru.Debugger +{ + using System; + + + /// + /// 广告类型 + /// + public enum AdType + { + Banner, + Interstitial, + Rewarded, + } + + /// + /// 广告状态枚举 + /// + public enum AdStatusType + { + NotReady, + Loading, + Loaded, + LoadFailed, + DisplayFailed, + Closed, + Paid, + Clicked + } + + + /// + /// 广告状态信息 + /// + public class AdStatusInfo + { + public string adUnitId; + public AdType adType; + public AdStatusType status = AdStatusType.NotReady; + public string info; + public DateTime date; + public string network; + public string creativeId; + public double revenue; + public string waterfall; + public string format; + + + public string GetDate() => date.ToString("yy-MM-dd HH:mm:ss"); + + public string ToLogString() + { + return $"[{GetDate()}] {adType}:{status}\tid:{adUnitId}\tname:{format}\tnetwork{network}\trevenue:{revenue}\twaterfall:{waterfall}\tinfo:{info}"; + } + + } +} \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/AdsStatus/Data/AdStatusInfo.cs.meta b/Runtime/GuruDebugger/Runtime/AdsStatus/Data/AdStatusInfo.cs.meta new file mode 100644 index 0000000..c487a04 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/AdsStatus/Data/AdStatusInfo.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: acca1ff8fa8e4b22a42b1e99d6f0da06 +timeCreated: 1714189132 \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/AdsStatus/MVP.meta b/Runtime/GuruDebugger/Runtime/AdsStatus/MVP.meta new file mode 100644 index 0000000..c552d32 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/AdsStatus/MVP.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: a03478ca777c43ce8cbf5e029732621f +timeCreated: 1714189110 \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusModel.cs b/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusModel.cs new file mode 100644 index 0000000..9062f34 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusModel.cs @@ -0,0 +1,68 @@ +using System; + +namespace Guru.Debugger +{ + public class AdStatusModel + { + + + public string monitorInfo; + + + public int bannerTotalCount = 0; + public int bannerSuccessCount = 0; + public int bannerFailCount = 0; + + public int interstitialTotalCount = 0; + public int interstitialSuccessCount = 0; + public int interstitialFailCount = 0; + + public int rewardedTotalCount = 0; + public int rewardedSuccessCount = 0; + public int rewardedFailCount = 0; + + public void AddBannerCount(bool success) + { + bannerTotalCount++; + if (success) + { + bannerSuccessCount++; + } + else + { + bannerFailCount++; + } + + } + + public void AddInterCount(bool success) + { + interstitialTotalCount++; + if (success) + { + interstitialSuccessCount++; + } + else + { + interstitialFailCount++; + } + } + + public void AddRewardCount(bool success) + { + rewardedTotalCount++; + if (success) + { + rewardedSuccessCount++; + } + else + { + rewardedFailCount++; + } + + } + + + + } +} \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusModel.cs.meta b/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusModel.cs.meta new file mode 100644 index 0000000..219cd56 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusModel.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 0d43f5b89b964c17bc59f0e51dbe472b +timeCreated: 1714180020 \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusMonitorView.cs b/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusMonitorView.cs new file mode 100644 index 0000000..3f3129a --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusMonitorView.cs @@ -0,0 +1,111 @@ + +namespace Guru.Debugger +{ + using System; + using UnityEngine.EventSystems; + + using UnityEngine; + using UnityEngine.UI; + using Consts=AdStatusConsts; + + + public class AdStatusMonitorView : MonoBehaviour, IDragHandler, IEndDragHandler, IBeginDragHandler, IPointerClickHandler + { + + public bool Active + { + get => gameObject.activeSelf; + set => gameObject.SetActive(value); + } + + public float Alpha + { + get => _canvasGroup?.alpha ?? 0; + set + { + if(_canvasGroup != null) + _canvasGroup.alpha = value; + } + } + + + [SerializeField] private CanvasGroup _canvasGroup; + [SerializeField] private Text _txtInfo; + private IPointerClickHandler _pointerClickHandlerImplementation; + + + private DateTime _clickStartDate; + private bool _isOnDraging = false; + + public Action OnClickHandler; + public Action OnDestryHandler; + + + // Start is called before the first frame update + void Awake() + { + Alpha = Consts.MonitorStartAlpha; + } + + + + + public void OnDrag(PointerEventData eventData) + { + var delat = eventData.delta; + transform.localPosition += new Vector3(delat.x, delat.y, 0); + } + + + + + public void OnBeginDrag(PointerEventData eventData) + { + Alpha = 1; + // _clickStartDate = DateTime.Now; + _isOnDraging = true; + } + public void OnEndDrag(PointerEventData eventData) + { + // var sp = DateTime.Now - _clickStartDate; + // Debug.Log($"Drag Time: {sp.TotalSeconds}"); + _isOnDraging = false; + OnPanelActivated(); + } + public void OnPointerClick(PointerEventData eventData) + { + if (_isOnDraging) return; + // Debug.Log($"Click Handler delta: {eventData.delta} isMoving: {eventData.IsPointerMoving()}"); + OnClickHandler?.Invoke(); + OnPanelActivated(); + } + + /// + /// 数据刷新 + /// + /// + public void OnUpdateInfo(string info) + { + _txtInfo.text = info; + } + + + + private void OnPanelActivated() + { + Alpha = 1; + CancelInvoke(nameof(OnbResetAlpha)); + Invoke(nameof(OnbResetAlpha), Consts.MonitorStayTime); // 自动置灰 + } + + + private void OnbResetAlpha() + { + if (_canvasGroup == null) return; + Alpha = Consts.MonitorStartAlpha; + } + + } + +} + diff --git a/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusMonitorView.cs.meta b/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusMonitorView.cs.meta new file mode 100644 index 0000000..3cd7376 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusMonitorView.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ed7d7e0d6ce2048c1bacbd901b97c752 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusPresenter.Ads.cs b/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusPresenter.Ads.cs new file mode 100644 index 0000000..b5ee8e2 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusPresenter.Ads.cs @@ -0,0 +1,416 @@ + + +namespace Guru.Debugger +{ + using System; + using System.Collections.Generic; + using System.Text; + using UnityEngine; + using Consts=AdStatusConsts; + + + + public partial class AdStatusPresenter + { + private Queue _bannerInfos; + private Queue _interInfos; + private Queue _rewardInfos; + + private AdStatusInfo _curBadsInfo; + private AdStatusInfo _curIadsInfo; + private AdStatusInfo _curRadsInfo; + + #region InfoContainer + + /// + /// 添加对应的 Info + /// + /// + private void AddBannerInfo(AdStatusInfo info) + { + if (_bannerInfos.Count >= AdStatusConsts.MaxInfoCount) + { + _bannerInfos.Dequeue(); + } + Debug.Log(info.ToLogString()); + _bannerInfos.Enqueue(info); + _curBadsInfo = info; + OnStatueChanged(info); + } + + private void AddInterInfo(AdStatusInfo info) + { + if (_interInfos.Count >= AdStatusConsts.MaxInfoCount) + { + _interInfos.Dequeue(); + } + _interInfos.Enqueue(info); + _curIadsInfo = info; + OnStatueChanged(info); + } + + private void AddRewardInfo(AdStatusInfo info) + { + if (_rewardInfos.Count >= AdStatusConsts.MaxInfoCount) + { + _rewardInfos.Dequeue(); + } + _rewardInfos.Enqueue(info); + _curRadsInfo = info; + OnStatueChanged(info); + } + + + + + private void OnStatueChanged(AdStatusInfo info) + { + _model.monitorInfo = CreateMonitorInfo(); + + if (info != null) + { + int code = 0; + if (info.status == AdStatusType.LoadFailed || info.status == AdStatusType.DisplayFailed) + { + code = -1; + } + else if (info.status == AdStatusType.Loaded) + { + code = 1; + } + + switch (info.adType) + { + case AdType.Banner: + if(code == 1) _model.AddBannerCount(true); + else if(code == -1) _model.AddBannerCount(false); + break; + case AdType.Interstitial: + if(code == 1) _model.AddInterCount(true); + else if(code == -1) _model.AddInterCount(false); + break; + case AdType.Rewarded: + if(code == 1) _model.AddRewardCount(true); + else if(code == -1) _model.AddRewardCount(false); + break; + } + } + + UpdateView(); // 刷新视图 + } + + + private string CreateMonitorInfo() + { + string msg = ""; + bool loaded = false; + + + + StringBuilder sb = new StringBuilder(); + + if (GuruSDK.IsAdsReady) + { + msg = ColoredText("AdService not initialized...", Consts.ColorRed); + return msg; + } + + if (_curBadsInfo == null) + { + msg = $"BADS: {ColoredText("not ready", Consts.ColorRed)}\n"; + } + else + { + + switch (_curBadsInfo.status) + { + case AdStatusType.Loaded: + msg = $"BADS: {ColoredText("loaded", Consts.ColorGreen)}\n\tnetwork: {_curBadsInfo.network}\n\twaterfall: {_curBadsInfo.waterfall}\n"; + break; + case AdStatusType.LoadFailed: + msg = $"BADS: {ColoredText("loading failed", Consts.ColorRed)}\n\tmessage: {_curBadsInfo.info}\n"; + break; + case AdStatusType.DisplayFailed: + msg = $"BADS: {ColoredText("display failed", Consts.ColorRed)}\n\tmessage: {_curBadsInfo.info}\n"; + break; + case AdStatusType.Loading: + msg = $"BADS: {ColoredText("loading...", Consts.ColorYellow)}\n\tformat: {_curBadsInfo.format}\n"; + break; + case AdStatusType.Paid: + msg = $"BADS: {ColoredText("display", Consts.ColorGreen)}\n\tnetwork: {_curIadsInfo.network}\n\trevenue: {_curBadsInfo.revenue}\n"; + break; + case AdStatusType.NotReady: + msg = $"BADS: {ColoredText("not ready", Consts.ColorGray)}\n\t{ColoredText("---", Consts.ColorGray)}\n"; + break; + default: + msg = $"BADS: {ColoredText("other", Consts.ColorGray)}\n\tstatus: {ColoredText($"{_curBadsInfo.status}", Consts.ColorYellow)}\n"; + break; + } + } + sb.Append(msg); + + + if (_curIadsInfo == null) + { + msg = $"IADS: {ColoredText("not ready", Consts.ColorRed)}\n"; + } + else + { + switch (_curIadsInfo.status) + { + case AdStatusType.Loaded: + msg = $"IADS: {ColoredText("loaded", Consts.ColorGreen)}\n\tnetwork: {_curIadsInfo.network}\n\twaterfall: {_curBadsInfo.waterfall}\n"; + break; + case AdStatusType.LoadFailed: + msg = $"IADS: {ColoredText("loading failed", Consts.ColorRed)}\n\tmessage: {_curIadsInfo.info}\n"; + break; + case AdStatusType.DisplayFailed: + msg = $"IADS: {ColoredText("display failed", Consts.ColorRed)}\n\tmessage: {_curIadsInfo.info}\n"; + break; + case AdStatusType.Loading: + msg = $"IADS: {ColoredText("loading...", Consts.ColorYellow)}\n\tformat: {_curIadsInfo.format}\n"; + break; + case AdStatusType.Paid: + msg = $"IADS: {ColoredText("get revenue", Consts.ColorGreen)}\n\trevenue: {_curIadsInfo.revenue}\n"; + break; + case AdStatusType.NotReady: + msg = $"IADS: {ColoredText("not ready", Consts.ColorGray)}\n\t{ColoredText("---", Consts.ColorGray)}\n"; + break; + default: + msg = $"IADS: {ColoredText("other", Consts.ColorGray)}\n\tstatus: {ColoredText($"{_curIadsInfo.status}", Consts.ColorYellow)}\n"; + break; + } + } + sb.Append(msg); + + + if (_curRadsInfo == null) + { + msg = $"RADS: {ColoredText("not ready", Consts.ColorRed)}\n"; + } + else + { + switch (_curRadsInfo.status) + { + case AdStatusType.Loaded: + msg = $"RADS: {ColoredText("loaded", Consts.ColorGreen)}\n\tnetwork: {_curRadsInfo.network}\n\twaterfall: {_curRadsInfo.waterfall}\n"; + break; + case AdStatusType.LoadFailed: + msg = $"RADS: {ColoredText("loading failed", Consts.ColorRed)}\n\tmessage: {_curRadsInfo.info}\n"; + break; + case AdStatusType.DisplayFailed: + msg = $"RADS: {ColoredText("display failed", Consts.ColorRed)}\n\tmessage: {_curRadsInfo.info}\n"; + break; + case AdStatusType.Loading: + msg = $"RADS: {ColoredText("loading...", Consts.ColorYellow)}\n\tformat: {_curRadsInfo.format}\n"; + break; + case AdStatusType.Paid: + msg = $"RADS: {ColoredText("get revenue", Consts.ColorGreen)}\n\trevenue: {_curRadsInfo.revenue}\n"; + break; + case AdStatusType.NotReady: + msg = $"RADS: {ColoredText("not ready", Consts.ColorGray)}\n\t{ColoredText("---", Consts.ColorGray)}\n"; + break; + default: + msg = $"RADS: {ColoredText("other", Consts.ColorGray)}\n\tstatus: {ColoredText($"{_curRadsInfo.status}", Consts.ColorYellow)}\n"; + break; + } + } + sb.Append(msg); + + + return sb.ToString(); + } + + + private string ColoredText(string content, string hexColor = "000000") + { + return $"{content}"; + } + + + #endregion + + + #region AppLovin + + private void InitAdsCallbacks() + { + AddCallbacks(); + + _bannerInfos = new Queue(AdStatusConsts.MaxInfoCount); + _interInfos = new Queue(AdStatusConsts.MaxInfoCount); + _rewardInfos = new Queue(AdStatusConsts.MaxInfoCount); + } + + + + + private void AddCallbacks() + { + //----------------- Banner ----------------- + GuruSDK.Callbacks.Ads.OnBannerADStartLoad += OnBannerAdLoadEvent; + MaxSdkCallbacks.Banner.OnAdLoadedEvent += OnBannerAdLoadedEvent; + MaxSdkCallbacks.Banner.OnAdLoadFailedEvent += OnBannerAdLoadFailEvent; + MaxSdkCallbacks.Banner.OnAdRevenuePaidEvent += OnBannerAdRevenuePaidEvent; + MaxSdkCallbacks.Banner.OnAdClickedEvent += OnBannerAdClickedEvent; + //----------------- Interstitials ----------------- + GuruSDK.Callbacks.Ads.OnInterstitialADStartLoad += OnInterAdLoadEvent; + MaxSdkCallbacks.Interstitial.OnAdLoadedEvent += OnInterAdLoadedEvent; + MaxSdkCallbacks.Interstitial.OnAdLoadFailedEvent += OnInterAdLoadFailEvent; + MaxSdkCallbacks.Interstitial.OnAdDisplayFailedEvent += OnInterAdDisplayFailEvent; + MaxSdkCallbacks.Interstitial.OnAdRevenuePaidEvent += OnInterAdRevenuePaidEvent; + MaxSdkCallbacks.Interstitial.OnAdClickedEvent += OnInterAdClickedEvent; + MaxSdkCallbacks.Interstitial.OnAdHiddenEvent += OnInterAdHiddenEvent; + //----------------- Reward ----------------- + Guru.GuruSDK.Callbacks.Ads.OnRewardedADStartLoad += OnRewardedStartLoad; + MaxSdkCallbacks.Rewarded.OnAdLoadedEvent += OnRewardAdLoadedEvent; + MaxSdkCallbacks.Rewarded.OnAdLoadFailedEvent += OnRewardAdLoadFailEvent; + MaxSdkCallbacks.Rewarded.OnAdDisplayFailedEvent += OnRewardAdDisplayFailEvent; + MaxSdkCallbacks.Rewarded.OnAdRevenuePaidEvent += OnRewardAdRevenuePaidEvent; + MaxSdkCallbacks.Rewarded.OnAdClickedEvent += OnRewardAdClickedEvent; + MaxSdkCallbacks.Rewarded.OnAdHiddenEvent += OnRewardAdHiddenEvent; + + + } + + + + + //-------------- Banner ------------------ + private void OnBannerAdLoadEvent(string adUnitId) + { + AddBannerInfo(CreateLoadingInfo(adUnitId, AdType.Banner)); + } + + private void OnBannerAdLoadedEvent(string adUnitId, MaxSdkBase.AdInfo adInfo) + { + var waterfall = adInfo.WaterfallInfo?.Name ?? ""; + AddBannerInfo(CreateLoadedInfo(adUnitId, AdType.Banner, adInfo.NetworkName, adInfo.AdFormat, waterfall)); + } + + private void OnBannerAdLoadFailEvent(string adUnitId, MaxSdkBase.ErrorInfo errorInfo) + { + var waterfall = errorInfo.WaterfallInfo?.Name ?? ""; + var format = "BADS"; + var msg = $"[{errorInfo.MediatedNetworkErrorCode}] {errorInfo.MediatedNetworkErrorMessage}"; + var network = "error"; + AddBannerInfo(CreateFailInfo(adUnitId, AdType.Banner, network, format, waterfall, msg)); + } + + private void OnBannerAdClickedEvent(string adUnitId, MaxSdkBase.AdInfo adInfo) + { + var waterfall = adInfo.WaterfallInfo?.Name ?? ""; + AddBannerInfo(CreateClosedInfo(adUnitId, AdType.Banner, adInfo.NetworkName, adInfo.AdFormat, waterfall)); + } + + private void OnBannerAdRevenuePaidEvent(string adUnitId, MaxSdkBase.AdInfo adInfo) + { + var waterfall = adInfo.WaterfallInfo?.Name ?? ""; + AddBannerInfo(CreatePaidInfo(adUnitId, AdType.Banner, adInfo.Revenue, adInfo.NetworkName, adInfo.AdFormat, waterfall)); + } + + + //----------------- Interstitial ----------------- + private void OnInterAdLoadEvent(string adUnitId) + { + AddInterInfo(CreateLoadingInfo(adUnitId, AdType.Interstitial)); + } + + private void OnInterAdHiddenEvent(string adUnitId, MaxSdkBase.AdInfo adInfo) + { + var waterfall = adInfo.WaterfallInfo?.Name ?? ""; + AddInterInfo(CreateClosedInfo(adUnitId, AdType.Interstitial, adInfo.NetworkName, adInfo.AdFormat, waterfall)); + } + + private void OnInterAdClickedEvent(string adUnitId, MaxSdkBase.AdInfo adInfo) + { + var waterfall = adInfo.WaterfallInfo?.Name ?? ""; + AddInterInfo(CreateClickedInfo(adUnitId, AdType.Interstitial, adInfo.NetworkName, adInfo.AdFormat, waterfall)); + } + + private void OnInterAdRevenuePaidEvent(string adUnitId, MaxSdkBase.AdInfo adInfo) + { + var waterfall = adInfo.WaterfallInfo?.Name ?? ""; + AddInterInfo(CreatePaidInfo(adUnitId, AdType.Interstitial, adInfo.Revenue, adInfo.NetworkName, adInfo.AdFormat, waterfall)); + } + + private void OnInterAdLoadFailEvent(string adUnitId, MaxSdkBase.ErrorInfo errorInfo) + { + var waterfall = errorInfo.WaterfallInfo?.Name ?? ""; + var format = "IADS"; + var msg = $"[{errorInfo.MediatedNetworkErrorCode}] {errorInfo.MediatedNetworkErrorMessage}"; + var network = "error"; + AddInterInfo(CreateFailInfo(adUnitId, AdType.Interstitial, network, format, waterfall, msg)); + } + + private void OnInterAdDisplayFailEvent(string adUnitId, MaxSdkBase.ErrorInfo errorInfo, MaxSdkBase.AdInfo adInfo) + { + var waterfall = errorInfo.WaterfallInfo?.Name ?? ""; + var format = adInfo.AdFormat; + var msg = $"[{errorInfo.MediatedNetworkErrorCode}] {errorInfo.MediatedNetworkErrorMessage}"; + var network = adInfo.NetworkName; + AddInterInfo(CreateFailInfo(adUnitId, AdType.Interstitial, network, format, waterfall, msg, true)); + } + + private void OnInterAdLoadedEvent(string adUnitId, MaxSdkBase.AdInfo adInfo) + { + var waterfall = adInfo.WaterfallInfo?.Name ?? ""; + AddInterInfo(CreateLoadedInfo(adUnitId, AdType.Interstitial, adInfo.NetworkName, adInfo.AdFormat, waterfall)); + } + + //----------------- Reward ----------------- + private void OnRewardedStartLoad(string adUnitId) + { + AddRewardInfo(CreateLoadingInfo(adUnitId, AdType.Rewarded)); + } + + private void OnRewardAdHiddenEvent(string adUnitId, MaxSdkBase.AdInfo adInfo) + { + var waterfall = adInfo.WaterfallInfo?.Name ?? ""; + AddRewardInfo(CreateClosedInfo(adUnitId, AdType.Rewarded, adInfo.NetworkName, adInfo.AdFormat, waterfall)); + } + + private void OnRewardAdClickedEvent(string adUnitId, MaxSdkBase.AdInfo adInfo) + { + var waterfall = adInfo.WaterfallInfo?.Name ?? ""; + AddRewardInfo(CreateClickedInfo(adUnitId, AdType.Rewarded, adInfo.NetworkName, adInfo.AdFormat, waterfall)); + } + + private void OnRewardAdRevenuePaidEvent(string adUnitId, MaxSdkBase.AdInfo adInfo) + { + var waterfall = adInfo.WaterfallInfo?.Name ?? ""; + AddRewardInfo(CreatePaidInfo(adUnitId, AdType.Rewarded, adInfo.Revenue, adInfo.NetworkName, adInfo.AdFormat, waterfall)); + } + + private void OnRewardAdLoadFailEvent(string adUnitId, MaxSdkBase.ErrorInfo errorInfo) + { + var waterfall = errorInfo.WaterfallInfo?.Name ?? ""; + var format = "IADS"; + var msg = $"[{errorInfo.MediatedNetworkErrorCode}] {errorInfo.MediatedNetworkErrorMessage}"; + var network = "error"; + AddRewardInfo(CreateFailInfo(adUnitId, AdType.Rewarded, network, format, waterfall, msg)); + } + + private void OnRewardAdDisplayFailEvent(string adUnitId, MaxSdkBase.ErrorInfo errorInfo, MaxSdkBase.AdInfo adInfo) + { + var waterfall = errorInfo.WaterfallInfo?.Name ?? ""; + var format = adInfo.AdFormat; + var msg = $"[{errorInfo.MediatedNetworkErrorCode}] {errorInfo.MediatedNetworkErrorMessage}"; + var network = adInfo.NetworkName; + AddRewardInfo(CreateFailInfo(adUnitId, AdType.Rewarded, network, format, waterfall, msg, true)); + } + + private void OnRewardAdLoadedEvent(string adUnitId, MaxSdkBase.AdInfo adInfo) + { + var waterfall = adInfo.WaterfallInfo?.Name ?? ""; + AddRewardInfo(CreateLoadedInfo(adUnitId, AdType.Rewarded, adInfo.NetworkName, adInfo.AdFormat, waterfall)); + } + + + + + + #endregion + + } +} \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusPresenter.Ads.cs.meta b/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusPresenter.Ads.cs.meta new file mode 100644 index 0000000..b11ebb2 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusPresenter.Ads.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 17f2898f0a96448f91b71112d7bf19dc +timeCreated: 1714190118 \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusPresenter.Factory.cs b/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusPresenter.Factory.cs new file mode 100644 index 0000000..31d2df8 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusPresenter.Factory.cs @@ -0,0 +1,101 @@ +namespace Guru.Debugger +{ + using System; + + + + public partial class AdStatusPresenter + { + + internal static AdStatusInfo CreateLoadingInfo(string adUnitId, AdType adType) + { + return new AdStatusInfo + { + adUnitId = adUnitId, + adType = adType, + status = AdStatusType.Loading, + date = DateTime.Now, + }; + } + internal static AdStatusInfo CreateLoadedInfo(string adUnitId, AdType adType, string network, string format, string waterfall) + { + return new AdStatusInfo + { + adUnitId = adUnitId, + adType = adType, + status = AdStatusType.Loaded, + date = DateTime.Now, + network = network, + format = format, + waterfall = waterfall + }; + } + + internal static AdStatusInfo CreateFailInfo(string adUnitId, AdType adType, string network, string format, string waterfall, string message = "", bool disPlayError = false) + { + if (string.IsNullOrEmpty(network)) network = "unknown"; + return new AdStatusInfo + { + adUnitId = adUnitId, + adType = adType, + status = disPlayError ? AdStatusType.LoadFailed : AdStatusType.DisplayFailed, + date = DateTime.Now, + info = message, + network = network, + format = format, + waterfall = waterfall + }; + } + + + internal static AdStatusInfo CreateClosedInfo(string adUnitId, AdType adType, string network, string format, string waterfall) + { + if (string.IsNullOrEmpty(network)) network = "unknown"; + return new AdStatusInfo + { + adUnitId = adUnitId, + adType = adType, + status = AdStatusType.Closed, + date = DateTime.Now, + network = network, + format = format, + waterfall = waterfall + }; + } + + + + internal static AdStatusInfo CreatePaidInfo(string adUnitId, AdType adType, double revenue, string network, string format, string waterfall) + { + if (string.IsNullOrEmpty(network)) network = "unknown"; + return new AdStatusInfo + { + adUnitId = adUnitId, + adType = adType, + status = AdStatusType.Paid, + date = DateTime.Now, + revenue = revenue, + network = network, + format = format, + waterfall = waterfall + }; + } + + + internal static AdStatusInfo CreateClickedInfo(string adUnitId, AdType adType, string network, string format, string waterfall) + { + if (string.IsNullOrEmpty(network)) network = "unknown"; + return new AdStatusInfo + { + adUnitId = adUnitId, + adType = adType, + status = AdStatusType.Clicked, + date = DateTime.Now, + network = network, + format = format, + waterfall = waterfall + }; + } + + } +} \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusPresenter.Factory.cs.meta b/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusPresenter.Factory.cs.meta new file mode 100644 index 0000000..ba3ad94 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusPresenter.Factory.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 70de9f517f574b00ad3b5e88933bba06 +timeCreated: 1714189561 \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusPresenter.cs b/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusPresenter.cs new file mode 100644 index 0000000..4f9403c --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusPresenter.cs @@ -0,0 +1,81 @@ +using UnityEngine; + +namespace Guru.Debugger +{ + public partial class AdStatusPresenter + { + const string K_DEBUGGER_ROOT = "ui/debugger_root"; + + + private AdStatusMonitorView _monitor; + + private AdStatusModel _model; + + + + + + public void Init() + { + _model = new AdStatusModel(); + + LoadDebuggerRoot(); + InitAdsCallbacks(); + + } + + /// + /// Debugger Root + /// + private void LoadDebuggerRoot() + { + var prefab = Resources.Load(K_DEBUGGER_ROOT); + + if (prefab != null) + { + var go = GameObject.Instantiate(prefab); + go.name = "__debugger_root__"; + + var t = go.transform.Find("root/ads_status_monitor"); + if (t != null) + { + _monitor = t.GetComponent(); + if (_monitor != null) + { + _monitor.OnUpdateInfo("ads is on loading..."); + _monitor.Active = false; + } + } + + + } + } + + + + private void UpdateView() + { + if (_model == null) return; + + _monitor.OnUpdateInfo(_model.monitorInfo); + } + + + internal void ShowMonitor() + { + if (_monitor == null) return; + _monitor.Active = true; + } + internal void HideMonitor() + { + if (_monitor == null) return; + _monitor.Active = false; + } + } +} + + + + + + \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusPresenter.cs.meta b/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusPresenter.cs.meta new file mode 100644 index 0000000..dd6c75d --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusPresenter.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 85c881cbd1224a23a1e305a13602fe0a +timeCreated: 1714180008 \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/AdsStatus/Resources.meta b/Runtime/GuruDebugger/Runtime/AdsStatus/Resources.meta new file mode 100644 index 0000000..e3bf90a --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/AdsStatus/Resources.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: d0d21acdf9214513b93ebcc7b58f2c8d +timeCreated: 1714136951 \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/AdsStatus/Resources/ui.meta b/Runtime/GuruDebugger/Runtime/AdsStatus/Resources/ui.meta new file mode 100644 index 0000000..f94bb59 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/AdsStatus/Resources/ui.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 326887151680842e4ad2390b0dfa1953 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruDebugger/Runtime/AdsStatus/Resources/ui/debugger_root.prefab b/Runtime/GuruDebugger/Runtime/AdsStatus/Resources/ui/debugger_root.prefab new file mode 100644 index 0000000..005a5b5 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/AdsStatus/Resources/ui/debugger_root.prefab @@ -0,0 +1,331 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &5150702560827386885 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5150702560827386906} + m_Layer: 5 + m_Name: root + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5150702560827386906 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5150702560827386885} + m_LocalRotation: {x: 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: 5150702562168738941} + m_Father: {fileID: 5150702561338006477} + 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!1 &5150702561338006473 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5150702561338006477} + - component: {fileID: 5150702561338006476} + - component: {fileID: 5150702561338006479} + - component: {fileID: 5150702561338006478} + m_Layer: 5 + m_Name: debugger_root + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5150702561338006477 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5150702561338006473} + 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: 5150702560827386906} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!223 &5150702561338006476 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5150702561338006473} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 2000 + m_TargetDisplay: 0 +--- !u!114 &5150702561338006479 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5150702561338006473} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 1080, y: 2048} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!114 &5150702561338006478 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5150702561338006473} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!1 &5150702562168738940 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5150702562168738941} + - component: {fileID: 5150702562168738931} + - component: {fileID: 5150702562168738930} + - component: {fileID: 6987031650776014463} + - component: {fileID: 5150702562168738928} + m_Layer: 5 + m_Name: ads_status_monitor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5150702562168738941 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5150702562168738940} + m_LocalRotation: {x: 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: 5150702562590427462} + m_Father: {fileID: 5150702560827386906} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: -249, y: 378} + m_SizeDelta: {x: 480, y: 320} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5150702562168738931 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5150702562168738940} + m_CullTransparentMesh: 1 +--- !u!114 &5150702562168738930 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5150702562168738940} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.8627451} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!225 &6987031650776014463 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5150702562168738940} + m_Enabled: 1 + m_Alpha: 0.8 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!114 &5150702562168738928 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5150702562168738940} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ed7d7e0d6ce2048c1bacbd901b97c752, type: 3} + m_Name: + m_EditorClassIdentifier: + _canvasGroup: {fileID: 6987031650776014463} + _txtInfo: {fileID: 5150702562590427463} +--- !u!1 &5150702562590427457 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5150702562590427462} + - component: {fileID: 5150702562590427460} + - component: {fileID: 5150702562590427463} + m_Layer: 5 + m_Name: txt_info + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5150702562590427462 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5150702562590427457} + m_LocalRotation: {x: -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: 5150702562168738941} + 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!222 &5150702562590427460 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5150702562590427457} + m_CullTransparentMesh: 1 +--- !u!114 &5150702562590427463 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5150702562590427457} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: '11111 + + 22222 + + 33333 + + 44444 + + 55555 + + 66666' diff --git a/Runtime/GuruDebugger/Runtime/AdsStatus/Resources/ui/debugger_root.prefab.meta b/Runtime/GuruDebugger/Runtime/AdsStatus/Resources/ui/debugger_root.prefab.meta new file mode 100644 index 0000000..0a70fac --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/AdsStatus/Resources/ui/debugger_root.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4332e3ea47cf5426c90ffcb6817292e6 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruDebugger/Runtime/Debugger.meta b/Runtime/GuruDebugger/Runtime/Debugger.meta new file mode 100644 index 0000000..98111e1 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Debugger.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f78334aec158543b2b8fc6157f69764b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruDebugger/Runtime/Debugger/Core.meta b/Runtime/GuruDebugger/Runtime/Debugger/Core.meta new file mode 100644 index 0000000..86f5ccf --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Debugger/Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: be43df6b6918346819c7938339e0fb93 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruDebugger/Runtime/Debugger/Core/Debugger.cs b/Runtime/GuruDebugger/Runtime/Debugger/Core/Debugger.cs new file mode 100644 index 0000000..6153469 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Debugger/Core/Debugger.cs @@ -0,0 +1,291 @@ + + +namespace Guru.Debugger +{ + using System; + using UnityEngine; + using UnityEngine.UI; + using G = GlobalVars; + using System.Collections.Generic; + using System.Linq; + + + public class GuruDebugger + { + public const string Version = "1.0.0"; + private static bool _initOnce = false; + private static GuruDebugger _instance; + public static GuruDebugger Instance + { + get + { + if (_instance == null) + { + Init(); + } + return _instance; + } + } + + public static event Action OnClosed + { + add + { + if (_onViewClosed == null) + { + _onViewClosed = value; + } + else + { + _onViewClosed += value; + } + } + + remove + { + if (_onViewClosed != null) + { + _onViewClosed -= value; + } + } + } + + private static Action _onViewClosed; + + private DebuggerViewRoot _viewRoot; + private Dictionary> optionDicts; + private string _curTabName; + + public static void Init() + { + if (_instance == null) _initOnce = false; + + if (_initOnce) return; + _initOnce = true; + _instance = new GuruDebugger(); + _instance.StartService(); + } + + private void StartService() + { + _viewRoot = DebuggerViewRoot.Instance; + optionDicts = new Dictionary>(5); + G.Events.OnUIEvent += OnUIEvent; + } + + private void OnUIEvent(string evt, object data) + { + switch (evt) + { + case G.Events.EventTabClicked: + OnSelectTab(data.ToString()); + break; + case G.Events.EventViewClosed: + optionDicts?.Clear(); + _onViewClosed?.Invoke(); + break; + } + } + + + #region UI Layout + + public OptionLayout AddOption(string uri, string content = "", Action clickHandler = null) + { + string tabName = G.Consts.DefaultTabName; + string optName = G.Consts.DefaultOptionName; + if (uri.Contains("/")) + { + var names = uri.Split('/'); + if (names.Length > 0) + { + tabName = names[0]; + } + if(names.Length > 1) optName = names[1]; + } + + if (!optionDicts.ContainsKey(tabName)) + { + optionDicts[tabName] = new List(10); + } + + OptionLayout opt = new OptionLayout(); + opt.tabName = tabName; + opt.optName = optName; + opt.content = content; + opt.selfClickHandler = clickHandler; + + AddOptionLayout(tabName, opt); + + return opt; + } + + private void AddOptionLayout(string tabName, OptionLayout layout) + { + if (!optionDicts.ContainsKey(tabName)) + { + optionDicts[tabName] = new List(20); + } + + optionDicts[tabName].Add(layout); + } + + + public void ShowPage(string tabName = "") + { + if (string.IsNullOrEmpty(tabName) + && optionDicts != null && optionDicts.Count > 0) + { + tabName = optionDicts.Keys.First(); + } + + if (!string.IsNullOrEmpty(tabName)) + { + RenderPage(tabName); + } + } + + /// + /// 渲染页面 + /// + /// + private void RenderPage(string tabName) + { + if (string.IsNullOrEmpty(tabName)) return; + + _viewRoot.Show(); + _viewRoot.RefreshTabs(tabName, optionDicts.Keys.ToList()); + _viewRoot.CleanOptions(); + if (optionDicts.TryGetValue(tabName, out var opts)) + { + OptionLayout ol; + UIOptionItem ui; + for (int i = 0; i < opts.Count; i++) + { + ol = opts[i]; + ui = _viewRoot.RegisterOption(ol.optName, ol.content); + + if (ol.selfClickHandler != null) + { + var btnName = ol.content; + if (string.IsNullOrEmpty(btnName)) btnName = ol.optName; + var btn = _viewRoot.AddOptionButton(ui, btnName, ol.selfClickHandler); + ui.Clickable = true; + continue; + } + + foreach (var item in ol.items) + { + switch (item.type) + { + case "button": + var btn = _viewRoot.AddOptionButton(ui, item.name, item.clickHandler); + if (!item.size.Equals(Vector2.zero)) btn.Size = item.size; + break; + + case "label": + var lb = _viewRoot.AddOptionLabel(ui, item.name, item.align); + if (!item.size.Equals(Vector2.zero)) lb.Size = item.size; + break; + } + } + } + } + else + { + Debug.LogError($"{tabName} not found!"); + } + + } + + + private void OnSelectTab(string tabName) + { + if (_curTabName == tabName) return; + Instance.ShowPage(tabName); + } + + #endregion + + #region Display + + public static void Show(string tabName = "") + { + Instance.ShowPage(tabName); + } + + public static void Hide() => Instance._viewRoot.Hide(); + + #endregion + + #region DebuggerOption + + public class OptionLayout + { + public string optName; + public string content; + public string tabName; + public Action selfClickHandler; + + internal List items; + + + public OptionLayout() + { + items = new List(10); + } + + + public OptionLayout AddLabel(string labelName) + { + items.Add(new OptionItemLayout() + { + name = labelName, + type = "label", + }); + return this; + } + + public OptionLayout AddButton(string btnName, Action onClick) + { + items.Add(new OptionItemLayout() + { + name = btnName, + type = "button", + clickHandler = onClick + }); + return this; + } + } + + internal class OptionItemLayout + { + public string type; + public Action clickHandler; + public string name; + public string content; + public TextAnchor align = TextAnchor.MiddleCenter; + public Vector2 size = Vector2.zero; + } + + #endregion + + } + + + public static class OptionLayoutExtension + { + public static GuruDebugger.OptionLayout AddCopyButton(this GuruDebugger.OptionLayout layout, Action onClick = null) + { + layout.AddButton("Copy", ()=> + { + GUIUtility.systemCopyBuffer = layout.content; + onClick?.Invoke(); + }); + return layout; + } + } + + + +} \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/Debugger/Core/Debugger.cs.meta b/Runtime/GuruDebugger/Runtime/Debugger/Core/Debugger.cs.meta new file mode 100644 index 0000000..2988732 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Debugger/Core/Debugger.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: f5ccddaa61334c748afe7c39cf8e11b7 +timeCreated: 1711014134 \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/Debugger/Core/DebuggerConsts.cs b/Runtime/GuruDebugger/Runtime/Debugger/Core/DebuggerConsts.cs new file mode 100644 index 0000000..d246bec --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Debugger/Core/DebuggerConsts.cs @@ -0,0 +1,34 @@ + + +namespace Guru.Debugger +{ + using System; + using UnityEngine; + + public static class GlobalVars + { + + public class Events + { + public const string EventTabClicked = "evt_tab_clicked"; + public const string EventViewClosed = "evt_view_closed"; + + public static Action OnUIEvent = (e, o) => { }; + } + + + public class Consts + { + public const string DefaultTabName = "Tab"; + public const string DefaultOptionName = "Opt"; + } + + public class Colors + { + public static Color Gray = new Color(1,1,1, 0.12f); + public static Color Gray2 = new Color(1,1,1, 0.036f); + public static Color LightGreen = new Color(0.02f,1,1, 0.788f); + } + + } +} \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/Debugger/Core/DebuggerConsts.cs.meta b/Runtime/GuruDebugger/Runtime/Debugger/Core/DebuggerConsts.cs.meta new file mode 100644 index 0000000..4fa07c9 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Debugger/Core/DebuggerConsts.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 1f8d5969a496489eab759e7ff15a9cdc +timeCreated: 1711021436 \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/Debugger/Core/UIComponent.cs b/Runtime/GuruDebugger/Runtime/Debugger/Core/UIComponent.cs new file mode 100644 index 0000000..7b9e588 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Debugger/Core/UIComponent.cs @@ -0,0 +1,57 @@ +using System; +using UnityEngine; + +namespace Guru.Debugger +{ + public class UIComponent: MonoBehaviour + { + + public virtual long GID { get; protected set; } + public virtual string ID => $"{GID}"; + + public Transform Parent + { + get => transform.parent; + set + { + transform.SetParent(value); + transform.localPosition = Vector3.zero; + } + } + + public Vector2 Size + { + get => _rectTransform.sizeDelta; + set => _rectTransform.sizeDelta = value; + } + + + public bool Active + { + get => gameObject.activeSelf; + set => gameObject.SetActive(value); + } + + protected RectTransform _rectTransform; + private void Awake() + { + _rectTransform = gameObject.GetComponent(); + + OnCreated(); + } + + protected virtual void OnCreated() + { + + } + + /// + /// 刷新UI + /// + public virtual void Refresh() + { + + } + + } +} \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/Debugger/Core/UIComponent.cs.meta b/Runtime/GuruDebugger/Runtime/Debugger/Core/UIComponent.cs.meta new file mode 100644 index 0000000..f07c1eb --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Debugger/Core/UIComponent.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: c65140f21e494b6fa50779248643af52 +timeCreated: 1711063080 \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/Debugger/UI.meta b/Runtime/GuruDebugger/Runtime/Debugger/UI.meta new file mode 100644 index 0000000..a7e3944 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Debugger/UI.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 4351260f681b42d9851e353f24f3b05a +timeCreated: 1711018597 \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/Debugger/UI/DebuggerViewRoot.Factory.cs b/Runtime/GuruDebugger/Runtime/Debugger/UI/DebuggerViewRoot.Factory.cs new file mode 100644 index 0000000..960f5f4 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Debugger/UI/DebuggerViewRoot.Factory.cs @@ -0,0 +1,221 @@ + + +using System.Collections.Generic; + +namespace Guru.Debugger +{ + using System; + using UnityEngine; + using G = GlobalVars; + + + public partial class DebuggerViewRoot + { + + [SerializeField] private UITabItem _tabPrefab; + [SerializeField] private UIOptionItem _optPrefab; + [SerializeField] private VButton _btnPrefab; + [SerializeField] private VLabel _labelPrefab; + + private Queue _tabPools; + private Queue _optPools; + + private List _displayedTabs; + private List _displayedOptions; + + private long _tabIds = 0; + private long _optIds = 0; + private long _btnIds = 0; + private long _lbIds = 0; + + private void InitFactory() + { + _tabPools = new Queue(10); + _optPools = new Queue(20); + + _tabPrefab.Parent = _binNode; + _optPrefab.Parent = _binNode; + + + _displayedTabs = new List(10); + _displayedOptions = new List(20); + } + + #region Tabs + + public UITabItem RegisterTab(string tabNam) + { + var tab = GetTab(tabNam); + _displayedTabs.Add(tab); + return tab; + } + + + + public UITabItem BuildTab(string tabName) + { + var go = Instantiate(_tabPrefab.gameObject, _tabContent); + go.SetActive(true); + var tab = go.GetComponent(); + tab.InitWithData(_tabIds, tabName); + tab.OnRecycle = OnTabRecycle; + tab.OnClicked = OnTabClicked; + _tabIds++; + return tab; + } + + private void OnTabClicked(string tabName) + { + G.Events.OnUIEvent?.Invoke(G.Events.EventTabClicked, tabName); + } + + private void OnTabRecycle(UITabItem tab) + { + _displayedTabs.Remove(tab); + tab.Parent = _binNode; + tab.transform.localPosition = Vector3.zero; + _tabPools.Enqueue(tab); + } + + + private UITabItem GetTab(string tabName) + { + if (_tabPools.Count > 0) + { + var tab = _tabPools.Dequeue(); + tab.Label = tabName; + tab.Parent = _tabContent; + return tab; + } + return BuildTab(tabName); + } + + #endregion + + #region Options + + + public UIOptionItem RegisterOption(string optName, string content = "") + { + var opt = GetOption(optName); + opt.Content = content; + opt.Refresh(); + _displayedOptions.Add(opt); + return opt; + } + + + + public UIOptionItem BuildOption(string optName) + { + var go = Instantiate(_optPrefab.gameObject, _optContent); + go.SetActive(true); + var opt = go.GetComponent(); + opt.InitWithData(_optIds, optName); + opt.OnRecycle = OnOptionRecycle; + _optIds++; + return opt; + } + + + private UIOptionItem GetOption(string name) + { + if (_optPools.Count > 0) + { + var opt = _optPools.Dequeue(); + opt.Label = name; + opt.Parent = _optContent; + return opt; + } + return BuildOption(name); + } + + /// + /// 选项回收 + /// + /// + private void OnOptionRecycle(UIOptionItem opt) + { + _displayedOptions.Remove(opt); + opt.Parent = _binNode; + opt.transform.localPosition = Vector3.zero; + _optPools.Enqueue(opt); + } + + #endregion + + #region Button + + public VButton BuildButton(string name, Action onClick, Transform parent) + { + var go = Instantiate(_btnPrefab.gameObject, parent); + var btn = go.GetComponent(); + btn.Label = name; + btn.OnClicked = onClick; + btn.Size = new Vector2(120, 0); + return btn; + } + + #region 添加组件 + + internal VButton AddOptionButton(UIOptionItem option, string btnName, Action btnHandler) + { + var btn = BuildButton(btnName, btnHandler, option.Root); + option.AddChild(btn.gameObject); + return btn; + } + internal VLabel AddOptionLabel(UIOptionItem option, string label, TextAnchor align = TextAnchor.MiddleCenter) + { + var lb = BuildLabel(label, align, option.Root); + option.AddChild(lb.gameObject); + return lb; + } + + + + #endregion + + #endregion + + #region Label + + public VLabel BuildLabel(string lbName, TextAnchor align, Transform parent) + { + var go = Instantiate(_labelPrefab.gameObject, parent); + go.name = lbName; + var label = go.GetComponent(); + label.Text = lbName; + label.Align = align; + label.Size = new Vector2(300, 0); + return label; + } + + #endregion + + #region Recycle + + internal void CleanTabs() + { + while (_displayedTabs.Count > 0) + { + var tab = _displayedTabs[0]; + tab.Dispose(); + } + } + + + + internal void CleanOptions() + { + while (_displayedOptions.Count > 0) + { + var opt = _displayedOptions[0]; + opt.Dispose(); + } + + } + + #endregion + + } +} \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/Debugger/UI/DebuggerViewRoot.Factory.cs.meta b/Runtime/GuruDebugger/Runtime/Debugger/UI/DebuggerViewRoot.Factory.cs.meta new file mode 100644 index 0000000..a2b8dc2 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Debugger/UI/DebuggerViewRoot.Factory.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 3a8636631ec74eeea6dff03bdc79c03c +timeCreated: 1711026127 \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/Debugger/UI/DebuggerViewRoot.cs b/Runtime/GuruDebugger/Runtime/Debugger/UI/DebuggerViewRoot.cs new file mode 100644 index 0000000..b1c8eb8 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Debugger/UI/DebuggerViewRoot.cs @@ -0,0 +1,151 @@ + + +using UnityEngine.EventSystems; + +namespace Guru.Debugger +{ + using UnityEngine; + using UnityEngine.UI; + using G = GlobalVars; + + using System; + using System.Collections.Generic; + + public partial class DebuggerViewRoot: UIComponent, IViewFactory, IWidgetFactory + { + [SerializeField] private Canvas _canvas; + [SerializeField] private CanvasGroup _canvasGroup; + + [SerializeField] private RectTransform _tabContent; + [SerializeField] private RectTransform _optContent; + [SerializeField] private RectTransform _binNode; + + + [SerializeField] private Button _btnClose; + + private const string PrefabPath = "ui/debugger_root"; + private const string InstanceName = "__debugger__"; + + private static DebuggerViewRoot _instance; + public static DebuggerViewRoot Instance + { + get + { + if (_instance == null) _instance = CreateInstance(); + return _instance; + } + } + + private EventSystem _eventSystem; + + + + #region Static Calls + + private static DebuggerViewRoot CreateInstance() + { + var p = Resources.Load(PrefabPath); + if (p != null) + { + var go = Instantiate(p); + DontDestroyOnLoad(go); + go.name = InstanceName; + return go.GetComponent(); + } + return null; + } + + + + + #endregion + + #region Initialization + + private void Awake() + { + Init(); + } + + + private void Init() + { + InitFactory(); + + _btnClose.onClick.AddListener(OnCloseBtnEvent); + + if (EventSystem.current == null) + { + SetupEventSystem(); + } + else + { + _eventSystem = EventSystem.current; + } + + Hide(); + } + + private void SetupEventSystem() + { + + var go = new GameObject(nameof(EventSystem)); + var es = go.AddComponent(); + go.AddComponent(); + es.transform.parent = transform; + _eventSystem = es; + } + + private void OnCloseBtnEvent() + { + Hide(); + OnSelfClosed(); + } + + #endregion + + #region Display + + public void Show() => Active = true; + public void Hide() => Active = false; + + #endregion + + #region Pages + + + internal void RefreshTabs(string tanName, List tabs = null) + { + if (tabs == null) + { + tabs = new List(_displayedTabs.Count); + foreach (var t in _displayedTabs) + { + tabs.Add(t.Label); + } + } + + CleanTabs(); + foreach (var tn in tabs) + { + var tab = RegisterTab(tn); + tab.Selected = tn == tanName; + tab.OnClicked = OnTabClicked; + } + } + + #endregion + + #region Dispos + + private void OnSelfClosed() + { + CleanTabs(); + CleanOptions(); + G.Events.OnUIEvent?.Invoke(G.Events.EventViewClosed, null); + } + + #endregion + + } +} \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/Debugger/UI/DebuggerViewRoot.cs.meta b/Runtime/GuruDebugger/Runtime/Debugger/UI/DebuggerViewRoot.cs.meta new file mode 100644 index 0000000..f403f54 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Debugger/UI/DebuggerViewRoot.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 128174e534964447a73e381ca1fadd0f +timeCreated: 1711018610 \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/Debugger/UI/IVFactory.cs b/Runtime/GuruDebugger/Runtime/Debugger/UI/IVFactory.cs new file mode 100644 index 0000000..3999354 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Debugger/UI/IVFactory.cs @@ -0,0 +1,22 @@ + + +namespace Guru.Debugger +{ + using System; + using UnityEngine; + + + public interface IViewFactory + { + UITabItem BuildTab(string tabName); + UIOptionItem BuildOption(string optName); + } + + public interface IWidgetFactory + { + + VButton BuildButton(string name, Action onClick, Transform parent); + VLabel BuildLabel(string lbName, TextAnchor align, Transform parent); + + } +} \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/Debugger/UI/IVFactory.cs.meta b/Runtime/GuruDebugger/Runtime/Debugger/UI/IVFactory.cs.meta new file mode 100644 index 0000000..ebec633 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Debugger/UI/IVFactory.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: d783b7f8e37f48f3bc36e2877c6143b3 +timeCreated: 1711025708 \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/Debugger/UI/UIOptionItem.cs b/Runtime/GuruDebugger/Runtime/Debugger/UI/UIOptionItem.cs new file mode 100644 index 0000000..2f97a2a --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Debugger/UI/UIOptionItem.cs @@ -0,0 +1,114 @@ + + +using System; +using System.Collections.Generic; + +namespace Guru.Debugger +{ + using UnityEngine; + using UnityEngine.UI; + + public class UIOptionItem: UIComponent + { + + [SerializeField] private RectTransform _root; + [SerializeField] private VLabel _label; + [SerializeField] private VLabel _content; + [SerializeField] private Image _bgImage; + + public Action OnRecycle; + private List _children; + + public Transform Root => _root; + + public string Label + { + get => _label.Text; + set => _label.Text = value; + } + + public string Content + { + get => _content.Text; + set + { + _content.Text = value; + _content.Active = !string.IsNullOrEmpty(value); + } + } + + + private bool _clickable = false; + public bool Clickable + { + get => _clickable; + set + { + _clickable = value; + _label.Active = !_clickable; + _content.Active = !_clickable; + } + } + + + public void InitWithData(long gid, string optName = "") + { + GID = gid; + name = $"opt_{gid}"; + _children = new List(10); + + if (string.IsNullOrEmpty(optName)) + { + _label.Active = false; + } + else + { + Label = optName; + } + + _label.Align = TextAnchor.MiddleLeft; + _content.Align = TextAnchor.MiddleLeft; + + + } + + + public void Dispose() + { + Clickable = false; + ClearChildren(); + OnRecycle?.Invoke(this); + } + + + private void ClearChildren() + { + + if(_children != null && _children.Count > 0) + { + foreach (var child in _children) + { + Destroy(child); + } + _children.Clear(); + } + } + + + public void AddChild(GameObject obj) + { + _children.Add(obj); + } + + + public override void Refresh() + { + var idx = transform.GetSiblingIndex(); + _bgImage.color = idx % 2 == 0 ? GlobalVars.Colors.Gray : GlobalVars.Colors.Gray2; + } + + + + + } +} \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/Debugger/UI/UIOptionItem.cs.meta b/Runtime/GuruDebugger/Runtime/Debugger/UI/UIOptionItem.cs.meta new file mode 100644 index 0000000..a519f23 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Debugger/UI/UIOptionItem.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 8010bd3b4bfd4274997d438a1d99ae19 +timeCreated: 1711024532 \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/Debugger/UI/UITabItem.cs b/Runtime/GuruDebugger/Runtime/Debugger/UI/UITabItem.cs new file mode 100644 index 0000000..734e504 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Debugger/UI/UITabItem.cs @@ -0,0 +1,93 @@ + + +namespace Guru.Debugger +{ + using UnityEngine; + using System; + using UnityEngine.UI; + using G = GlobalVars; + + public class UITabItem: UIComponent + { + [SerializeField] private VButton _btn; + + private string _label; + public string Label + { + get => _label; + set + { + _label = value; + _btn.Label = value; + } + } + + private bool _selected = false; + + public bool Selected + { + get => _selected; + set + { + _selected = value; + Refresh(); + } + } + public Action OnClicked; + public Action OnRecycle; + + #region Init + + protected override void OnCreated() + { + _btn.OnClicked = OnTabClickedEvent; + } + + + private void OnTabClickedEvent() + { + Selected = !Selected; + OnClicked?.Invoke(_label); + Refresh(); + } + + + public void InitWithData(long gid, string label = "") + { + GID = gid; + name = $"tab_{GID}"; + _btn.name = "_btn"; + + if (!string.IsNullOrEmpty(label)) + { + Label = label; + } + + } + + + #endregion + + #region UI + + public override void Refresh() + { + _btn.Color = Selected? G.Colors.LightGreen: G.Colors.Gray; + } + + #endregion + + #region Recycle + + + public void Dispose() + { + OnClicked = null; + OnRecycle?.Invoke(this); + } + + + #endregion + + } +} \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/Debugger/UI/UITabItem.cs.meta b/Runtime/GuruDebugger/Runtime/Debugger/UI/UITabItem.cs.meta new file mode 100644 index 0000000..48da652 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Debugger/UI/UITabItem.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 74db3f6a69ff47f0880e1250393e6f7f +timeCreated: 1711020325 \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/Debugger/UI/VButton.cs b/Runtime/GuruDebugger/Runtime/Debugger/UI/VButton.cs new file mode 100644 index 0000000..a7a951a --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Debugger/UI/VButton.cs @@ -0,0 +1,52 @@ + + +namespace Guru.Debugger +{ + using System; + using UnityEngine; + using UnityEngine.UI; + + public class VButton: UIComponent + { + [SerializeField] private Image _image; + [SerializeField] private Text _label; + [SerializeField] private Button _button; + + public string Label + { + get => _label.text; + set => _label.text = value; + } + + public Action OnClicked; + + public Color Color + { + get => _image.color; + set => _image.color = value; + } + + public Color LabelColor + { + get => _label.color; + set => _label.color = value; + } + + + protected override void OnCreated() + { + _button.onClick.AddListener(OnSelfClicked); + } + private void OnSelfClicked() + { + OnClicked?.Invoke(); + } + + + + + + + + } +} \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/Debugger/UI/VButton.cs.meta b/Runtime/GuruDebugger/Runtime/Debugger/UI/VButton.cs.meta new file mode 100644 index 0000000..8c11ac5 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Debugger/UI/VButton.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: cd788ac6ee4f4afe9d57738d49a3fdc4 +timeCreated: 1711020763 \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/Debugger/UI/VLabel.cs b/Runtime/GuruDebugger/Runtime/Debugger/UI/VLabel.cs new file mode 100644 index 0000000..d3b6455 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Debugger/UI/VLabel.cs @@ -0,0 +1,36 @@ + +using System; + +namespace Guru.Debugger +{ + using UnityEngine; + using UnityEngine.UI; + + public class VLabel : UIComponent + { + [SerializeField] private Text _label; + public string Text + { + get => _label.text; + set => _label.text = value; + } + + public Color Color + { + get => _label.color; + set => _label.color = value; + } + + private TextAnchor _align; + public TextAnchor Align + { + get => _align; + set + { + _align = value; + _label.alignment = _align; + } + } + + } +} \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/Debugger/UI/VLabel.cs.meta b/Runtime/GuruDebugger/Runtime/Debugger/UI/VLabel.cs.meta new file mode 100644 index 0000000..c095ea4 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Debugger/UI/VLabel.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: e85702df90d74eb4892a7a742bcb0f05 +timeCreated: 1711026040 \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/Prefab.meta b/Runtime/GuruDebugger/Runtime/Prefab.meta new file mode 100644 index 0000000..6c614a7 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 47c2a153e811d49d1b9680abd08382f7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruDebugger/Runtime/Prefab/btn_item.prefab b/Runtime/GuruDebugger/Runtime/Prefab/btn_item.prefab new file mode 100644 index 0000000..73a5cb3 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Prefab/btn_item.prefab @@ -0,0 +1,206 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &5161587445136557863 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 148257080420939497} + - component: {fileID: 1727577413956784551} + - component: {fileID: 2268706270294319084} + m_Layer: 5 + m_Name: label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &148257080420939497 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5161587445136557863} + m_LocalRotation: {x: 0, y: 0, z: 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: 1939155628914972370} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1727577413956784551 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5161587445136557863} + m_CullTransparentMesh: 1 +--- !u!114 &2268706270294319084 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5161587445136557863} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: INFO +--- !u!1 &8854415019278044657 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1939155628914972370} + - component: {fileID: 7097619541680742948} + - component: {fileID: 3799638908809225334} + - component: {fileID: 7483045806784872229} + m_Layer: 5 + m_Name: btn_item + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1939155628914972370 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8854415019278044657} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 148257080420939497} + 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: 100, y: 50} + m_SizeDelta: {x: 200, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7097619541680742948 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8854415019278044657} + m_CullTransparentMesh: 1 +--- !u!114 &3799638908809225334 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8854415019278044657} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.078431375, g: 1, b: 0.78765476, a: 0.5372549} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7483045806784872229 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8854415019278044657} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cd788ac6ee4f4afe9d57738d49a3fdc4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 3799638908809225334} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + _image: {fileID: 0} + _label: {fileID: 0} diff --git a/Runtime/GuruDebugger/Runtime/Prefab/btn_item.prefab.meta b/Runtime/GuruDebugger/Runtime/Prefab/btn_item.prefab.meta new file mode 100644 index 0000000..27bdd89 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Prefab/btn_item.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c84e57ed527f24e6ab91e1cf45aa6ca4 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruDebugger/Runtime/Prefab/opt_node_item.prefab b/Runtime/GuruDebugger/Runtime/Prefab/opt_node_item.prefab new file mode 100644 index 0000000..9c5a396 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Prefab/opt_node_item.prefab @@ -0,0 +1,391 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2528333701503730058 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 695922022511621486} + - component: {fileID: 412087832265673011} + m_Layer: 0 + m_Name: root + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &695922022511621486 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2528333701503730058} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 629926880474666585} + - {fileID: 7248743696833887442} + m_Father: {fileID: 4102609491836130493} + 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: 10, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &412087832265673011 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2528333701503730058} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 3 + m_Spacing: 6 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &4102609491836130490 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4102609491836130493} + - component: {fileID: 4102609491836130495} + - component: {fileID: 4102609491836130492} + - component: {fileID: 6345045228542041246} + m_Layer: 5 + m_Name: opt_node_item + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4102609491836130493 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4102609491836130490} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 695922022511621486} + 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: 160} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4102609491836130495 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4102609491836130490} + m_CullTransparentMesh: 1 +--- !u!114 &4102609491836130492 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4102609491836130490} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.39215687} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &6345045228542041246 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4102609491836130490} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8010bd3b4bfd4274997d438a1d99ae19, type: 3} + m_Name: + m_EditorClassIdentifier: + _root: {fileID: 695922022511621486} + _label: {fileID: 2993293849972821997} + _content: {fileID: 5021256505751954790} + _bgImage: {fileID: 4102609491836130492} +--- !u!1001 &83327412588764366 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 695922022511621486} + m_Modifications: + - target: {fileID: 2277169281067990379, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_Name + value: _content + objectReference: {fileID: 0} + - target: {fileID: 4704551826277804405, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_Text + value: Content + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} +--- !u!114 &5021256505751954790 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4937950594306488744, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + m_PrefabInstance: {fileID: 83327412588764366} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e85702df90d74eb4892a7a742bcb0f05, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &7248743696833887442 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + m_PrefabInstance: {fileID: 83327412588764366} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &7858023797254583877 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 695922022511621486} + m_Modifications: + - target: {fileID: 2277169281067990379, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_Name + value: _label + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} +--- !u!224 &629926880474666585 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + m_PrefabInstance: {fileID: 7858023797254583877} + m_PrefabAsset: {fileID: 0} +--- !u!114 &2993293849972821997 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4937950594306488744, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + m_PrefabInstance: {fileID: 7858023797254583877} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e85702df90d74eb4892a7a742bcb0f05, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Runtime/GuruDebugger/Runtime/Prefab/opt_node_item.prefab.meta b/Runtime/GuruDebugger/Runtime/Prefab/opt_node_item.prefab.meta new file mode 100644 index 0000000..6d8a297 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Prefab/opt_node_item.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: db9336d7824134e1cb737eb3ba4c9d93 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruDebugger/Runtime/Prefab/tab_node_item.prefab b/Runtime/GuruDebugger/Runtime/Prefab/tab_node_item.prefab new file mode 100644 index 0000000..027ba1a --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Prefab/tab_node_item.prefab @@ -0,0 +1,174 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &7844578585297590383 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7844578585297590382} + - component: {fileID: 7844578585297590376} + - component: {fileID: 3730802781450377123} + m_Layer: 5 + m_Name: tab_node_item + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7844578585297590382 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7844578585297590383} + m_LocalRotation: {x: 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: 8727470446105646736} + 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: 200, y: 80} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7844578585297590376 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7844578585297590383} + m_CullTransparentMesh: 1 +--- !u!114 &3730802781450377123 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7844578585297590383} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 74db3f6a69ff47f0880e1250393e6f7f, type: 3} + m_Name: + m_EditorClassIdentifier: + _btn: {fileID: 301294120361967463} +--- !u!1001 &7203357951589204034 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7844578585297590382} + m_Modifications: + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_SizeDelta.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_AnchoredPosition.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_AnchoredPosition.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8854415019278044657, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_Name + value: v_btn + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} +--- !u!224 &8727470446105646736 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + m_PrefabInstance: {fileID: 7203357951589204034} + m_PrefabAsset: {fileID: 0} +--- !u!114 &301294120361967463 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7483045806784872229, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + m_PrefabInstance: {fileID: 7203357951589204034} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cd788ac6ee4f4afe9d57738d49a3fdc4, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Runtime/GuruDebugger/Runtime/Prefab/tab_node_item.prefab.meta b/Runtime/GuruDebugger/Runtime/Prefab/tab_node_item.prefab.meta new file mode 100644 index 0000000..01cb801 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Prefab/tab_node_item.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e22e7dc3c05a644c08c833a3a2f42a16 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruDebugger/Runtime/Prefab/v_btn.prefab b/Runtime/GuruDebugger/Runtime/Prefab/v_btn.prefab new file mode 100644 index 0000000..567ee32 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Prefab/v_btn.prefab @@ -0,0 +1,233 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &5161587445136557863 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 148257080420939497} + - component: {fileID: 1727577413956784551} + - component: {fileID: 2268706270294319084} + m_Layer: 5 + m_Name: label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &148257080420939497 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5161587445136557863} + m_LocalRotation: {x: 0, y: 0, z: 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: 1939155628914972370} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1727577413956784551 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5161587445136557863} + m_CullTransparentMesh: 1 +--- !u!114 &2268706270294319084 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5161587445136557863} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 32 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: INFO +--- !u!1 &8854415019278044657 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1939155628914972370} + - component: {fileID: 7097619541680742948} + - component: {fileID: 3799638908809225334} + - component: {fileID: 8622626705591949948} + - component: {fileID: 7483045806784872229} + - component: {fileID: 5027051285820548675} + m_Layer: 5 + m_Name: v_btn + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1939155628914972370 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8854415019278044657} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 148257080420939497} + 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: 100, y: 50} + m_SizeDelta: {x: 200, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7097619541680742948 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8854415019278044657} + m_CullTransparentMesh: 1 +--- !u!114 &3799638908809225334 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8854415019278044657} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.15686275} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8622626705591949948 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8854415019278044657} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 3799638908809225334} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &7483045806784872229 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8854415019278044657} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cd788ac6ee4f4afe9d57738d49a3fdc4, type: 3} + m_Name: + m_EditorClassIdentifier: + _image: {fileID: 3799638908809225334} + _label: {fileID: 2268706270294319084} + _button: {fileID: 8622626705591949948} +--- !u!225 &5027051285820548675 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8854415019278044657} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 diff --git a/Runtime/GuruDebugger/Runtime/Prefab/v_btn.prefab.meta b/Runtime/GuruDebugger/Runtime/Prefab/v_btn.prefab.meta new file mode 100644 index 0000000..716ab3b --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Prefab/v_btn.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d0b72a82a22a748f89a2896a633bad10 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruDebugger/Runtime/Prefab/v_label.prefab b/Runtime/GuruDebugger/Runtime/Prefab/v_label.prefab new file mode 100644 index 0000000..071f27a --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Prefab/v_label.prefab @@ -0,0 +1,133 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2277169281067990379 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7327563488862494748} + - component: {fileID: 4937950594306488744} + m_Layer: 5 + m_Name: v_label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7327563488862494748 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2277169281067990379} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 6542213729106578396} + 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: 160, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &4937950594306488744 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2277169281067990379} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e85702df90d74eb4892a7a742bcb0f05, type: 3} + m_Name: + m_EditorClassIdentifier: + _label: {fileID: 4704551826277804405} +--- !u!1 &9037852253254046115 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6542213729106578396} + - component: {fileID: 3463804050856076278} + - component: {fileID: 4704551826277804405} + m_Layer: 5 + m_Name: text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6542213729106578396 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9037852253254046115} + m_LocalRotation: {x: 0, y: 0, z: 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: 7327563488862494748} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3463804050856076278 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9037852253254046115} + m_CullTransparentMesh: 1 +--- !u!114 &4704551826277804405 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9037852253254046115} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 32 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Name diff --git a/Runtime/GuruDebugger/Runtime/Prefab/v_label.prefab.meta b/Runtime/GuruDebugger/Runtime/Prefab/v_label.prefab.meta new file mode 100644 index 0000000..e24915c --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Prefab/v_label.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4557ac9378ce94fd38269da8f9aa86e3 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruDebugger/Runtime/Resources.meta b/Runtime/GuruDebugger/Runtime/Resources.meta new file mode 100644 index 0000000..da8b1fb --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0ebe768b61d1d4fa782e856b6bca6eff +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruDebugger/Runtime/Resources/ui.meta b/Runtime/GuruDebugger/Runtime/Resources/ui.meta new file mode 100644 index 0000000..948794e --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Resources/ui.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5c11309f0c00147efabb99ad473fa760 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruDebugger/Runtime/Resources/ui/debugger_root.prefab b/Runtime/GuruDebugger/Runtime/Resources/ui/debugger_root.prefab new file mode 100644 index 0000000..4b5d74f --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Resources/ui/debugger_root.prefab @@ -0,0 +1,1604 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &5678077650178334412 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5678077650178334411} + - component: {fileID: 5678077650178334410} + - component: {fileID: 5678077650178334409} + m_Layer: 5 + m_Name: content_tab + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5678077650178334411 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077650178334412} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5678077650929315700} + m_Father: {fileID: 5678077650265235301} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: -659.9998, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &5678077650178334410 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077650178334412} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!114 &5678077650178334409 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077650178334412} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 3 + m_Spacing: 10 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &5678077650216891752 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5678077650216891767} + - component: {fileID: 5678077650216891765} + - component: {fileID: 5678077650216891766} + m_Layer: 5 + m_Name: label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5678077650216891767 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077650216891752} + m_LocalRotation: {x: 0, y: 0, z: 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: 5678077651910291723} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5678077650216891765 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077650216891752} + m_CullTransparentMesh: 1 +--- !u!114 &5678077650216891766 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077650216891752} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 40 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 4 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: X +--- !u!1 &5678077650265235302 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5678077650265235301} + - component: {fileID: 1803235044013397190} + m_Layer: 5 + m_Name: viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5678077650265235301 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077650265235302} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5678077650178334411} + m_Father: {fileID: 5678077651956306229} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1803235044013397190 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077650265235302} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: 0, y: 0, z: 0, w: 0} + m_Softness: {x: 0, y: 0} +--- !u!1 &5678077650299143687 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5678077650299143686} + - component: {fileID: 5678077650299143684} + - component: {fileID: 5678077650299143685} + m_Layer: 5 + m_Name: navigator + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5678077650299143686 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077650299143687} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5678077652153614777} + - {fileID: 5678077651956306229} + - {fileID: 5678077651910291723} + m_Father: {fileID: 5678077651425366170} + 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: 0} + m_SizeDelta: {x: 0, y: 100} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &5678077650299143684 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077650299143687} + m_CullTransparentMesh: 1 +--- !u!114 &5678077650299143685 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077650299143687} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.78431374} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &5678077650315353686 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5678077650315353685} + - component: {fileID: 5678077650315353684} + - component: {fileID: 5678077650315353683} + m_Layer: 5 + m_Name: content_opt + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5678077650315353685 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077650315353686} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5678077650501026979} + m_Father: {fileID: 5678077652184860989} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 1389.9999} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &5678077650315353684 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077650315353686} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &5678077650315353683 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077650315353686} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 1 + m_Spacing: 10 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &5678077650595346832 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5678077650595346844} + - component: {fileID: 5678077650595346845} + - component: {fileID: 5678077650595346846} + - component: {fileID: 5678077650595346847} + - component: {fileID: 1672044669829354977} + - component: {fileID: 1290928425606660014} + m_Layer: 5 + m_Name: debugger_root + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5678077650595346844 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077650595346832} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4157740473186689210} + - {fileID: 5678077651094479703} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!223 &5678077650595346845 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077650595346832} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 1 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 1001 + m_TargetDisplay: 0 +--- !u!114 &5678077650595346846 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077650595346832} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!114 &5678077650595346847 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077650595346832} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!225 &1672044669829354977 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077650595346832} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!114 &1290928425606660014 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077650595346832} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 128174e534964447a73e381ca1fadd0f, type: 3} + m_Name: + m_EditorClassIdentifier: + _canvas: {fileID: 5678077650595346845} + _canvasGroup: {fileID: 1672044669829354977} + _tabContent: {fileID: 5678077650178334411} + _optContent: {fileID: 5678077650315353685} + _binNode: {fileID: 4157740473186689210} + _btnClose: {fileID: 5678077651910291720} + _tabPrefab: {fileID: 1285608918186647737} + _optPrefab: {fileID: 3327545592706632832} + _btnPrefab: {fileID: 3738088849103178904} + _labelPrefab: {fileID: 2318477437615943927} +--- !u!1 &5678077650909481233 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5678077650909481232} + - component: {fileID: 5678077650909481246} + - component: {fileID: 5678077650909481247} + m_Layer: 5 + m_Name: background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5678077650909481232 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077650909481233} + m_LocalRotation: {x: -0, y: -0, z: -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: 5678077651094479703} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5678077650909481246 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077650909481233} + m_CullTransparentMesh: 1 +--- !u!114 &5678077650909481247 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077650909481233} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.15686275, g: 0.15686275, b: 0.15686275, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &5678077651056538017 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5678077651056538016} + - component: {fileID: 5678077651056538031} + m_Layer: 5 + m_Name: options_scroll + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5678077651056538016 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077651056538017} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5678077652184860989} + m_Father: {fileID: 5678077651425366170} + 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: -50} + m_SizeDelta: {x: 0, y: -100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5678077651056538031 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077651056538017} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 5678077650315353685} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 1 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 1 + m_Viewport: {fileID: 0} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 0} + m_HorizontalScrollbarVisibility: 0 + m_VerticalScrollbarVisibility: 0 + m_HorizontalScrollbarSpacing: 0 + m_VerticalScrollbarSpacing: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &5678077651094479688 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5678077651094479703} + m_Layer: 5 + m_Name: options + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5678077651094479703 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077651094479688} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5678077650909481232} + - {fileID: 5678077651425366170} + m_Father: {fileID: 5678077650595346844} + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &5678077651425366171 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5678077651425366170} + m_Layer: 5 + m_Name: root + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5678077651425366170 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077651425366171} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5678077651056538016} + - {fileID: 5678077650299143686} + m_Father: {fileID: 5678077651094479703} + 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: -40} + m_SizeDelta: {x: 0, y: -80} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &5678077651910291724 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5678077651910291723} + - component: {fileID: 5678077651910291721} + - component: {fileID: 5678077651910291722} + - component: {fileID: 5678077651910291720} + m_Layer: 5 + m_Name: btn_close + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5678077651910291723 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077651910291724} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5678077650216891767} + m_Father: {fileID: 5678077650299143686} + 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: 0, y: 0} + m_SizeDelta: {x: 100, y: 80} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &5678077651910291721 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077651910291724} + m_CullTransparentMesh: 1 +--- !u!114 &5678077651910291722 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077651910291724} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0, b: 0, a: 0.3137255} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5678077651910291720 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077651910291724} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 5678077651910291722} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &5678077651956306230 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5678077651956306229} + - component: {fileID: 5678077651956306228} + m_Layer: 5 + m_Name: tabs_scorll + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5678077651956306229 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077651956306230} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5678077650265235301} + m_Father: {fileID: 5678077650299143686} + 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: -60, y: 0} + m_SizeDelta: {x: -120, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5678077651956306228 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077651956306230} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 5678077650178334411} + m_Horizontal: 1 + m_Vertical: 0 + m_MovementType: 1 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 1 + m_Viewport: {fileID: 5678077650265235301} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 0} + m_HorizontalScrollbarVisibility: 0 + m_VerticalScrollbarVisibility: 0 + m_HorizontalScrollbarSpacing: 0 + m_VerticalScrollbarSpacing: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &5678077652153614778 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5678077652153614777} + - component: {fileID: 5678077652153614727} + - component: {fileID: 5678077652153614776} + m_Layer: 5 + m_Name: background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5678077652153614777 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077652153614778} + m_LocalRotation: {x: 0, y: 0, z: 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: 5678077650299143686} + m_RootOrder: 0 + 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: 0} + m_SizeDelta: {x: 0, y: 400} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &5678077652153614727 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077652153614778} + m_CullTransparentMesh: 1 +--- !u!114 &5678077652153614776 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077652153614778} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.7058824} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &5678077652184860990 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5678077652184860989} + - component: {fileID: 5678077652184860988} + m_Layer: 5 + m_Name: viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5678077652184860989 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077652184860990} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5678077650315353685} + m_Father: {fileID: 5678077651056538016} + 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.00012207031} + m_SizeDelta: {x: 0, y: -10.492065} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5678077652184860988 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5678077652184860990} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: 0, y: 0, z: 0, w: 0} + m_Softness: {x: 0, y: 0} +--- !u!1 &8711180360588463275 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4157740473186689210} + m_Layer: 0 + m_Name: __bin__ + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &4157740473186689210 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8711180360588463275} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5679040531673032047} + - {fileID: 79729155806030147} + m_Father: {fileID: 5678077650595346844} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 500000} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1001 &2454777507547019034 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5678077650178334411} + m_Modifications: + - target: {fileID: 3730802781450377123, guid: e22e7dc3c05a644c08c833a3a2f42a16, type: 3} + propertyPath: _btn + value: + objectReference: {fileID: 2756051535210465405} + - target: {fileID: 7844578585297590382, guid: e22e7dc3c05a644c08c833a3a2f42a16, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7844578585297590382, guid: e22e7dc3c05a644c08c833a3a2f42a16, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7844578585297590382, guid: e22e7dc3c05a644c08c833a3a2f42a16, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7844578585297590382, guid: e22e7dc3c05a644c08c833a3a2f42a16, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7844578585297590382, guid: e22e7dc3c05a644c08c833a3a2f42a16, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7844578585297590382, guid: e22e7dc3c05a644c08c833a3a2f42a16, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7844578585297590382, guid: e22e7dc3c05a644c08c833a3a2f42a16, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7844578585297590382, guid: e22e7dc3c05a644c08c833a3a2f42a16, type: 3} + propertyPath: m_SizeDelta.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 7844578585297590382, guid: e22e7dc3c05a644c08c833a3a2f42a16, type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 7844578585297590382, guid: e22e7dc3c05a644c08c833a3a2f42a16, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7844578585297590382, guid: e22e7dc3c05a644c08c833a3a2f42a16, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7844578585297590382, guid: e22e7dc3c05a644c08c833a3a2f42a16, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7844578585297590382, guid: e22e7dc3c05a644c08c833a3a2f42a16, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7844578585297590382, guid: e22e7dc3c05a644c08c833a3a2f42a16, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7844578585297590382, guid: e22e7dc3c05a644c08c833a3a2f42a16, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7844578585297590382, guid: e22e7dc3c05a644c08c833a3a2f42a16, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7844578585297590382, guid: e22e7dc3c05a644c08c833a3a2f42a16, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7844578585297590382, guid: e22e7dc3c05a644c08c833a3a2f42a16, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7844578585297590382, guid: e22e7dc3c05a644c08c833a3a2f42a16, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7844578585297590382, guid: e22e7dc3c05a644c08c833a3a2f42a16, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7844578585297590382, guid: e22e7dc3c05a644c08c833a3a2f42a16, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7844578585297590383, guid: e22e7dc3c05a644c08c833a3a2f42a16, type: 3} + propertyPath: m_Name + value: tab_node_item + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e22e7dc3c05a644c08c833a3a2f42a16, type: 3} +--- !u!114 &1285608918186647737 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3730802781450377123, guid: e22e7dc3c05a644c08c833a3a2f42a16, type: 3} + m_PrefabInstance: {fileID: 2454777507547019034} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 74db3f6a69ff47f0880e1250393e6f7f, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &2756051535210465405 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 301294120361967463, guid: e22e7dc3c05a644c08c833a3a2f42a16, type: 3} + m_PrefabInstance: {fileID: 2454777507547019034} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cd788ac6ee4f4afe9d57738d49a3fdc4, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &5678077650929315700 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 7844578585297590382, guid: e22e7dc3c05a644c08c833a3a2f42a16, type: 3} + m_PrefabInstance: {fileID: 2454777507547019034} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &6068955105058075581 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 4157740473186689210} + m_Modifications: + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_SizeDelta.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_AnchoredPosition.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_AnchoredPosition.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8854415019278044657, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + propertyPath: m_Name + value: v_btn + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} +--- !u!114 &3738088849103178904 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7483045806784872229, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + m_PrefabInstance: {fileID: 6068955105058075581} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cd788ac6ee4f4afe9d57738d49a3fdc4, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &5679040531673032047 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 1939155628914972370, guid: d0b72a82a22a748f89a2896a633bad10, type: 3} + m_PrefabInstance: {fileID: 6068955105058075581} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &7254169892197894495 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 4157740473186689210} + m_Modifications: + - target: {fileID: 2277169281067990379, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_Name + value: v_label + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_SizeDelta.x + value: 160 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_AnchoredPosition.x + value: 500 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_AnchoredPosition.y + value: 3000 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} +--- !u!224 &79729155806030147 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 7327563488862494748, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + m_PrefabInstance: {fileID: 7254169892197894495} + m_PrefabAsset: {fileID: 0} +--- !u!114 &2318477437615943927 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4937950594306488744, guid: 4557ac9378ce94fd38269da8f9aa86e3, type: 3} + m_PrefabInstance: {fileID: 7254169892197894495} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e85702df90d74eb4892a7a742bcb0f05, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &8512911683717107742 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5678077650315353685} + m_Modifications: + - target: {fileID: 412087832265673011, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_Spacing + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 629926880474666585, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 629926880474666585, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 629926880474666585, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 629926880474666585, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 629926880474666585, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 629926880474666585, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4102609491836130490, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_Name + value: opt_node_item + objectReference: {fileID: 0} + - target: {fileID: 4102609491836130493, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4102609491836130493, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4102609491836130493, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4102609491836130493, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4102609491836130493, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4102609491836130493, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4102609491836130493, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4102609491836130493, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4102609491836130493, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_SizeDelta.y + value: 104 + objectReference: {fileID: 0} + - target: {fileID: 4102609491836130493, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4102609491836130493, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4102609491836130493, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4102609491836130493, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4102609491836130493, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4102609491836130493, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4102609491836130493, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4102609491836130493, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4102609491836130493, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4102609491836130493, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4102609491836130493, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4102609491836130493, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7248743696833887442, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7248743696833887442, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7248743696833887442, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7248743696833887442, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7248743696833887442, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7248743696833887442, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} +--- !u!114 &3327545592706632832 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 6345045228542041246, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + m_PrefabInstance: {fileID: 8512911683717107742} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8010bd3b4bfd4274997d438a1d99ae19, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &5678077650501026979 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 4102609491836130493, guid: db9336d7824134e1cb737eb3ba4c9d93, type: 3} + m_PrefabInstance: {fileID: 8512911683717107742} + m_PrefabAsset: {fileID: 0} diff --git a/Runtime/GuruDebugger/Runtime/Resources/ui/debugger_root.prefab.meta b/Runtime/GuruDebugger/Runtime/Resources/ui/debugger_root.prefab.meta new file mode 100644 index 0000000..e0bdf93 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Resources/ui/debugger_root.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 346f45e927caa428a96dfb925af7ceeb +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruDebugger/Samples.meta b/Runtime/GuruDebugger/Samples.meta new file mode 100644 index 0000000..ba81363 --- /dev/null +++ b/Runtime/GuruDebugger/Samples.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: c72ccdd308b4438e84ba71a4bc049aff +timeCreated: 1711037647 \ No newline at end of file diff --git a/Runtime/GuruDebugger/Samples/DebugDemo.cs b/Runtime/GuruDebugger/Samples/DebugDemo.cs new file mode 100644 index 0000000..95864f1 --- /dev/null +++ b/Runtime/GuruDebugger/Samples/DebugDemo.cs @@ -0,0 +1,25 @@ + +using Guru; +using Guru.Debugger; +using UnityEngine; + +public class DebugDemo : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + GuruDebugger.Init(); + + GuruDebugger.Instance.AddOption("INFO/page1", "DebugDemo") + .AddButton("AAA", () => + { + Debug.Log("AAA"); + }) + .AddLabel("Test"); + + + GuruDebugger.Show(); + } + + +} diff --git a/Runtime/GuruDebugger/Samples/DebugDemo.cs.meta b/Runtime/GuruDebugger/Samples/DebugDemo.cs.meta new file mode 100644 index 0000000..bb35cac --- /dev/null +++ b/Runtime/GuruDebugger/Samples/DebugDemo.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ea03c9090000940e3a5ae500d9d918bc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruDebugger/Samples/DebugDemo.unity b/Runtime/GuruDebugger/Samples/DebugDemo.unity new file mode 100644 index 0000000..aeb32b7 --- /dev/null +++ b/Runtime/GuruDebugger/Samples/DebugDemo.unity @@ -0,0 +1,509 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0.44657874, g: 0.49641275, b: 0.5748172, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1001 &1243617387 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 5678077650178334411, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_SizeDelta.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 5678077650315353685, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_SizeDelta.y + value: 160 + objectReference: {fileID: 0} + - target: {fileID: 5678077650315353685, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_AnchoredPosition.y + value: 870.00006 + objectReference: {fileID: 0} + - target: {fileID: 5678077650501026979, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5678077650501026979, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5678077650501026979, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_SizeDelta.x + value: 1080 + objectReference: {fileID: 0} + - target: {fileID: 5678077650501026979, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_AnchoredPosition.x + value: 540 + objectReference: {fileID: 0} + - target: {fileID: 5678077650501026979, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_AnchoredPosition.y + value: -80 + objectReference: {fileID: 0} + - target: {fileID: 5678077650595346832, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_Name + value: debugger_root + objectReference: {fileID: 0} + - target: {fileID: 5678077650595346832, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5678077650595346844, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5678077650595346844, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_Pivot.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5678077650595346844, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 5678077650595346844, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5678077650595346844, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5678077650595346844, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5678077650595346844, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5678077650595346844, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5678077650595346844, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5678077650595346844, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5678077650595346844, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5678077650595346844, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5678077650595346844, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5678077650595346844, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5678077650595346844, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5678077650595346844, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5678077650595346844, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5678077650595346844, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5678077650595346844, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5678077650595346844, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5678077650595346844, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5678077650929315700, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5678077650929315700, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5678077650929315700, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_AnchoredPosition.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 5678077650929315700, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_AnchoredPosition.y + value: -50 + objectReference: {fileID: 0} + - target: {fileID: 9123733450142156359, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9123733450142156359, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9123733450142156359, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9123733450142156359, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 346f45e927caa428a96dfb925af7ceeb, type: 3} +--- !u!1 &1409984334 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1409984337} + - component: {fileID: 1409984336} + - component: {fileID: 1409984335} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &1409984335 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1409984334} + m_Enabled: 1 +--- !u!20 &1409984336 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1409984334} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &1409984337 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1409984334} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1597431377 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1597431379} + - component: {fileID: 1597431378} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &1597431378 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1597431377} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &1597431379 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1597431377} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &1847055078 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1847055080} + - component: {fileID: 1847055079} + m_Layer: 0 + m_Name: Main + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1847055079 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1847055078} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ea03c9090000940e3a5ae500d9d918bc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &1847055080 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1847055078} + m_LocalRotation: {x: 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: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Runtime/GuruDebugger/Samples/DebugDemo.unity.meta b/Runtime/GuruDebugger/Samples/DebugDemo.unity.meta new file mode 100644 index 0000000..4d9cdb9 --- /dev/null +++ b/Runtime/GuruDebugger/Samples/DebugDemo.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1873ecc2969fb40fdb00731d8abfd8f7 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: