From 0fd037d1ae1d289fb073d743b9284a62d0531eb7 Mon Sep 17 00:00:00 2001 From: huyufei Date: Tue, 7 May 2024 11:48:14 +0800 Subject: [PATCH] update: Optmize debugger and root view logic. And Compatible with AdStatus. --story=1019746 --user=yufei.hu --- Runtime/GuruCore/Runtime/Ads/ADService.cs | 2 +- Runtime/GuruCore/Runtime/Ads/ADServiceBase.cs | 2 +- .../GuruCore/Runtime/Ads/ADServiceEvent.cs | 3 + .../Runtime/Ads/Channels/Max/AdChanelMax.cs | 1 - .../Runtime/AdsStatus/AdStatus.cs | 10 +- .../AdsStatus/MVP/AdStatusMonitorView.cs | 17 +- .../AdsStatus/MVP/AdStatusPresenter.Ads.cs | 60 ++-- .../AdsStatus/MVP/AdStatusPresenter.cs | 80 +++-- .../Resources/ui/debugger_adstatus.prefab | 243 +++++++++++++ ...fab.meta => debugger_adstatus.prefab.meta} | 0 .../Resources/ui/debugger_root.prefab | 331 ------------------ .../Runtime/Debugger/Core/Debugger.cs | 131 +++++-- .../Runtime/Debugger/Core/DebuggerConsts.cs | 1 + .../Runtime/Debugger/UI/DebuggerViewRoot.cs | 53 ++- .../Runtime/Prefab/ads_status_monitor.prefab | 197 +++++++++++ .../Prefab/ads_status_monitor.prefab.meta | 7 + .../Runtime/Resources/ui/debugger_root.prefab | 125 ++++++- 17 files changed, 841 insertions(+), 422 deletions(-) create mode 100644 Runtime/GuruDebugger/Runtime/AdsStatus/Resources/ui/debugger_adstatus.prefab rename Runtime/GuruDebugger/Runtime/AdsStatus/Resources/ui/{debugger_root.prefab.meta => debugger_adstatus.prefab.meta} (100%) delete mode 100644 Runtime/GuruDebugger/Runtime/AdsStatus/Resources/ui/debugger_root.prefab create mode 100644 Runtime/GuruDebugger/Runtime/Prefab/ads_status_monitor.prefab create mode 100644 Runtime/GuruDebugger/Runtime/Prefab/ads_status_monitor.prefab.meta diff --git a/Runtime/GuruCore/Runtime/Ads/ADService.cs b/Runtime/GuruCore/Runtime/Ads/ADService.cs index 21fe587..7a6e085 100644 --- a/Runtime/GuruCore/Runtime/Ads/ADService.cs +++ b/Runtime/GuruCore/Runtime/Ads/ADService.cs @@ -182,7 +182,7 @@ namespace Guru { _radsLoadStartTime = Time.realtimeSinceStartup; // 更新计时器 _chanelMax.LoadRewardAD(); - OnRewardStartLoad?.Invoke(_chanelMax.MaxRADSSlotID); + OnRewardedStartLoad?.Invoke(_chanelMax.MaxRADSSlotID); } diff --git a/Runtime/GuruCore/Runtime/Ads/ADServiceBase.cs b/Runtime/GuruCore/Runtime/Ads/ADServiceBase.cs index f1d6f40..59ed3d6 100644 --- a/Runtime/GuruCore/Runtime/Ads/ADServiceBase.cs +++ b/Runtime/GuruCore/Runtime/Ads/ADServiceBase.cs @@ -33,7 +33,7 @@ namespace Guru public static Action OnInterstitialLoaded; public static Action OnInterstitialFailed; - public static Action OnRewardStartLoad; + public static Action OnRewardedStartLoad; public static Action OnRewardLoaded; public static Action OnRewardFailed; diff --git a/Runtime/GuruCore/Runtime/Ads/ADServiceEvent.cs b/Runtime/GuruCore/Runtime/Ads/ADServiceEvent.cs index 2415add..851c747 100644 --- a/Runtime/GuruCore/Runtime/Ads/ADServiceEvent.cs +++ b/Runtime/GuruCore/Runtime/Ads/ADServiceEvent.cs @@ -5,6 +5,9 @@ namespace Guru public const string ADSERVICE_READY = "evt_adservice_ready"; public const string BADS_LOAD_START = "evt_bads_load_start"; + public const string IADS_LOAD_START = "evt_iads_load_start"; + public const string RADS_LOAD_START = "evt_rads_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"; diff --git a/Runtime/GuruCore/Runtime/Ads/Channels/Max/AdChanelMax.cs b/Runtime/GuruCore/Runtime/Ads/Channels/Max/AdChanelMax.cs index 5701b84..79a4cd2 100644 --- a/Runtime/GuruCore/Runtime/Ads/Channels/Max/AdChanelMax.cs +++ b/Runtime/GuruCore/Runtime/Ads/Channels/Max/AdChanelMax.cs @@ -44,7 +44,6 @@ namespace Guru #region Banner private Color _backColor = Color.clear; - public bool IsBannerRequestOver => true; public void LoadBannerAD() { // Banners are automatically sized to 320x50 on phones and 728x90 on tablets diff --git a/Runtime/GuruDebugger/Runtime/AdsStatus/AdStatus.cs b/Runtime/GuruDebugger/Runtime/AdsStatus/AdStatus.cs index 0e8b079..357ab6e 100644 --- a/Runtime/GuruDebugger/Runtime/AdsStatus/AdStatus.cs +++ b/Runtime/GuruDebugger/Runtime/AdsStatus/AdStatus.cs @@ -1,5 +1,9 @@ + + namespace Guru.Debugger { + using System; + public class AdStatus { @@ -8,16 +12,14 @@ namespace Guru.Debugger private static bool _inited; - public static void Install() + public static void Install(AdStatusMonitorView view = null, Action onMonitorClicked = null) { if (_inited) return; _inited = true; _adp = new AdStatusPresenter(); - _adp.Init(); - + _adp.Init(view, onMonitorClicked); } - public static void ShowMonitor() { if(!_inited) Install(); diff --git a/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusMonitorView.cs b/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusMonitorView.cs index 3f3129a..8d04064 100644 --- a/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusMonitorView.cs +++ b/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusMonitorView.cs @@ -39,6 +39,7 @@ namespace Guru.Debugger public Action OnClickHandler; public Action OnDestryHandler; + public Action OnEnableHandler; // Start is called before the first frame update @@ -47,7 +48,21 @@ namespace Guru.Debugger Alpha = Consts.MonitorStartAlpha; } - + private void OnDestroy() + { + OnDestryHandler?.Invoke(); + } + + private void OnEnable() + { + OnEnableHandler?.Invoke(true); + } + + + private void OnDisable() + { + OnEnableHandler?.Invoke(false); + } public void OnDrag(PointerEventData eventData) diff --git a/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusPresenter.Ads.cs b/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusPresenter.Ads.cs index b5ee8e2..e90fcb3 100644 --- a/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusPresenter.Ads.cs +++ b/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusPresenter.Ads.cs @@ -109,7 +109,7 @@ namespace Guru.Debugger StringBuilder sb = new StringBuilder(); - if (GuruSDK.IsAdsReady) + if (!ADService.Instance.IsInitialized) { msg = ColoredText("AdService not initialized...", Consts.ColorRed); return msg; @@ -230,31 +230,28 @@ namespace Guru.Debugger #endregion - #region AppLovin - private void InitAdsCallbacks() + private void InitAdsAssets() { + RemoveCallbacks(); AddCallbacks(); - _bannerInfos = new Queue(AdStatusConsts.MaxInfoCount); _interInfos = new Queue(AdStatusConsts.MaxInfoCount); - _rewardInfos = new Queue(AdStatusConsts.MaxInfoCount); + _rewardInfos = new Queue(AdStatusConsts.MaxInfoCount); } - - private void AddCallbacks() { //----------------- Banner ----------------- - GuruSDK.Callbacks.Ads.OnBannerADStartLoad += OnBannerAdLoadEvent; + ADService.OnBannerStartLoad += OnBannerStartLoadEvent; MaxSdkCallbacks.Banner.OnAdLoadedEvent += OnBannerAdLoadedEvent; MaxSdkCallbacks.Banner.OnAdLoadFailedEvent += OnBannerAdLoadFailEvent; MaxSdkCallbacks.Banner.OnAdRevenuePaidEvent += OnBannerAdRevenuePaidEvent; MaxSdkCallbacks.Banner.OnAdClickedEvent += OnBannerAdClickedEvent; //----------------- Interstitials ----------------- - GuruSDK.Callbacks.Ads.OnInterstitialADStartLoad += OnInterAdLoadEvent; + ADService.OnInterstitialStartLoad += OnInterStartLoadEvent; MaxSdkCallbacks.Interstitial.OnAdLoadedEvent += OnInterAdLoadedEvent; MaxSdkCallbacks.Interstitial.OnAdLoadFailedEvent += OnInterAdLoadFailEvent; MaxSdkCallbacks.Interstitial.OnAdDisplayFailedEvent += OnInterAdDisplayFailEvent; @@ -262,22 +259,43 @@ namespace Guru.Debugger MaxSdkCallbacks.Interstitial.OnAdClickedEvent += OnInterAdClickedEvent; MaxSdkCallbacks.Interstitial.OnAdHiddenEvent += OnInterAdHiddenEvent; //----------------- Reward ----------------- - Guru.GuruSDK.Callbacks.Ads.OnRewardedADStartLoad += OnRewardedStartLoad; + ADService.OnRewardedStartLoad += 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; - - } - - - - + + private void RemoveCallbacks() + { + //----------------- Banner ----------------- + ADService.OnBannerStartLoad -= OnBannerStartLoadEvent; + MaxSdkCallbacks.Banner.OnAdLoadedEvent -= OnBannerAdLoadedEvent; + MaxSdkCallbacks.Banner.OnAdLoadFailedEvent -= OnBannerAdLoadFailEvent; + MaxSdkCallbacks.Banner.OnAdRevenuePaidEvent -= OnBannerAdRevenuePaidEvent; + MaxSdkCallbacks.Banner.OnAdClickedEvent -= OnBannerAdClickedEvent; + //----------------- Interstitials ----------------- + ADService.OnInterstitialStartLoad -= OnInterStartLoadEvent; + 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 ----------------- + ADService.OnRewardedStartLoad -= 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) + private void OnBannerStartLoadEvent(string adUnitId) { AddBannerInfo(CreateLoadingInfo(adUnitId, AdType.Banner)); } @@ -311,7 +329,7 @@ namespace Guru.Debugger //----------------- Interstitial ----------------- - private void OnInterAdLoadEvent(string adUnitId) + private void OnInterStartLoadEvent(string adUnitId) { AddInterInfo(CreateLoadingInfo(adUnitId, AdType.Interstitial)); } @@ -406,11 +424,9 @@ namespace Guru.Debugger 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.cs b/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusPresenter.cs index 4f9403c..4bc44a0 100644 --- a/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusPresenter.cs +++ b/Runtime/GuruDebugger/Runtime/AdsStatus/MVP/AdStatusPresenter.cs @@ -1,54 +1,60 @@ -using UnityEngine; + namespace Guru.Debugger { + using System; + using UnityEngine; + public partial class AdStatusPresenter { - const string K_DEBUGGER_ROOT = "ui/debugger_root"; - - + const string K_DEBUGGER_ROOT = "ui/debugger_adstatus"; + private AdStatusMonitorView _monitor; - private AdStatusModel _model; - - - - - - public void Init() + private Action _onMonitorClickedHandler; + /// + /// Initiallize + /// + /// + public void Init(AdStatusMonitorView monitorView = null, Action onClicked = null) { + _onMonitorClickedHandler = onClicked; + _model = new AdStatusModel(); + _monitor = monitorView; + if (_monitor == null) _monitor = LoadDebuggerRoot(); + if (_monitor != null) + { + _monitor.OnUpdateInfo("ads is on loading..."); + _monitor.Active = false; + } - LoadDebuggerRoot(); - InitAdsCallbacks(); + _monitor.OnEnableHandler = OnMonitorEnableEvent; + _monitor.OnClickHandler = OnMonitorClickEvent; + InitAdsAssets(); } /// /// Debugger Root /// - private void LoadDebuggerRoot() + private AdStatusMonitorView LoadDebuggerRoot() { var prefab = Resources.Load(K_DEBUGGER_ROOT); if (prefab != null) { var go = GameObject.Instantiate(prefab); - go.name = "__debugger_root__"; + go.name = "__debugger__"; 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; - } + return _monitor; } - - } + return null; } @@ -56,7 +62,6 @@ namespace Guru.Debugger private void UpdateView() { if (_model == null) return; - _monitor.OnUpdateInfo(_model.monitorInfo); } @@ -71,6 +76,35 @@ namespace Guru.Debugger if (_monitor == null) return; _monitor.Active = false; } + + + private void OnMonitorEnableEvent(bool enabled) + { + if (enabled) + { + RemoveCallbacks(); + AddCallbacks(); + } + else + { + RemoveCallbacks(); + } + } + + + + #region Click + + + private void OnMonitorClickEvent() + { + _onMonitorClickedHandler?.Invoke(); + } + + + + #endregion + } } diff --git a/Runtime/GuruDebugger/Runtime/AdsStatus/Resources/ui/debugger_adstatus.prefab b/Runtime/GuruDebugger/Runtime/AdsStatus/Resources/ui/debugger_adstatus.prefab new file mode 100644 index 0000000..3b806e2 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/AdsStatus/Resources/ui/debugger_adstatus.prefab @@ -0,0 +1,243 @@ +%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_ConstrainProportionsScale: 0 + 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_adstatus + 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_ConstrainProportionsScale: 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: 1, y: 1} + 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_VertexColorAlwaysGammaSpace: 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!1001 &1799243657204254593 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5150702560827386906} + m_Modifications: + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_AnchorMin.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_SizeDelta.x + value: 480 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_SizeDelta.y + value: 320 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_AnchoredPosition.x + value: -249 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_AnchoredPosition.y + value: 378 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135357, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_Name + value: ads_status_monitor + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} +--- !u!224 &5150702562168738941 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + m_PrefabInstance: {fileID: 1799243657204254593} + m_PrefabAsset: {fileID: 0} diff --git a/Runtime/GuruDebugger/Runtime/AdsStatus/Resources/ui/debugger_root.prefab.meta b/Runtime/GuruDebugger/Runtime/AdsStatus/Resources/ui/debugger_adstatus.prefab.meta similarity index 100% rename from Runtime/GuruDebugger/Runtime/AdsStatus/Resources/ui/debugger_root.prefab.meta rename to Runtime/GuruDebugger/Runtime/AdsStatus/Resources/ui/debugger_adstatus.prefab.meta diff --git a/Runtime/GuruDebugger/Runtime/AdsStatus/Resources/ui/debugger_root.prefab b/Runtime/GuruDebugger/Runtime/AdsStatus/Resources/ui/debugger_root.prefab deleted file mode 100644 index 005a5b5..0000000 --- a/Runtime/GuruDebugger/Runtime/AdsStatus/Resources/ui/debugger_root.prefab +++ /dev/null @@ -1,331 +0,0 @@ -%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/Debugger/Core/Debugger.cs b/Runtime/GuruDebugger/Runtime/Debugger/Core/Debugger.cs index 6153469..0f233b6 100644 --- a/Runtime/GuruDebugger/Runtime/Debugger/Core/Debugger.cs +++ b/Runtime/GuruDebugger/Runtime/Debugger/Core/Debugger.cs @@ -29,25 +29,8 @@ namespace Guru.Debugger public static event Action OnClosed { - add - { - if (_onViewClosed == null) - { - _onViewClosed = value; - } - else - { - _onViewClosed += value; - } - } - - remove - { - if (_onViewClosed != null) - { - _onViewClosed -= value; - } - } + add => _onViewClosed += value; + remove => _onViewClosed -= value; } private static Action _onViewClosed; @@ -71,9 +54,15 @@ namespace Guru.Debugger _viewRoot = DebuggerViewRoot.Instance; optionDicts = new Dictionary>(5); G.Events.OnUIEvent += OnUIEvent; + + AdStatus.Install(_viewRoot.AdStatusMonitor, OnMonitorClicked); } - private void OnUIEvent(string evt, object data) + + + #region UIEvent + + private void OnUIEvent(string evt, object data = null) { switch (evt) { @@ -81,13 +70,26 @@ namespace Guru.Debugger OnSelectTab(data.ToString()); break; case G.Events.EventViewClosed: - optionDicts?.Clear(); + // optionDicts?.Clear(); _onViewClosed?.Invoke(); + ShowAdStatus(); + break; + case G.Events.EventMonitorClicked: + HideAdStatus(); + ShowPage(); break; } } + + + private void OnMonitorClicked() + { + OnUIEvent(G.Events.EventMonitorClicked); + } + - + #endregion + #region UI Layout public OptionLayout AddOption(string uri, string content = "", Action clickHandler = null) @@ -121,13 +123,40 @@ namespace Guru.Debugger } private void AddOptionLayout(string tabName, OptionLayout layout) + { + TryToAddOption(tabName, layout); + } + + private bool TryToAddOption(string tabName, OptionLayout opt) { if (!optionDicts.ContainsKey(tabName)) { optionDicts[tabName] = new List(20); + optionDicts[tabName].Add(opt); + return true; } - optionDicts[tabName].Add(layout); + var options = optionDicts[tabName]; + var oldOpt = options.FirstOrDefault(c => c.IsEqual(opt)); + if (oldOpt == null) + { + options.Add(opt); + return true; + } + + return false; + } + + + public void ShowAdStatus() + { + _viewRoot.ShowAdStatusMonitor(); + } + + + public void HideAdStatus() + { + _viewRoot.HideAdStatusMonitor(); } @@ -143,6 +172,8 @@ namespace Guru.Debugger { RenderPage(tabName); } + + } /// @@ -153,7 +184,7 @@ namespace Guru.Debugger { if (string.IsNullOrEmpty(tabName)) return; - _viewRoot.Show(); + _viewRoot.ShowOptions(); _viewRoot.RefreshTabs(tabName, optionDicts.Keys.ToList()); _viewRoot.CleanOptions(); if (optionDicts.TryGetValue(tabName, out var opts)) @@ -193,7 +224,7 @@ namespace Guru.Debugger } else { - Debug.LogError($"{tabName} not found!"); + Debug.LogError($"Tab [{tabName}] not found!"); } } @@ -214,8 +245,11 @@ namespace Guru.Debugger Instance.ShowPage(tabName); } - public static void Hide() => Instance._viewRoot.Hide(); - + public static void Hide() + { + Instance._viewRoot.HideOptions(); + } + #endregion #region DebuggerOption @@ -256,8 +290,43 @@ namespace Guru.Debugger }); return this; } + + public bool IsEqual(OptionLayout other) + { + var res = other.tabName == tabName + && other.optName == optName + // && other.content == content + && IsItemsEqual(other); + return res; + } + + + private bool IsItemsEqual(OptionLayout other) + { + if (items == null && other.items == null) return true; + if (items != null && other.items == null || items == null && other.items != null) return false; + if (items != null && other.items != null) + { + if (items.Count != other.items.Count) + { + return false; + } + + for (int i = 0; i < items.Count; i++) + { + if (!items[i].IsEqual(other.items[i])) + { + return false; + } + } + } + + return true; + } } + + internal class OptionItemLayout { public string type; @@ -266,6 +335,14 @@ namespace Guru.Debugger public string content; public TextAnchor align = TextAnchor.MiddleCenter; public Vector2 size = Vector2.zero; + + public bool IsEqual(OptionItemLayout other) + { + return other.type == type + && other.name == name; + // && other.content == content; + } + } #endregion diff --git a/Runtime/GuruDebugger/Runtime/Debugger/Core/DebuggerConsts.cs b/Runtime/GuruDebugger/Runtime/Debugger/Core/DebuggerConsts.cs index d246bec..5cc6920 100644 --- a/Runtime/GuruDebugger/Runtime/Debugger/Core/DebuggerConsts.cs +++ b/Runtime/GuruDebugger/Runtime/Debugger/Core/DebuggerConsts.cs @@ -12,6 +12,7 @@ namespace Guru.Debugger { public const string EventTabClicked = "evt_tab_clicked"; public const string EventViewClosed = "evt_view_closed"; + public const string EventMonitorClicked = "evt_monitor_clicked"; public static Action OnUIEvent = (e, o) => { }; } diff --git a/Runtime/GuruDebugger/Runtime/Debugger/UI/DebuggerViewRoot.cs b/Runtime/GuruDebugger/Runtime/Debugger/UI/DebuggerViewRoot.cs index b1c8eb8..69356ac 100644 --- a/Runtime/GuruDebugger/Runtime/Debugger/UI/DebuggerViewRoot.cs +++ b/Runtime/GuruDebugger/Runtime/Debugger/UI/DebuggerViewRoot.cs @@ -16,12 +16,14 @@ namespace Guru.Debugger [SerializeField] private Canvas _canvas; [SerializeField] private CanvasGroup _canvasGroup; + [SerializeField] private RectTransform _options; [SerializeField] private RectTransform _tabContent; [SerializeField] private RectTransform _optContent; [SerializeField] private RectTransform _binNode; [SerializeField] private Button _btnClose; + [SerializeField] private AdStatusMonitorView _adStatusMoniter; private const string PrefabPath = "ui/debugger_root"; private const string InstanceName = "__debugger__"; @@ -37,8 +39,8 @@ namespace Guru.Debugger } private EventSystem _eventSystem; - - + public AdStatusMonitorView AdStatusMonitor => _adStatusMoniter; + public RectTransform Options => _options; #region Static Calls @@ -83,7 +85,7 @@ namespace Guru.Debugger _eventSystem = EventSystem.current; } - Hide(); + HideOptions(); } private void SetupEventSystem() @@ -98,7 +100,7 @@ namespace Guru.Debugger private void OnCloseBtnEvent() { - Hide(); + HideOptions(); OnSelfClosed(); } @@ -106,9 +108,20 @@ namespace Guru.Debugger #region Display - public void Show() => Active = true; - public void Hide() => Active = false; - + public void ShowOptions() + { + _options.gameObject.SetActive(true); + if(_adStatusMoniter != null) + _adStatusMoniter.Active = false; + } + + public void HideOptions() + { + _options.gameObject.SetActive(false); + if(_adStatusMoniter != null) + _adStatusMoniter.Active = true; + } + #endregion #region Pages @@ -136,16 +149,38 @@ namespace Guru.Debugger #endregion - #region Dispos + #region Dispose private void OnSelfClosed() + { + + G.Events.OnUIEvent?.Invoke(G.Events.EventViewClosed, null); + } + + /// + /// 回收资源 + /// + public void Dispose() { CleanTabs(); CleanOptions(); - G.Events.OnUIEvent?.Invoke(G.Events.EventViewClosed, null); } #endregion + #region ADStauts + + + public void ShowAdStatusMonitor() + { + HideOptions(); + } + public void HideAdStatusMonitor() + { + ShowOptions(); + } + + + #endregion } } \ No newline at end of file diff --git a/Runtime/GuruDebugger/Runtime/Prefab/ads_status_monitor.prefab b/Runtime/GuruDebugger/Runtime/Prefab/ads_status_monitor.prefab new file mode 100644 index 0000000..acd6057 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Prefab/ads_status_monitor.prefab @@ -0,0 +1,197 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &6882285428453135357 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6882285428453135356} + - component: {fileID: 6882285428453135346} + - component: {fileID: 6882285428453135347} + - component: {fileID: 8651096947997972990} + - component: {fileID: 6882285428453135345} + 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 &6882285428453135356 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6882285428453135357} + 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: 6882285428606324423} + m_Father: {fileID: 0} + 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 &6882285428453135346 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6882285428453135357} + m_CullTransparentMesh: 1 +--- !u!114 &6882285428453135347 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6882285428453135357} + 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 &8651096947997972990 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6882285428453135357} + m_Enabled: 1 + m_Alpha: 0.8 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!114 &6882285428453135345 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6882285428453135357} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ed7d7e0d6ce2048c1bacbd901b97c752, type: 3} + m_Name: + m_EditorClassIdentifier: + _canvasGroup: {fileID: 8651096947997972990} + _txtInfo: {fileID: 6882285428606324422} +--- !u!1 &6882285428606324416 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6882285428606324423} + - component: {fileID: 6882285428606324421} + - component: {fileID: 6882285428606324422} + 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 &6882285428606324423 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6882285428606324416} + 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: 6882285428453135356} + 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 &6882285428606324421 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6882285428606324416} + m_CullTransparentMesh: 1 +--- !u!114 &6882285428606324422 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6882285428606324416} + 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/Prefab/ads_status_monitor.prefab.meta b/Runtime/GuruDebugger/Runtime/Prefab/ads_status_monitor.prefab.meta new file mode 100644 index 0000000..bf26ea1 --- /dev/null +++ b/Runtime/GuruDebugger/Runtime/Prefab/ads_status_monitor.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3d4690136aed1437d84dad04ab8cb331 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/GuruDebugger/Runtime/Resources/ui/debugger_root.prefab b/Runtime/GuruDebugger/Runtime/Resources/ui/debugger_root.prefab index 4b5d74f..95ec02b 100644 --- a/Runtime/GuruDebugger/Runtime/Resources/ui/debugger_root.prefab +++ b/Runtime/GuruDebugger/Runtime/Resources/ui/debugger_root.prefab @@ -36,7 +36,7 @@ RectTransform: 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_AnchoredPosition: {x: -480.00003, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0, y: 0.5} --- !u!114 &5678077650178334410 @@ -326,7 +326,7 @@ RectTransform: 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_AnchoredPosition: {x: 0, y: 870.0002} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 1} --- !u!114 &5678077650315353684 @@ -404,6 +404,7 @@ RectTransform: m_Children: - {fileID: 4157740473186689210} - {fileID: 5678077651094479703} + - {fileID: 8127378833627144401} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -429,6 +430,7 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 0 m_SortingLayerID: 0 m_SortingOrder: 1001 @@ -499,10 +501,12 @@ MonoBehaviour: m_EditorClassIdentifier: _canvas: {fileID: 5678077650595346845} _canvasGroup: {fileID: 1672044669829354977} + _options: {fileID: 5678077651094479703} _tabContent: {fileID: 5678077650178334411} _optContent: {fileID: 5678077650315353685} _binNode: {fileID: 4157740473186689210} _btnClose: {fileID: 5678077651910291720} + _adStatusMoniter: {fileID: 8127378833627144412} _tabPrefab: {fileID: 1285608918186647737} _optPrefab: {fileID: 3327545592706632832} _btnPrefab: {fileID: 3738088849103178904} @@ -1211,6 +1215,123 @@ RectTransform: m_CorrespondingSourceObject: {fileID: 7844578585297590382, guid: e22e7dc3c05a644c08c833a3a2f42a16, type: 3} m_PrefabInstance: {fileID: 2454777507547019034} m_PrefabAsset: {fileID: 0} +--- !u!1001 &3407243456510440237 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5678077650595346844} + m_Modifications: + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_AnchorMin.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_SizeDelta.x + value: 480 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_SizeDelta.y + value: 320 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_AnchoredPosition.x + value: -249 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_AnchoredPosition.y + value: 378 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135357, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_Name + value: ads_status + objectReference: {fileID: 0} + - target: {fileID: 6882285428453135357, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} +--- !u!224 &8127378833627144401 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 6882285428453135356, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + m_PrefabInstance: {fileID: 3407243456510440237} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8127378833627144412 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 6882285428453135345, guid: 3d4690136aed1437d84dad04ab8cb331, type: 3} + m_PrefabInstance: {fileID: 3407243456510440237} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ed7d7e0d6ce2048c1bacbd901b97c752, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1001 &6068955105058075581 PrefabInstance: m_ObjectHideFlags: 0