新增 FlowScope Git 包雏形
This commit is contained in:
31
Packages/com.flowscope.gamecore/Runtime/UI/UIPanelBase.cs
Normal file
31
Packages/com.flowscope.gamecore/Runtime/UI/UIPanelBase.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
using R3;
|
||||
using UnityEngine;
|
||||
|
||||
namespace FlowScope.UI
|
||||
{
|
||||
internal interface IUIPanel
|
||||
{
|
||||
GameObject gameObject { get; }
|
||||
Transform transform { get; }
|
||||
void Unbind();
|
||||
}
|
||||
|
||||
public abstract class UIPanelBase<TViewModel> : MonoBehaviour, IUIPanel
|
||||
{
|
||||
protected TViewModel ViewModel { get; private set; }
|
||||
protected CompositeDisposable Disposables { get; } = new();
|
||||
|
||||
public void Bind(TViewModel viewModel)
|
||||
{
|
||||
ViewModel = viewModel;
|
||||
OnBind(viewModel);
|
||||
}
|
||||
|
||||
public virtual void Unbind()
|
||||
{
|
||||
Disposables.Clear();
|
||||
}
|
||||
|
||||
protected abstract void OnBind(TViewModel viewModel);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user