update: add event bus
parent
1ecd077085
commit
252de80d7d
|
|
@ -60,7 +60,7 @@ namespace Guru.Editor
|
||||||
#region 构建 Android 接口
|
#region 构建 Android 接口
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
/// 构建 Android 包体
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="buildParam"></param>
|
/// <param name="buildParam"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
|
|
|
||||||
|
|
@ -117,6 +117,7 @@ namespace Guru
|
||||||
{
|
{
|
||||||
_badsloadStartTime = Time.realtimeSinceStartup;
|
_badsloadStartTime = Time.realtimeSinceStartup;
|
||||||
_chanelMax.LoadBannerAD();
|
_chanelMax.LoadBannerAD();
|
||||||
|
OnBannerStartLoad?.Invoke(_chanelMax.MaxBADSSlotID);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
@ -148,6 +149,7 @@ namespace Guru
|
||||||
private void OnLoadMaxIV() {
|
private void OnLoadMaxIV() {
|
||||||
_iadsLoadStartTime = Time.realtimeSinceStartup; // 更新计时器
|
_iadsLoadStartTime = Time.realtimeSinceStartup; // 更新计时器
|
||||||
_chanelMax.LoadInterstitialAD();
|
_chanelMax.LoadInterstitialAD();
|
||||||
|
OnInterstitialStartLoad?.Invoke(_chanelMax.MaxIADSSlotID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -180,6 +182,7 @@ namespace Guru
|
||||||
{
|
{
|
||||||
_radsLoadStartTime = Time.realtimeSinceStartup; // 更新计时器
|
_radsLoadStartTime = Time.realtimeSinceStartup; // 更新计时器
|
||||||
_chanelMax.LoadRewardAD();
|
_chanelMax.LoadRewardAD();
|
||||||
|
OnRewardStartLoad?.Invoke(_chanelMax.MaxRADSSlotID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,11 +26,14 @@ namespace Guru
|
||||||
|
|
||||||
protected Action _onSdkInitReady;
|
protected Action _onSdkInitReady;
|
||||||
|
|
||||||
|
public static Action<string> OnBannerStartLoad;
|
||||||
public static Action OnBannerLoaded;
|
public static Action OnBannerLoaded;
|
||||||
|
|
||||||
|
public static Action<string> OnInterstitialStartLoad;
|
||||||
public static Action OnInterstitialLoaded;
|
public static Action OnInterstitialLoaded;
|
||||||
public static Action OnInterstitialFailed;
|
public static Action OnInterstitialFailed;
|
||||||
|
|
||||||
|
public static Action<string> OnRewardStartLoad;
|
||||||
public static Action OnRewardLoaded;
|
public static Action OnRewardLoaded;
|
||||||
public static Action OnRewardFailed;
|
public static Action OnRewardFailed;
|
||||||
|
|
||||||
|
|
@ -545,7 +548,7 @@ namespace Guru
|
||||||
if (IsRadsLoading) return;
|
if (IsRadsLoading) return;
|
||||||
|
|
||||||
OnLoadRads();
|
OnLoadRads();
|
||||||
var id = GetRewardedVideoID();
|
var id = GetRewardedID();
|
||||||
Analytics.ADRadsLoad(AdParams.Build(id)); // 上报打点
|
Analytics.ADRadsLoad(AdParams.Build(id)); // 上报打点
|
||||||
MaxSdk.LoadRewardedAd(id);
|
MaxSdk.LoadRewardedAd(id);
|
||||||
}
|
}
|
||||||
|
|
@ -561,7 +564,7 @@ namespace Guru
|
||||||
if (!IsInitialized)
|
if (!IsInitialized)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return MaxSdk.IsRewardedAdReady(GetRewardedVideoID());
|
return MaxSdk.IsRewardedAdReady(GetRewardedID());
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -589,7 +592,7 @@ namespace Guru
|
||||||
_rewardAction = rewardAction;
|
_rewardAction = rewardAction;
|
||||||
_failAction = failAction;
|
_failAction = failAction;
|
||||||
_dismissAction = dismissAction;
|
_dismissAction = dismissAction;
|
||||||
MaxSdk.ShowRewardedAd(GetRewardedVideoID());
|
MaxSdk.ShowRewardedAd(GetRewardedID());
|
||||||
|
|
||||||
// RequestRewardedAD();
|
// RequestRewardedAD();
|
||||||
}
|
}
|
||||||
|
|
@ -684,7 +687,7 @@ namespace Guru
|
||||||
|
|
||||||
#region Ad Settings
|
#region Ad Settings
|
||||||
|
|
||||||
protected virtual string GetRewardedVideoID()
|
protected virtual string GetRewardedID()
|
||||||
{
|
{
|
||||||
return GuruSettings.Instance.ADSetting.GetRewardedVideoID();
|
return GuruSettings.Instance.ADSetting.GetRewardedVideoID();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 48d4ca9d7e6c4393bf13f6ce619145bc
|
||||||
|
timeCreated: 1714970592
|
||||||
|
|
@ -21,9 +21,9 @@ namespace Guru
|
||||||
#region 广告位
|
#region 广告位
|
||||||
|
|
||||||
// ---------------- Max 广告位ID --------------------
|
// ---------------- Max 广告位ID --------------------
|
||||||
internal string MaxBannerSlotID => GuruSettings.Instance.ADSetting.GetBannerID();
|
internal string MaxBADSSlotID => GuruSettings.Instance.ADSetting.GetBannerID();
|
||||||
internal string MaxIVSlotID => GuruSettings.Instance.ADSetting.GetInterstitialID();
|
internal string MaxIADSSlotID => GuruSettings.Instance.ADSetting.GetInterstitialID();
|
||||||
internal string MaxRVSlotID => GuruSettings.Instance.ADSetting.GetRewardedVideoID();
|
internal string MaxRADSSlotID => GuruSettings.Instance.ADSetting.GetRewardedVideoID();
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
@ -49,11 +49,11 @@ namespace Guru
|
||||||
{
|
{
|
||||||
// Banners are automatically sized to 320x50 on phones and 728x90 on tablets
|
// 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
|
// You may use the utility method `MaxSdkUtils.isTablet()` to help with view sizing adjustments
|
||||||
MaxSdk.CreateBanner(MaxBannerSlotID, MaxSdkBase.BannerPosition.BottomCenter);
|
MaxSdk.CreateBanner(MaxBADSSlotID, MaxSdkBase.BannerPosition.BottomCenter);
|
||||||
MaxSdk.SetBannerExtraParameter(MaxBannerSlotID, "adaptive_banner", "false");
|
MaxSdk.SetBannerExtraParameter(MaxBADSSlotID, "adaptive_banner", "false");
|
||||||
// Set background or background color for banners to be fully functional
|
// Set background or background color for banners to be fully functional
|
||||||
MaxSdk.SetBannerBackgroundColor(MaxBannerSlotID, _backColor);
|
MaxSdk.SetBannerBackgroundColor(MaxBADSSlotID, _backColor);
|
||||||
Analytics.ADBadsLoad(AdParams.Build(MaxBannerSlotID));
|
Analytics.ADBadsLoad(AdParams.Build(MaxBADSSlotID));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetBannerBackColor(string hex)
|
public void SetBannerBackColor(string hex)
|
||||||
|
|
@ -69,8 +69,8 @@ namespace Guru
|
||||||
public bool IsInterstitialRequestOver => true;
|
public bool IsInterstitialRequestOver => true;
|
||||||
public void LoadInterstitialAD()
|
public void LoadInterstitialAD()
|
||||||
{
|
{
|
||||||
Analytics.ADIadsLoad(AdParams.Build(MaxIVSlotID)); // 上报打点
|
Analytics.ADIadsLoad(AdParams.Build(MaxIADSSlotID)); // 上报打点
|
||||||
MaxSdk.LoadInterstitial(MaxIVSlotID);
|
MaxSdk.LoadInterstitial(MaxIADSSlotID);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
@ -80,8 +80,8 @@ namespace Guru
|
||||||
public bool IsRewardRequestOver => true;
|
public bool IsRewardRequestOver => true;
|
||||||
public void LoadRewardAD()
|
public void LoadRewardAD()
|
||||||
{
|
{
|
||||||
Analytics.ADRadsLoad(AdParams.Build(MaxRVSlotID)); // 上报打点
|
Analytics.ADRadsLoad(AdParams.Build(MaxRADSSlotID)); // 上报打点
|
||||||
MaxSdk.LoadRewardedAd(MaxRVSlotID);
|
MaxSdk.LoadRewardedAd(MaxRADSSlotID);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 31cc00ccd21c4fdc9fb6ea0163677367
|
||||||
|
timeCreated: 1714955721
|
||||||
|
|
@ -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<string, List<Delegate>> _normalEvents;
|
||||||
|
private Dictionary<string, List<Delegate>> _mainThreadEvents;
|
||||||
|
private Queue<MainThreadEvent> _mainThreadQueue;
|
||||||
|
private Queue<MainThreadEvent> _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<EventBus>();
|
||||||
|
ins.Init();
|
||||||
|
return ins;
|
||||||
|
}
|
||||||
|
public static EventBus AttachOnHost(Component component)
|
||||||
|
{
|
||||||
|
return component.gameObject.AddComponent<EventBus>();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#region API
|
||||||
|
|
||||||
|
public static void Bind(string evtName, Action<object> callback)
|
||||||
|
{
|
||||||
|
if (Instance == null)
|
||||||
|
{
|
||||||
|
LogE($"{Tag} EventBus is not ready");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Instance.AddNormalEvent(evtName, callback);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static void UnBind(string evtName, Action<object> callback)
|
||||||
|
{
|
||||||
|
if (Instance == null)
|
||||||
|
{
|
||||||
|
LogE($"{Tag} EventBus is not ready");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Instance.RemoveNormalEvent(evtName, callback);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static void BindOnMainThread(string evtName, Action<object> callback)
|
||||||
|
{
|
||||||
|
if (Instance == null)
|
||||||
|
{
|
||||||
|
LogE($"{Tag} EventBus is not ready");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Instance.AddNormalEventOnMainThread(evtName, callback);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static void UnBindOnMainThread(string evtName, Action<object> 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<string, List<Delegate>>(20);
|
||||||
|
_mainThreadEvents = new Dictionary<string, List<Delegate>>(20);
|
||||||
|
_mainThreadQueue = new Queue<MainThreadEvent>(20);
|
||||||
|
_mainThreadEventPool = new Queue<MainThreadEvent>(20);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void AddEvent(string evtName, Action<object> callback, ref Dictionary<string, List<Delegate>> dict)
|
||||||
|
{
|
||||||
|
if (dict == null) dict = new Dictionary<string, List<Delegate>>(20);
|
||||||
|
|
||||||
|
if (!IsEventExists(evtName, dict))
|
||||||
|
{
|
||||||
|
dict[evtName] = new List<Delegate>(20);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!dict[evtName].Contains(callback))
|
||||||
|
{
|
||||||
|
dict[evtName].Add(callback);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void RemoveEvent(string evtName, Action<object> callback, ref Dictionary<string, List<Delegate>> dict)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (dict == null)
|
||||||
|
{
|
||||||
|
dict = new Dictionary<string, List<Delegate>>(20);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (IsEventExists(evtName, dict) && dict[evtName].Contains(callback))
|
||||||
|
{
|
||||||
|
dict[evtName].Remove(callback);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool IsEventExists(string eventName, Dictionary<string , List<Delegate>> events)
|
||||||
|
{
|
||||||
|
if(events == null) return false;
|
||||||
|
return events.ContainsKey(eventName);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Normal Events
|
||||||
|
|
||||||
|
|
||||||
|
private void AddNormalEvent(string evtName, Action<object> callback)
|
||||||
|
{
|
||||||
|
AddEvent(evtName, callback, ref _normalEvents);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void AddNormalEventOnMainThread(string evtName, Action<object> callback)
|
||||||
|
{
|
||||||
|
AddEvent(evtName, callback, ref _mainThreadEvents);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RemoveNormalEvent(string evtName, Action<object> callback)
|
||||||
|
{
|
||||||
|
RemoveEvent(evtName, callback, ref _normalEvents);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RemoveNormalEventOnMainThread(string evtName, Action<object> 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<MainThreadEvent>(20);
|
||||||
|
_mainThreadQueue.Enqueue(GetMainThreadEvent(evtName, evtBody));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SaveMainThreadEvent(MainThreadEvent evt)
|
||||||
|
{
|
||||||
|
if (_mainThreadEventPool == null)
|
||||||
|
{
|
||||||
|
_mainThreadEventPool = new Queue<MainThreadEvent>(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
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5e386f6917c242d48ba0913b1c2713ce
|
||||||
|
timeCreated: 1714955737
|
||||||
|
|
@ -5,7 +5,7 @@ namespace Guru
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public partial class GameDefine
|
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_LOG = "ENABLE_LOG";
|
||||||
public const string MACRO_DEBUG = "DEBUG";
|
public const string MACRO_DEBUG = "DEBUG";
|
||||||
public const string MACRO_RELEASE = "RELEASE";
|
public const string MACRO_RELEASE = "RELEASE";
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d717553eea6bf4338b9f3059be371e71
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -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();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 48c5db714459493d8d02ecaf89f1c2ac
|
||||||
|
timeCreated: 1711084921
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 036a24160e57d414290c124d76a4a66f
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d58fb9f98adf4830b25ff52a810ffdd6
|
||||||
|
timeCreated: 1714471155
|
||||||
|
|
@ -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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2d3bb9dff8e44e5c8d76a505ebf0e5c0
|
||||||
|
timeCreated: 1714188842
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 707f290f7f5a40959be9a2e4cc3f7196
|
||||||
|
timeCreated: 1714190216
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: afeefc6f0b0b4a88b274a24366952bd1
|
||||||
|
timeCreated: 1714189118
|
||||||
|
|
@ -0,0 +1,59 @@
|
||||||
|
|
||||||
|
|
||||||
|
namespace Guru.Debugger
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 广告类型
|
||||||
|
/// </summary>
|
||||||
|
public enum AdType
|
||||||
|
{
|
||||||
|
Banner,
|
||||||
|
Interstitial,
|
||||||
|
Rewarded,
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 广告状态枚举
|
||||||
|
/// </summary>
|
||||||
|
public enum AdStatusType
|
||||||
|
{
|
||||||
|
NotReady,
|
||||||
|
Loading,
|
||||||
|
Loaded,
|
||||||
|
LoadFailed,
|
||||||
|
DisplayFailed,
|
||||||
|
Closed,
|
||||||
|
Paid,
|
||||||
|
Clicked
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 广告状态信息
|
||||||
|
/// </summary>
|
||||||
|
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}";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: acca1ff8fa8e4b22a42b1e99d6f0da06
|
||||||
|
timeCreated: 1714189132
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a03478ca777c43ce8cbf5e029732621f
|
||||||
|
timeCreated: 1714189110
|
||||||
|
|
@ -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++;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0d43f5b89b964c17bc59f0e51dbe472b
|
||||||
|
timeCreated: 1714180020
|
||||||
|
|
@ -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();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 数据刷新
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="info"></param>
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ed7d7e0d6ce2048c1bacbd901b97c752
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -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<AdStatusInfo> _bannerInfos;
|
||||||
|
private Queue<AdStatusInfo> _interInfos;
|
||||||
|
private Queue<AdStatusInfo> _rewardInfos;
|
||||||
|
|
||||||
|
private AdStatusInfo _curBadsInfo;
|
||||||
|
private AdStatusInfo _curIadsInfo;
|
||||||
|
private AdStatusInfo _curRadsInfo;
|
||||||
|
|
||||||
|
#region InfoContainer
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 添加对应的 Info
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="info"></param>
|
||||||
|
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 $"<color=#{hexColor}>{content}</color>";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
#region AppLovin
|
||||||
|
|
||||||
|
private void InitAdsCallbacks()
|
||||||
|
{
|
||||||
|
AddCallbacks();
|
||||||
|
|
||||||
|
_bannerInfos = new Queue<AdStatusInfo>(AdStatusConsts.MaxInfoCount);
|
||||||
|
_interInfos = new Queue<AdStatusInfo>(AdStatusConsts.MaxInfoCount);
|
||||||
|
_rewardInfos = new Queue<AdStatusInfo>(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
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 17f2898f0a96448f91b71112d7bf19dc
|
||||||
|
timeCreated: 1714190118
|
||||||
|
|
@ -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
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 70de9f517f574b00ad3b5e88933bba06
|
||||||
|
timeCreated: 1714189561
|
||||||
|
|
@ -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();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Debugger Root
|
||||||
|
/// </summary>
|
||||||
|
private void LoadDebuggerRoot()
|
||||||
|
{
|
||||||
|
var prefab = Resources.Load<GameObject>(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<AdStatusMonitorView>();
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 85c881cbd1224a23a1e305a13602fe0a
|
||||||
|
timeCreated: 1714180008
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d0d21acdf9214513b93ebcc7b58f2c8d
|
||||||
|
timeCreated: 1714136951
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 326887151680842e4ad2390b0dfa1953
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -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'
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4332e3ea47cf5426c90ffcb6817292e6
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f78334aec158543b2b8fc6157f69764b
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: be43df6b6918346819c7938339e0fb93
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -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<string, List<OptionLayout>> 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<string, List<OptionLayout>>(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<OptionLayout>(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<OptionLayout>(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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 渲染页面
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="tabName"></param>
|
||||||
|
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<OptionItemLayout> items;
|
||||||
|
|
||||||
|
|
||||||
|
public OptionLayout()
|
||||||
|
{
|
||||||
|
items = new List<OptionItemLayout>(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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f5ccddaa61334c748afe7c39cf8e11b7
|
||||||
|
timeCreated: 1711014134
|
||||||
|
|
@ -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<string, object> 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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1f8d5969a496489eab759e7ff15a9cdc
|
||||||
|
timeCreated: 1711021436
|
||||||
|
|
@ -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<RectTransform>();
|
||||||
|
|
||||||
|
OnCreated();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void OnCreated()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 刷新UI
|
||||||
|
/// </summary>
|
||||||
|
public virtual void Refresh()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c65140f21e494b6fa50779248643af52
|
||||||
|
timeCreated: 1711063080
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4351260f681b42d9851e353f24f3b05a
|
||||||
|
timeCreated: 1711018597
|
||||||
|
|
@ -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<UITabItem> _tabPools;
|
||||||
|
private Queue<UIOptionItem> _optPools;
|
||||||
|
|
||||||
|
private List<UITabItem> _displayedTabs;
|
||||||
|
private List<UIOptionItem> _displayedOptions;
|
||||||
|
|
||||||
|
private long _tabIds = 0;
|
||||||
|
private long _optIds = 0;
|
||||||
|
private long _btnIds = 0;
|
||||||
|
private long _lbIds = 0;
|
||||||
|
|
||||||
|
private void InitFactory()
|
||||||
|
{
|
||||||
|
_tabPools = new Queue<UITabItem>(10);
|
||||||
|
_optPools = new Queue<UIOptionItem>(20);
|
||||||
|
|
||||||
|
_tabPrefab.Parent = _binNode;
|
||||||
|
_optPrefab.Parent = _binNode;
|
||||||
|
|
||||||
|
|
||||||
|
_displayedTabs = new List<UITabItem>(10);
|
||||||
|
_displayedOptions = new List<UIOptionItem>(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<UITabItem>();
|
||||||
|
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<UIOptionItem>();
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 选项回收
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="opt"></param>
|
||||||
|
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<VButton>();
|
||||||
|
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<VLabel>();
|
||||||
|
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
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3a8636631ec74eeea6dff03bdc79c03c
|
||||||
|
timeCreated: 1711026127
|
||||||
|
|
@ -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<GameObject>(PrefabPath);
|
||||||
|
if (p != null)
|
||||||
|
{
|
||||||
|
var go = Instantiate(p);
|
||||||
|
DontDestroyOnLoad(go);
|
||||||
|
go.name = InstanceName;
|
||||||
|
return go.GetComponent<DebuggerViewRoot>();
|
||||||
|
}
|
||||||
|
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<EventSystem>();
|
||||||
|
go.AddComponent<StandaloneInputModule>();
|
||||||
|
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<string> tabs = null)
|
||||||
|
{
|
||||||
|
if (tabs == null)
|
||||||
|
{
|
||||||
|
tabs = new List<string>(_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
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 128174e534964447a73e381ca1fadd0f
|
||||||
|
timeCreated: 1711018610
|
||||||
|
|
@ -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);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d783b7f8e37f48f3bc36e2877c6143b3
|
||||||
|
timeCreated: 1711025708
|
||||||
|
|
@ -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<UIOptionItem> OnRecycle;
|
||||||
|
private List<GameObject> _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<GameObject>(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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8010bd3b4bfd4274997d438a1d99ae19
|
||||||
|
timeCreated: 1711024532
|
||||||
|
|
@ -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<string> OnClicked;
|
||||||
|
public Action<UITabItem> 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
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 74db3f6a69ff47f0880e1250393e6f7f
|
||||||
|
timeCreated: 1711020325
|
||||||
|
|
@ -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();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: cd788ac6ee4f4afe9d57738d49a3fdc4
|
||||||
|
timeCreated: 1711020763
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e85702df90d74eb4892a7a742bcb0f05
|
||||||
|
timeCreated: 1711026040
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 47c2a153e811d49d1b9680abd08382f7
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -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}
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c84e57ed527f24e6ab91e1cf45aa6ca4
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -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:
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: db9336d7824134e1cb737eb3ba4c9d93
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -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:
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e22e7dc3c05a644c08c833a3a2f42a16
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -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
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d0b72a82a22a748f89a2896a633bad10
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -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
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4557ac9378ce94fd38269da8f9aa86e3
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0ebe768b61d1d4fa782e856b6bca6eff
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5c11309f0c00147efabb99ad473fa760
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 346f45e927caa428a96dfb925af7ceeb
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c72ccdd308b4438e84ba71a4bc049aff
|
||||||
|
timeCreated: 1711037647
|
||||||
|
|
@ -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();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ea03c9090000940e3a5ae500d9d918bc
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -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}
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1873ecc2969fb40fdb00731d8abfd8f7
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Loading…
Reference in New Issue