using System; using Fort23.Core; using Fort23.UTool; using UnityEngine; namespace Fort23.Mono { public class UIComponent : UIBase, IGObjectPoolInterface { private bool _isActivePool; public virtual async void Show() { await base.Show(); } public virtual void Close() { } public string poolObjName { get; set; } public bool isUse { get; set; } public bool isDestroy { get; } public AssetHandle AssetHandle { get; set; } public TimerEntity DestroyTimer { get; set; } public GameObject own { get { return _own; } } private GameObject _own; public virtual void ResetData() { } /// /// 池子激活的时候 /// public virtual void ActiveObj() { _isActivePool = true; own.SetActive(true); } /// /// 对方放回池子的时候 /// public virtual void DormancyObj() { own.SetActive(false); if (!_isActivePool) { return; } DelEvent(); } public void SetPosition(Vector3 pos) { #if !COMBAT_SERVER _own.transform.position = pos; #endif } public void SetScale(Vector3 scale) { #if !COMBAT_SERVER _own.transform.localScale = scale; #endif } public void SetRotation(Vector3 rotation) { #if !COMBAT_SERVER _own.transform.eulerAngles = rotation; #endif } public Vector3 GetPosition() { throw new System.NotImplementedException(); } public Vector3 GetScale() { throw new System.NotImplementedException(); } public Vector3 GettRotation() { throw new System.NotImplementedException(); } public void SetActive(bool isActive) { #if !COMBAT_SERVER _own.SetActive(isActive); #endif } public async CTask DelayHide() { } /// /// 对象被销毁的时候 /// public virtual void DestroyObj() { if (!_isActivePool) { return; } DelEvent(); } public virtual void Preset() { } public virtual void AddEvent() { } public virtual void DelEvent() { } public void SetGameObject(GameObject gameObject) { _own = gameObject; } } }