激情六月丁香婷婷|亚洲色图AV二区|丝袜AV日韩AV|久草视频在线分类|伊人九九精品视频|国产精品一级电影|久草视频在线99|在线看的av网址|伊人99精品无码|午夜无码视频在线

高校合作1:010-59833514 ?咨詢電話:400-810-1418 服務(wù)與監(jiān)督電話:400-810-1418轉(zhuǎn)接2

Unity開發(fā)實(shí)戰(zhàn)經(jīng)驗(yàn)分享

發(fā)布時(shí)間:2024-04-13 20:41:33 瀏覽量:202次

本課程主要記錄了筆者項(xiàng)目初期碰到的并值得一說的實(shí)際業(yè)務(wù)問題,涵蓋了比較多客戶端框架設(shè)計(jì)的內(nèi)容,以及有效提升開發(fā)者編程體驗(yàn)的內(nèi)容。

主要包括以下內(nèi)容以及一些其他配套的小工具。

  • Luban配表工具的使用介紹
  • ECS設(shè)計(jì)下的加載管理
  • 設(shè)計(jì)項(xiàng)目資源規(guī)范化
  • 設(shè)計(jì)本地化組件
  • C# Task使用指南
  • 設(shè)計(jì)技能系統(tǒng)
  • Unity Android多渠道管理

作者L:杭州某游戲公司客戶端主程

從事游戲行業(yè)六年有余,目前主要在公司負(fù)責(zé)通用底層框架設(shè)計(jì),及一款手游項(xiàng)目的客戶端主程


目錄

1| Luban Excel配表工具使用推薦及總結(jié)

2| 基于ECS設(shè)計(jì)下的加載管理

3| 對資源的規(guī)范化我們能做什么

4| 如何設(shè)計(jì)本地化組件

5| C# Task指南

6| 如何設(shè)計(jì)技能系統(tǒng)

7| Unity Andorid多渠道管理

附錄1| 一些關(guān)于代碼積累的記錄

附錄2| 如何設(shè)計(jì)角色屬性組件

附錄3| CliToolkit工具

附錄4| ET Entity Tree 工具

附錄5| 內(nèi)網(wǎng)Package管理


本篇轉(zhuǎn)載自《Unity開發(fā)實(shí)戰(zhàn)經(jīng)驗(yàn)分享》UWA學(xué)堂 | Unity和Unreal游戲引擎的從業(yè)者學(xué)習(xí)交流平臺的第1節(jié)。

幾乎每個(gè)游戲的制作過程中都少不了和配置打交道的需求,有的是用Unity自帶的ScriptObject進(jìn)行存儲,或者更多的是使用Excel等表格工具,二次導(dǎo)出配置文件等。

每種方案見仁見智,依照不同的使用場景各有優(yōu)劣。

一般來說數(shù)據(jù)的輸入都是由策劃來完成的,而大部分策劃非常傾向于使用Excel作為日常配置使用的工具,尤其是在需要批量拉表的場景下,其他的方案在這個(gè)場景下與Excel幾乎沒有任何可比性。

相關(guān)鏈接

Luban 倉庫地址

Luban 官方示例

Luban 官方文檔

Luban 簡單示例

Luban 簡單文檔

Luban Unity GUI 工具


為什么使用Luban

如果項(xiàng)目中使用Excel作為配表的載體,大部分都會選擇使用相關(guān)的導(dǎo)表工具,可能是項(xiàng)目自己開發(fā),也可能是使用一些現(xiàn)成的工具,比如Git上tabtoy、excel2json等相關(guān)工具。

但是上面這些,包括大部分自己開發(fā)的導(dǎo)表工具,或多或少都會存在一些致命的限制,或者不夠通用,亦或者不夠靈活等等的問題。

一個(gè)具有普適性的配表工具需要兼容的場景非常多,各種語言、自定義生成模板、數(shù)據(jù)反倒、數(shù)據(jù)有效性驗(yàn)證等等。

而Luban是目前唯一一個(gè)市面上有資格成為行業(yè)配表標(biāo)準(zhǔn)的工具,未來也很難會有同類產(chǎn)品可以超越。


核心功能介紹

數(shù)據(jù)有效性驗(yàn)證

這里的數(shù)據(jù)有效性不是指bool的格子填了一個(gè)int。

有效性驗(yàn)證這個(gè)問題之前讓我非常頭大,經(jīng)常出現(xiàn)策劃跑過來找你說:“我這里程序有 bug,你檢查一下”,然后花了半天時(shí)間查到了因?yàn)榕浔碇心骋恍械膇d或者關(guān)鍵數(shù)據(jù)填寫不合法。

一次兩次還可以,次數(shù)多了難免心態(tài)不好,尤其當(dāng)人員發(fā)生變動,新來的人無法完全理解每個(gè)值的意義,就很容易放飛自我,最終就是事故,而這些問題是可以從源頭有效切斷的。

如果你項(xiàng)目中配表的內(nèi)容存在某個(gè)地方需要相關(guān)人員記住應(yīng)該怎么配,而沒有相關(guān)自動校驗(yàn),那么這里假以時(shí)日一定會出問題

工具支持的校驗(yàn)器如下:

當(dāng)然,一個(gè)游戲的開發(fā)如果需要完整校驗(yàn)所有配置的合法性,上述這些校驗(yàn)器是無法完全滿足的,或者說這些復(fù)雜場景不應(yīng)該由Luban來解決,所以針對這些場景,在官方示例中有一個(gè)CfgValidator來處理這種問題。

?

生成模板

一個(gè)合格的配表工具應(yīng)當(dāng)兼容自定義生成代碼功能,而Luban這里使用的是scriban的方案。

