企业网站建设的报价,工作室注册条件,好用WordPress产品展示主题,农产品网络营销模式近两年AI绘图技术有了长足发展#xff0c;准备把以前玩过的游戏类型重制下#xff0c;也算是圆了一个情怀梦。 鉴于unity商用水印和启动时间的原因#xff0c;我决定使用Laya来开发。目前laya已经更新到了3.0以上版本#xff0c;就用目前比较新的版本。 之后关于开发中遇到… 近两年AI绘图技术有了长足发展准备把以前玩过的游戏类型重制下也算是圆了一个情怀梦。 鉴于unity商用水印和启动时间的原因我决定使用Laya来开发。目前laya已经更新到了3.0以上版本就用目前比较新的版本。 之后关于开发中遇到的一些小问题我都会记录到这篇博客中。毕竟只是个人项目所以按照帖子的方式更新。 1Laya的生命周期 这个没什么说的了解unity的生命周期后这快设计的差不多实例化一个继承Laya的类的时候也可以看到相关的函数
/*** 组件被激活后执行此时所有节点和组件均已创建完毕此方法只执行一次*///onAwake(): void {}/*** 组件被启用后执行例如节点被添加到舞台后*///onEnable(): void {}/*** 组件被禁用时执行例如从节点从舞台移除后*///onDisable(): void {}/*** 第一次执行update之前执行只会执行一次*///onStart(): void {}/*** 手动调用节点销毁时执行*///onDestroy(): void {/*** 每帧更新时执行尽量不要在这里写大循环逻辑或者使用getComponent方法*///onUpdate(): void {}/*** 每帧更新时执行在update之后执行尽量不要在这里写大循环逻辑或者使用getComponent方法*///onLateUpdate(): void {}/*** 鼠标点击后执行。与交互相关的还有onMouseDown等十多个函数具体请参阅文档。*///onMouseClick(): void {} 2TS的单例化 单例化是常见的设计模式ts的单例化用传统写法是这样
export class UIProp {private static instance: UIProp null;static getInstance() {if (!UIProp.instance) {UIProp.instance new UIProp();}return UIProp.instance;}/* 单例模式仅允许通过 UIProp.getInstance 获取全局唯一实例*/private constructor() {console.log(创建函数);}public Start(){console.log(UI数据初始化); } public Update(){}}调用方法如下 UIProp.getInstance().Update(); 但明显这样写很麻烦尤其在单例化很多的情况下。而我想到在C#可以用静态泛型的方法解决。ts既然语法特性和C#很像没道理不能简化如是我又找到了如下写法
//实例化脚本:基类
export class SingletonT{private static inst: any null;public static InstT(s: { new(): T }): T{if (this.inst null){this.inst new s();}return this.inst;}} 之后再想创建单例化类的时候只需要这样写就行。
import { Singleton } from ./Singleton;/*** name*/
export class Test extends SingletonTest{public Start(){console.log(初始化成功Test);}
} 调用方法如下 Test.Inst(Test).Start(); 我们简单测试下结果如下 暂时就先更新这么多数据存储和读表放到端午节再更。
~~~~~~~2023/6/18~~~~~~~~