国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Unite 2017-Scriptable Object (一)

2022-11-06 00:56 作者:防輻射君  | 我要投稿

游戲的核心

模塊化(Modular)、可編輯(Editable)、可被測試化(Debuggable)

  • 模塊化自不用多說,減少耦合性的根本。

  • 可編輯則要求,一個項目中的所有開發(fā)者,甚至所有成員都應該可以對項目內容進行編輯or更改。

一、模塊化

系統(tǒng)之間不要直連在一起

模塊化要求我們不能讓我們的系統(tǒng)之間直接聯(lián)系在一起,比如如果你有一個庫存管理系統(tǒng)需要和游戲中的其他系統(tǒng)通信,但是我們又不想讓他們之間產(chǎn)生一個強連接,因為這會讓我們的系統(tǒng)非常不靈活,同時重新集成的時候會非常難受。

干凈的游戲場景

游戲場景中也應該盡可能干凈,場景直接不會傳輸任何數(shù)據(jù), 這樣每次加載或卸載場景的時候開銷將非常小,這樣就可以使每個場景都只做單一職責,防止你在場景之間打洞傳輸。

預制體要獨立工作

每個預制體的功能要抽象到一定程度,這樣可以盡最大化減少沖突

組件化

unity引擎的最大優(yōu)勢,就是可以將每一件事劃分到一個具體的組件程度,做且僅作一件事。

二、可編輯化

基于數(shù)據(jù)的開發(fā)

盡可能讓我們的項目以數(shù)據(jù)驅動,這可以讓我們的游戲隨時進行更改,甚至在運行時。

不要每次都用代碼改變程序、高集成度的設計

可以用做很多小組件的模式來制作游戲,這樣不但可以快速開發(fā),同時可以大幅度減少測試的成本

運行時更新游戲

更好隨時隨地的調試你的游戲

三、可調試化

最好又相應的視圖來做調試工作。

永遠不會修復你沒有遇到的錯誤

對于bug來說:

好家伙

Scriptable Objects 基礎

  • 可視化版Unity類

  • 類似于Mono behaviour,但是沒有transform、GameObject這種原生組件(最終繼承自Object)

  • 以asset的方式存儲

Scriptable Objects用例

  • 游戲配置文件(雖然視頻里說了很多大型項目都在用這個來配置,但是不知道為什么國內都不用這個,從原生大小看確實比配置文件大)

  • 背包系統(tǒng)的數(shù)據(jù)封裝

  • 敵人狀態(tài)?(還沒實際用過,倒是做過狀態(tài)機)

  • 音頻管理(一個asset中存一堆,然后獲取,類似工廠)

架構

別再濫用單例了?。。?!

P.S :終于有看到有人講單例壞的地方了,下次用這個跟人battle。

從小到指甲邊緣起皮,大到核戰(zhàn)爭,一切都是由于單例引起的?。?/p>

單例模式的優(yōu)點

  • 任何地方,拿到任何東西

  • 持久化存在

  • 很簡單的能理解

  • 很“簡單”來構建項目(前人挖坑,后人遭殃)

缺點

  • 剛性連接,每個系統(tǒng)沒法獨立存在

  • 缺少多態(tài)性

  • 測試起來非常困難

  • 依賴噩夢,我們不想要一些東西的時候,它依然會存在

解決方案

  • 減少全局的引用

  • 控制反轉

模塊化數(shù)據(jù)

主要用于減少全局查詢數(shù)據(jù)的操作行為

我們以一個敵人的實體舉例

  • xxxManager.Instance.MoveSpeed

以這種方式獲得變量的話會造成硬連接,同時非常依賴對應的manager被加載進來。

  • 使用SO直接進行配置

這樣會把一個敵人的所有信息配置到一個文件中,造成一個巨大的冗余,同時擴展性與模塊性會變得很差。

解決上述問題的方案,就是:

Scriptable Object 變體

PS:使用 [CreateAssetMenu] 以相同的SO腳本創(chuàng)建出的不同Asset。


這樣就可以用這些變體來做對象的數(shù)據(jù)管理

但是這種每個變量都創(chuàng)建一次的方式非常麻煩,所以我們在上層又進行一次封裝

所以我們最終把DumbEnemy類做一些修改

PlayerHP就是一個中間人

再用一個實例來解釋這個,就是上圖

一個中間件通知player預制體受傷了,同時,對UI界面通知更新狀態(tài),而不用讓玩家對象直接引用UI界面做更改。音頻界面同理。

這樣就可以讓這些數(shù)據(jù)以某種持久化的形式,加載在內存中,使得你在運行時也可以調試!


Unite 2017-Scriptable Object (一)的評論 (共 條)

分享到微博請遵守國家法律
来凤县| 射洪县| 大连市| 东平县| 远安县| 宜阳县| 永安市| 安塞县| 罗平县| 治多县| 深州市| 玛沁县| 大埔县| 泉州市| 香河县| 若羌县| 桂平市| 宁化县| 桂阳县| 调兵山市| 库尔勒市| 海南省| 浦北县| 礼泉县| 鲁山县| 平武县| 凤城市| 洛隆县| 仙居县| 华阴市| 通榆县| 望谟县| 敦化市| 定安县| 天祝| 大余县| 马龙县| 万州区| 汾阳市| 德庆县| 织金县|