上一篇我們學習了UI部分,這一篇我們學習其他部分,按照老規矩還是先打開官方文檔
ResourceModule
在官方文檔里介紹了當前加載的設置,但是我們是小白看不懂,那就不管他內部怎么實現的,我們主要看下面的代碼給的方法,在我們使用Yooasset打包后,使用他給的框架封裝后的代碼直接調用即可。
![在這里插入圖片描述](https://i-blog.csdnimg.cn/direct/fd7d47bfb0e3420db1f3c45d566dfacf.png
如果使用LoadAssetAsync獲取的是你傳入類型的物體,接收后可以針對接收的數據進行處理
如果使用LoadGameObjectAsyn根據你傳入的名稱直接實例化,其他方法可以自己F12進入腳本自己查看。
GameEvent
在腳本中添加官方文檔的添加事件方法,點擊按鈕會觸發注冊的事件,改為用int也可以,但是文檔中的轉int方法不能使用,可自己更換或者直接寫入int值。
但是經過菊佬指點,te中有這個runtimeid這個類,可以把字符串轉int 經過測試一樣可以實現
群里大佬小博君指點框架內有一個自帶事件的示例,雙擊打開腳本看到其中,自帶兩個方法,其中
第一個方法在GameApp的初始化有調用,剛開始不清楚是為什么,經過學習事件相關我們知道了這個是事件的實現方法,那么讓我們測試一下看看寫入自己的方法如何使用。
首先在腳本中添加我們的測試方法,然后注冊此方法的事件,最后在調用注冊的事件。
在事件添加中我們發現這個腳本是有專屬的event腳本,我們進去查看會發現,在ILoginUI腳本增加的方法,在這個腳本中會自動轉為Int,剩下步驟就和上方的一樣注冊與調用。
我們寫了添加事件,也不能忘記刪除直接在腳本結束時調用這個方法就可以把事件移除,但是有人會突然發現為什么報錯了,經過te群里大佬解答是因為lambda是new的方法,并不是原來的地址,所以聲明一個void方法, 把方法替換我這個lambda表達式就可以了。原諒我的疏忽,我為了熟悉框架就懶的省了很多,大家不要學我。
但是有的同學要問了,為什么要多此一舉用一個接口腳本進行外包一層呢,我們進入ILoginUI腳本中看看,這個腳本引用了枚舉EEventGroup進行分類。
根據我的猜想應該是作者為了避免項目工程大了以后,在其他地方亂用添加事件,從而新建一個接口類,在這個接口類中把相關的所有方法都在這里標記。
所有的事件都能在相應的接口類下找到在哪里調用,后期修改也很容易找到,我們后面使用的時候可以新增接口類,把要添加事件的方法都寫入到接口類中。
在程序中我根據文檔中所講,我們在角色身上的事件流、UI和網絡以及Model的數據流、開發中的絕大部分情況都可以通過事件來進行驅動。在事件注冊時候,把注冊的事件集中到分類接口中,進行統一使后期方便查詢調用。
在UI部分也有自身的事件管理,在ui部分的時間不需要直接移除,會自動移除我們只需要在注冊事件,然后調用就可以了,測試后成功沒有問題