class GameMgr{
public static instance:GameMgr=null;
onLoad(){
GameMgr.instance=this;
}
}
这一句GameMgr.instance=this是什么意思?可以理解为GameMgr.instance=new GameMgr()吗?
class GameMgr{
public static instance:GameMgr=null;
onLoad(){
GameMgr.instance=this;
}
}
这一句GameMgr.instance=this是什么意思?可以理解为GameMgr.instance=new GameMgr()吗?
这应该是继承自组件才对,组件才会有 onLoad。组件的话 ,无法直接 new,通常就是用这种方式实现单例
组件类是由引擎实例化的。所以说并不能保证类只被实例化一次。
正常来说可以通过设置构造函数为private.然后提供一个公有的getInstance函数,空就创建,非空就返回(语法上就保证不能通过其他接口实例化这个类)。
但是组件类是引擎管的。
你肯定不想改引擎。可以通过代码技巧达成目的。
可以这样写
public static Instance:GameMgr=null;
onLoad(): void {
if(GameMgr.Instance===null){
GameMgr.Instance=this;
}
else{
this.destroy();
return;
}
}
实例化没有限制,
但除了第一次实例化,后续再实例化出来的对象,当即就销毁。
该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。