首先,第一点,约束脚本实例对象的个数,这个在上一篇中已经实现了。 但是第二点,约束GameObject的个数,这个需求,还没有思路,只好在游戏运行时判断有多少个GameObject已经挂上了该脚本,然后如果个数大于1抛出错误即可。 第三点,通过继承MonoBehaviour实现,只要覆写相应的回调方法即可。 第四点,在脚本销毁时,把静态实例置空。 完整的代码就如下所示: using UnityEngine;
/// summary/// 需要使用Unity生命周期的单例模式/// /summarynamespace QFramework { public abstract class QMonoSingletonT : MonoBehaviour where T : QMonoSingletonT { protectedstatic T instance = null;
publicstatic T Instance(){ if (instance == null) { instance = FindObjectOfTypeT();
if (FindObjectsOfTypeT().Length 1) { QPrint.FrameworkError ("More than 1!"); return instance; }