php網(wǎng)站開發(fā)要學(xué)什么軟件培訓(xùn)學(xué)校招生方案范文
? 近兩年AI繪圖技術(shù)有了長(zhǎng)足發(fā)展,準(zhǔn)備把以前玩過的游戲類型重制下,也算是圓了一個(gè)情懷夢(mèng)。
? 鑒于unity商用水印和啟動(dòng)時(shí)間的原因,我決定使用Laya來開發(fā)。目前l(fā)aya已經(jīng)更新到了3.0以上版本,就用目前比較新的版本。
? 之后關(guān)于開發(fā)中遇到的一些小問題,我都會(huì)記錄到這篇博客中。畢竟只是個(gè)人項(xiàng)目,所以按照帖子的方式更新。
1,Laya的生命周期
? 這個(gè)沒什么說的,了解unity的生命周期后,這快設(shè)計(jì)的差不多,實(shí)例化一個(gè)繼承Laya的類的時(shí)候,也可以看到相關(guān)的函數(shù):
/*** 組件被激活后執(zhí)行,此時(shí)所有節(jié)點(diǎn)和組件均已創(chuàng)建完畢,此方法只執(zhí)行一次*///onAwake(): void {}/*** 組件被啟用后執(zhí)行,例如節(jié)點(diǎn)被添加到舞臺(tái)后*///onEnable(): void {}/*** 組件被禁用時(shí)執(zhí)行,例如從節(jié)點(diǎn)從舞臺(tái)移除后*///onDisable(): void {}/*** 第一次執(zhí)行update之前執(zhí)行,只會(huì)執(zhí)行一次*///onStart(): void {}/*** 手動(dòng)調(diào)用節(jié)點(diǎn)銷毀時(shí)執(zhí)行*///onDestroy(): void {/*** 每幀更新時(shí)執(zhí)行,盡量不要在這里寫大循環(huán)邏輯或者使用getComponent方法*///onUpdate(): void {}/*** 每幀更新時(shí)執(zhí)行,在update之后執(zhí)行,盡量不要在這里寫大循環(huán)邏輯或者使用getComponent方法*///onLateUpdate(): void {}/*** 鼠標(biāo)點(diǎn)擊后執(zhí)行。與交互相關(guān)的還有onMouseDown等十多個(gè)函數(shù),具體請(qǐng)參閱文檔。*///onMouseClick(): void {}
2,TS的單例化
? 單例化是常見的設(shè)計(jì)模式,ts的單例化用傳統(tǒng)寫法是這樣:
export class UIProp {private static instance: UIProp = null;static getInstance() {if (!UIProp.instance) {UIProp.instance = new UIProp();}return UIProp.instance;}/* 單例模式,僅允許通過 UIProp.getInstance 獲取全局唯一實(shí)例*/private constructor() {console.log("創(chuàng)建函數(shù)");}public Start(){console.log("UI數(shù)據(jù)初始化"); } public Update(){}}
調(diào)用方法如下:
UIProp.getInstance().Update();
? 但明顯這樣寫很麻煩,尤其在單例化很多的情況下。而我想到,在C#可以用靜態(tài)+泛型的方法解決。ts既然語法特性和C#很像,沒道理不能簡(jiǎn)化,如是我又找到了如下寫法:
//實(shí)例化腳本:基類
export class Singleton<T>{private static inst: any = null;public static Inst<T>(s: { new(): T }): T{if (this.inst == null){this.inst = new s();}return this.inst;}}
? 之后再想創(chuàng)建單例化類的時(shí)候,只需要這樣寫就行。
import { Singleton } from "./Singleton";/*** name*/
export class Test extends Singleton<Test>{public Start(){console.log("初始化成功Test");}
}
? 調(diào)用方法如下:
Test.Inst(Test).Start();
? 我們簡(jiǎn)單測(cè)試下,結(jié)果如下:
? ?暫時(shí)就先更新這么多,數(shù)據(jù)存儲(chǔ)和讀表放到端午節(jié)再更。
~~~~~~~2023/6/18~~~~~~~~