BITFALL/Assets/Artists/Scripts/UX/UXBase.cs

40 lines
935 B
C#
Raw Normal View History

2024-04-06 16:33:57 +08:00
using System.Collections;
using System.Collections.Generic;
using BITFALL.Hotkey;
using BITKit;
using BITKit.Entities;
using BITKit.Entities.Player;
using BITKit.Selection;
using BITKit.UX;
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.UIElements;
namespace BITFALL.UX
{
public abstract class UXBase : UIToolKitPanel
{
[SerializeReference, SubclassSelector] private IPlayerService playerService;
protected override void Start()
{
base.Start();
destroyCancellationToken.Register(Dispose);
playerService.OnPlayerInitialized += OnPlayerInitialized;
playerService.OnPlayerDisposed += OnPlayerDisposed;
}
protected virtual void OnPlayerDisposed(Entity obj)
{
InjectAttribute.Clear(this);
}
protected virtual void OnPlayerInitialized(Entity obj)
{
obj.Inject(this);
}
protected virtual void Dispose()
{
playerService.OnPlayerInitialized -= OnPlayerInitialized;
}
}
}