當(dāng)你有代碼定制需求時(shí),99%的場景不需要改代碼生成工具的源碼即可完成定制需求。

在我整理的Luban 簡單文檔這個(gè)文檔里面包含了模板具體生成的介紹,可以加速你理解如何自定義模板。在Luban現(xiàn)有的設(shè)計(jì)下,幾乎可以兼容任何場景(包括老項(xiàng)目的遷移)。

復(fù)雜類型的填寫

在這個(gè)倉庫中,Luban 簡單示例的多態(tài)示例中可以很直觀地看到繼承相關(guān)的復(fù)雜類型應(yīng)當(dāng)如何在Excel中展開和填寫。

?

配表支持繼承在很多游戲開發(fā)場景中非常非常受用,比如游戲中的道具、裝備和英雄類的定義一定存在共用數(shù)據(jù)結(jié)構(gòu)和特化的數(shù)據(jù)結(jié)構(gòu)等,如果沒有繼承這里的代碼會非常難看,而且配表填寫的內(nèi)容也會成為災(zāi)難。

Luban支持任意復(fù)雜數(shù)據(jù)結(jié)構(gòu)的嵌套,只有在代碼中能定義出來,Luban就能解析,但是在實(shí)際使用中,并不推薦使用非常復(fù)雜的數(shù)據(jù)結(jié)構(gòu),這樣會給策劃帶來額外的填表負(fù)擔(dān),以及部分場景下的代碼生成的額外工作量。

數(shù)據(jù)及定義過濾

一些定義只需要在客戶端使用,或者只會在服務(wù)端使用,需要在生成時(shí)進(jìn)行動態(tài)剔除,當(dāng)然這個(gè)功能,一般的配表工具也都支持,但Luban額外考慮到了一些場景,比如這一條數(shù)據(jù)需要臨時(shí)注釋或者僅在測試環(huán)境下使用。

?

這里的 test就非常有用,我們會單獨(dú)配置一套test數(shù)據(jù),用于游戲中的核心邏輯驗(yàn)證,及測試用例的輔助配表,而這些數(shù)據(jù)不會出現(xiàn)在正式環(huán)境下。

數(shù)據(jù)反倒

有時(shí)候會有這種場景,項(xiàng)目一些配置需要在Unity等游戲引擎中完成,可能是一些技能的配置等,這個(gè)時(shí)候就可能需要反倒數(shù)據(jù)。

如果是一些老的項(xiàng)目需要遷移,也是一個(gè)非常合適的場景。

本地化

只要是配表工具,就一定繞不開本地化這件事,Luban同樣也提供了本地化的解決方案。

這里值得一提的是,Luban會將所有未加入翻譯表的key單獨(dú)輸出到指定的文件中,方便檢查。

其他

Luban支持的序列化格式、語言和場景非常多,這里不一一介紹了,僅對我目前使用中碰到的核心功能進(jìn)行介紹。


流程推薦

下面提到的內(nèi)容在Luban 簡單示例倉庫中都可以找到相關(guān)代碼。

導(dǎo)出腳本選擇

個(gè)人比較推薦實(shí)用sh作為項(xiàng)目通用導(dǎo)表工具,Windows需要配置sh文件默認(rèn)使用git bash作為打開方式即可。

?

這里主要考慮的是平臺兼容性問題,比如開發(fā)環(huán)境中可能有人使用的是Mac也可能是Windows,但是在部署時(shí)大部分都是Linux服務(wù)。如果每個(gè)平臺單獨(dú)維護(hù)一份腳本,加上不同環(huán)境和使用場景,這里對應(yīng)的文件數(shù)量就比較離譜了。

test、dev、release

建議項(xiàng)目按照這種方式來劃分配表:

  • test
  • 僅在測試用例、Editor 下使用
  • dev
  • 僅在開發(fā)環(huán)境下使用
  • release
  • 僅在正式環(huán)境下使用

auto_validation

首先,我們并不希望策劃推送一個(gè)已經(jīng)被自動流程檢測出錯誤的提交,此時(shí)需要對Git進(jìn)行Hook,核心就是提交時(shí)本地檢查一遍,如果有錯誤,禁止本次commit,將這種低級錯誤扼殺在源頭。

watch

一般可能會有這種需要對配置熱重載的功能,使用watch,配合自己項(xiàng)目中的熱重載就可以做到這邊保存Excel,Unity不需要重開游戲就可以直接加載到新配置。


以上就是《Unity開發(fā)實(shí)戰(zhàn)經(jīng)驗(yàn)分享》UWA學(xué)堂 | Unity和Unreal游戲引擎的從業(yè)者學(xué)習(xí)交流平臺的第1節(jié),此篇文章比較適合從事游戲行業(yè)的開發(fā)人員、對Unity開發(fā)感興趣的同學(xué)以及希望提升底層設(shè)計(jì)能力,解決實(shí)際業(yè)務(wù)痛點(diǎn)的讀者。

讀完全篇后你會深入理解如何實(shí)現(xiàn)實(shí)際業(yè)務(wù)需求,提升底層設(shè)計(jì)能力以及部分文章的配套Demo。

因篇幅問題,文章中涉及的外部鏈接通過原文《Unity開發(fā)實(shí)戰(zhàn)經(jīng)驗(yàn)分享》UWA學(xué)堂 | Unity和Unreal游戲引擎的從業(yè)者學(xué)習(xí)交流平臺查看。

熱門課程推薦

熱門資訊

請綁定手機(jī)號

x

同學(xué)您好!

您已成功報(bào)名0元試學(xué)活動,老師會在第一時(shí)間與您取得聯(lián)系,請保持電話暢通!
確定