115 lines
2.3 KiB
C#
115 lines
2.3 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using Cysharp.Threading.Tasks;
|
||
using PhxhSDK;
|
||
using UnityEngine;
|
||
using UnityEngine.UI;
|
||
using Object = UnityEngine.Object;
|
||
|
||
public class UINode: MonoBehaviour
|
||
{
|
||
protected List<string> LoadedAssets = new List<string>();
|
||
public static UINode LoadNode()
|
||
{
|
||
return null;
|
||
}
|
||
|
||
protected void ClearBind(Button button)
|
||
{
|
||
button.onClick.RemoveAllListeners();
|
||
}
|
||
|
||
protected void BindButton(Button button, Action func)
|
||
{
|
||
button.onClick.AddListener(() =>
|
||
{
|
||
func?.Invoke();
|
||
});
|
||
}
|
||
|
||
protected void BindButton<T>(Button button, Action<T> func, T param)
|
||
{
|
||
button.onClick.AddListener(() =>
|
||
{
|
||
func?.Invoke(param);
|
||
});
|
||
}
|
||
|
||
protected T _GetComponent<T>(string path) where T: Behaviour
|
||
{
|
||
var compGo = transform.Find(path).gameObject;
|
||
if (compGo)
|
||
{
|
||
return compGo.GetComponent<T>();
|
||
}
|
||
|
||
DebugUtil.LogError($"{name}未找到组件{typeof(T).Name}: {path}");
|
||
return null;
|
||
}
|
||
|
||
protected GameObject _FindObj(string path)
|
||
{
|
||
var compGo = transform.Find(path).gameObject;
|
||
if (compGo)
|
||
{
|
||
return compGo;
|
||
}
|
||
|
||
DebugUtil.LogError($"{name}未找到节点:{path}");
|
||
return null;
|
||
}
|
||
|
||
protected async UniTask<T> LoadAssetAsync<T>(string path) where T : Object
|
||
{
|
||
var asset = await AssetManager.Instance.LoadAssetAsync<T>(path);
|
||
if (!LoadedAssets.Contains(path))
|
||
{
|
||
LoadedAssets.Add(path);
|
||
}
|
||
|
||
return asset;
|
||
}
|
||
|
||
protected T LoadAsset<T>(string path) where T : Object
|
||
{
|
||
return AssetManager.Instance.LoadAsset<T>(path);
|
||
}
|
||
|
||
public virtual void OnAwake()
|
||
{
|
||
|
||
}
|
||
public virtual void OnStart()
|
||
{
|
||
|
||
}
|
||
|
||
public virtual void OnUpdate()
|
||
{
|
||
|
||
}
|
||
|
||
public virtual void SetData(object data)
|
||
{
|
||
|
||
}
|
||
|
||
public virtual void OnShow()
|
||
{
|
||
|
||
}
|
||
|
||
public virtual void OnHide()
|
||
{
|
||
|
||
}
|
||
|
||
public virtual void OnRelease()
|
||
{
|
||
for (int i = 0; i < LoadedAssets.Count; i++)
|
||
{
|
||
AssetManager.Instance.Unload(LoadedAssets[i]);
|
||
}
|
||
LoadedAssets.Clear();
|
||
}
|
||
} |