盡可能制作抽象的prefab來(lái)做關(guān)卡編輯,該prefab應(yīng)該足夠抽象簡(jiǎn)單(只有一個(gè)GameObject,然后通過(guò)Gizmo來(lái)繪制是個(gè)不錯(cuò)的手段),否則以后變化的時(shí)候(常見(jiàn)的就是改美術(shù)資源),所有關(guān)卡都lost prefab,那么對(duì)策劃來(lái)說(shuō)是一場(chǎng)災(zāi)難。可以考慮通過(guò)數(shù)據(jù)表+編輯器的方式來(lái)提供策劃操作同時(shí)也不再需要擔(dān)心lost prefab的問(wèn)題。prefab越簡(jiǎn)單抽象越不容易丟失,prefab之間嵌套的正確方式是通過(guò)鏈接而不是掛在節(jié)點(diǎn)下面。
2.盡可能避免修改Scene,方法有幾種:
使用xml之類(lèi)的數(shù)據(jù)組織場(chǎng)景
盡量多讓scene由prefab組成,這樣變動(dòng)都在prefab上
使用工具做場(chǎng)景Merge
3.不要過(guò)度依賴(lài)Component特性來(lái)開(kāi)發(fā),考慮數(shù)據(jù)驅(qū)動(dòng)。
4.邏輯容易散落在編輯器各處,可以做一個(gè)中心管理。
利用unity的特性
組織好hierarchy,不管是編輯的時(shí)候還是運(yùn)行的時(shí)候,編輯的時(shí)候可以通過(guò)工具來(lái)簡(jiǎn)化組織層級(jí)的工作。
讓每個(gè)場(chǎng)景自己能跑。
利用基于組件的架構(gòu),盡可能少的使用繼承(用C#的話(huà)),多通過(guò)組合來(lái)完成開(kāi)發(fā)。遇到需要數(shù)據(jù)訪(fǎng)問(wèn)的通用接口,我們可以通過(guò)組合的方式來(lái)完成,而不是提供一個(gè)公共基類(lèi)接口來(lái)繼承,只要大家都認(rèn)識(shí)這個(gè)公共組件就可以取到數(shù)據(jù)了。遇到通用的事件派發(fā),我們可以用字符串拼接的方式派發(fā)到指定的對(duì)象或者更參數(shù)組合派發(fā)事件到對(duì)象身上。
框架采用星型架構(gòu)+事件機(jī)制,由于Unity3D沒(méi)有一個(gè)所謂的入口函數(shù),不利于代碼跟蹤,這樣的基礎(chǔ)架構(gòu)能帶來(lái)很多便利。
unity界面擴(kuò)展能力很強(qiáng),而且借助CLR(commom language runtime)的反射能力,C#里面開(kāi)發(fā)界面非常容易。
做好tag、layer規(guī)劃,要考慮業(yè)務(wù)中哪類(lèi)物體之間需要交互。
在代碼里面get某個(gè)prefab或者GameObject,可以考慮利用界面拖目標(biāo)過(guò)來(lái),這樣更加直觀,而且也能對(duì)抗變化,比如目標(biāo)名字變了也不怕,而且還能節(jié)省代碼量。
想要學(xué)習(xí)好unity技術(shù)的話(huà),不止要從小的細(xì)節(jié)開(kāi)始注意,也要在學(xué)習(xí)的時(shí)候有名師的指導(dǎo)才可以事半功倍。如果說(shuō)你想要學(xué)習(xí)unity技術(shù)的話(huà),那么粵嵌科技的小編歡迎大家來(lái)我們的unity培訓(xùn)班進(jìn)行實(shí)地考察,也可以點(diǎn)擊我們文章下面的獲取試聽(tīng)資格按鈕來(lái)獲取我們的unity培訓(xùn)免費(fèi)課程試聽(tīng)資格,來(lái)和我們的講師進(jìn)行面對(duì)面的交流和互動(dòng),并且免費(fèi)體驗(yàn)我們的課程和更加深入的了解我們粵嵌科技。