HAARFTE/Assets/DemoGame/GameScript/Hotfix/FloorBase/GameObjectBase.cs

60 lines
1.3 KiB
C#

using System;
using UnityEngine;
namespace ZC
{
public class GameObjectBase<T> : MonoBehaviour, IBehaviour
{
private long _id = 0;
private bool _isDisposed;
private bool _isPause;
GameObjectBinding _binding;
public GameObjectBinding binding => _binding;
public long Id => this._id;
public bool isDisposed => this._isDisposed;
public bool isPause => this._isPause;
private void Awake()
{
_binding = gameObject.GetComponent<GameObjectBinding>();
OnInit();
}
public void SetID(long id)
{
if (_id != 0)
throw new ArgumentException("id 不允许二次修改,一次固定的!");
_id = id;
}
public virtual void OnInit()
{
this._isDisposed = false;
this._isPause = false;
}
public virtual void OnUpdate(float dateTime)
{
}
public virtual void OnPause()
{
this._isPause = true;
}
public virtual void OnResume()
{
this._isPause = false;
}
public virtual void OnDispose()
{
this._isDisposed = true;
DestroyImmediate(this.gameObject);
}
}
}