自定義邏輯和通用邏輯分離
在編寫游戲邏輯時發(fā)現(xiàn),有些邏輯是游戲對象的固定邏輯,內容會逐漸成型,內容固化后就不再修改了。有些是關卡邏輯,自定義情況比較嚴重,可能因為關卡調整而修改或移除;所以要做兩種邏輯的分離。以前做項目的時候,通用邏輯通常是程序邏輯,自定義邏輯為策劃邏輯,可以由策劃去編寫,通常以lua腳本或者圖形編程語言的形式開放給策劃自行組裝?,F(xiàn)在雖然只由我一個人來做,既做程序又做策劃,但還是覺得兩個邏輯分開,更方便維護;下面是我實現(xiàn)的一些步驟。
在進入場景時加載自定義腳本,約定腳本的名稱為LevelLogic + 場景的buildIndex(實際上用name可能會更靠譜一些,因為buildSetting里取消某個場景的編譯就會改變buildIndex的排序)
這里的腳本掛載體gameObject是一個跳轉場景不會被刪除的GameobjectManager
在倆開場景時刪除自定義腳本
所有的LevelLogic腳本繼承自一個基類腳本LevelLogicBase,具體LevelLogic的回調實際上是由執(zhí)行GameobjectManager上的回調來執(zhí)行的。
做過判空處理,所以具體的LevelLogic子腳本不存在也不會影響游戲邏輯,關卡移除時邏輯腳本可以直接刪掉。
對于事件的觸發(fā)可以看看UnityEvent的注冊和觸發(fā)方法,這里不再贅述了。
標簽: