? 花房姑娘在线播放免费观看,一本大道无码日韩精品,特黄特色的大片观看免费视频香港
聯(lián)系我們

給我們留言

聯(lián)系我們

地址:福建省晉江市青陽街道洪山路國際工業(yè)設(shè)計(jì)園納金網(wǎng)

郵箱:info@narkii.com

電話:0595-82682267

(周一到周五, 周六周日休息)

當(dāng)前位置:主頁 > 3D教程 > 圖文教程

七個(gè)方法讓你的unity項(xiàng)目更條理

來源: 未知 | 責(zé)任編輯:六月芳菲 | 發(fā)布時(shí)間: 2018-03-06 20:08 | 瀏覽量:

更多精彩unity教程:http://www.594ljc.cn/resource/


 
一天,我在Quora上看到一個(gè)人問:程序員如何用超過一萬行的代碼編寫一個(gè)項(xiàng)目。軟件做的越大,維護(hù)就越困難,這是一個(gè)不爭的事實(shí)。所以這面臨的問題就是如果你不讓你的項(xiàng)目有條理,就會(huì)很難維護(hù)它。到后期,你就會(huì)發(fā)現(xiàn)你并不是在添加新功能而是在把時(shí)間浪費(fèi)在一個(gè)凌亂的項(xiàng)目上。每一個(gè)Unity項(xiàng)目也是這樣的。在我看來,這是非常重要的技巧,可以幫助你保持你的項(xiàng)目條理性。 
1. Directory Structure 1、目錄結(jié)構(gòu)
我們不能夠在不提到項(xiàng)目目錄結(jié)構(gòu)的情況下談?wù)摻M織結(jié)構(gòu)。Unity讓你可以自由的創(chuàng)建自己想要的目錄結(jié)構(gòu),也正是因?yàn)檫@樣,它可能讓項(xiàng)目很混亂。下面是我個(gè)人使用的目錄結(jié)構(gòu): 
3rd-Party(第三方資源) 

Audio 
1、Music 
2、SFX 
Materials 
Models 
Plugins 
Prefabs 
Resources 
Textures 
Sandbox 
Scenes 
1、Levels 
2、Other 
Scripts 
1、Editor 
Shaders

不要在根目錄存儲(chǔ)任何資源文件,盡可能使用子目錄。 


更多精彩unity教程:http://www.594ljc.cn/resource/


 
除非需要,否則不要在根目錄中創(chuàng)建一些額外目錄。(意思是不要在根目錄創(chuàng)建一些無用目錄) 
命名一致性。如果你決定使用“駱駝拼寫法(駱駝拼寫法的意思是依靠單詞的大小寫拼寫復(fù)合詞:例如:PlayStation\GameManager)”編寫目錄名和小寫字母編寫資源,請(qǐng)一直遵守這個(gè)規(guī)則。 
不要嘗試將有鏈接性的特定資源文件移動(dòng)到常規(guī)目錄或者通用目錄。例如有些Materials是從模型生成的,不要將它們移動(dòng)到通用目錄或者其他Materials目錄中,因?yàn)槟阆乱淮尉筒恢肋@些材質(zhì)來自哪里了。 
使用從資源商店下載的第三方資源,不要隨便改變其原本的結(jié)構(gòu)。 
使用Sandbox(沙盒)目錄來測(cè)試你不完全確定的東西。當(dāng)做測(cè)試的同時(shí),你最先需要關(guān)心的是一個(gè)合適的組織結(jié)構(gòu)。這樣不論你最后想刪除它還是把它組織到你的項(xiàng)目中都可以。當(dāng)你

與其他人一起工作時(shí),請(qǐng)創(chuàng)建你個(gè)人的SandBox子目錄,例如:Sandbox/JohnyC。 
2. Scene hierarchy structure 2、場(chǎng)景層次結(jié)構(gòu)
在項(xiàng)目層次結(jié)構(gòu)之后也有場(chǎng)景層次結(jié)構(gòu)。像上面的一樣,我將提供一個(gè)模板,你可以根據(jù)你自己的需要進(jìn)行調(diào)整。
Management 
GUI 
Cameras 
Lights 
World 
1、Terrain 
2、Props 
_Dynamic 
你應(yīng)該遵循幾個(gè)規(guī)則: 
所有空對(duì)象應(yīng)位于(0,0,0,)坐標(biāo)點(diǎn),默認(rèn)旋轉(zhuǎn)和縮放。 
當(dāng)你運(yùn)行中實(shí)例化對(duì)象時(shí),請(qǐng)確保將其放在_Dynamic中,不要污染層次結(jié)構(gòu)的根目錄,否則將難以瀏覽Scene hierarchy下的文件(文件太多)。 
對(duì)于僅用于掛載腳本的空對(duì)象,請(qǐng)使用“@”作為前綴。例如@Cheats

3. Use prefabs for everything 3、使用預(yù)制體進(jìn)行所有操作
Unity中的Prefabs并不完美,但是你會(huì)發(fā)現(xiàn),它們是共享預(yù)配置信息的最好方法。一般來說,我們可以把你想放到場(chǎng)景中的所有東西都做成預(yù)制體。你可以僅僅通過創(chuàng)建預(yù)制體來從一個(gè)空?qǐng)鼍爸袆?chuàng)建新的關(guān)卡。 
我們應(yīng)該使用預(yù)制體的原因是當(dāng)預(yù)制體有更改時(shí),所有預(yù)制體的實(shí)例對(duì)象也會(huì)做相應(yīng)改動(dòng)。如果有一百個(gè)關(guān)卡都需要給相機(jī)添加一個(gè)相同的效果呢?沒問題,如果你的相機(jī)是預(yù)制體,只需要將效果添加到預(yù)制的相機(jī)上就行。 
不過要注意,你不能在另一個(gè)預(yù)制體上使用預(yù)制體??梢允褂么a字段鏈接解決此種預(yù)制體實(shí)例預(yù)制體的情況,并且確保在父預(yù)制體實(shí)例的時(shí)候才運(yùn)行該代碼字段??梢钥紤]在Awake()或者OnEnable()中自動(dòng)檢測(cè)執(zhí)行實(shí)例預(yù)制體對(duì)象。

4. Learn how to use version control system (VCS) 4、學(xué)習(xí)如何使用版本控制系統(tǒng)(VCS)
你可以已經(jīng)知道Git、Sbuversion或者其他版本控制工具??赡軐?shí)際上也只是知道,而并不是很熟悉。其實(shí)我們應(yīng)該了解我們所使用的的VCS的可能不經(jīng)常使用的另一些重要功能。為什么呢?因?yàn)閂CS系統(tǒng)比我們想象的要強(qiáng)大的多,而大部分人只是用來備份和同步解決方案。例如,你是否知道GIT是可以允許你隱藏你做的更改,以便你快速處理而不需要向主分支提交任何內(nèi)容。 
程序員傾向于注釋掉代碼塊,以便于稍后來使用。不過不建議這樣做。如果你使用VCS,你可以學(xué)習(xí)如何快速查看先前的版本文件。當(dāng)你熟練操作VCS后,你會(huì)少很多注視到的無用代碼塊,讓你的代碼看起來更簡潔好看。 
下面的鏈接是一個(gè)GIT用戶的版本代碼查看的使用演示:http://gitready.com/

5. Learn to write editor scripts 5、學(xué)習(xí)編寫編輯器腳本(工具腳本,編輯器擴(kuò)展腳本等)
Unity作為游戲引擎,在擴(kuò)展性方面是非常棒的(參見Asset Store)。學(xué)習(xí)如何編寫編輯器腳本并利用這方面知識(shí)。你不需要為腳本創(chuàng)建過多的GUI,它是一些可以做非常有用的事情的簡單菜單項(xiàng)。以下是我不久前創(chuàng)建的編輯器腳本的一些示例: 
Google Sheets.cvs download——我有一個(gè)保存在Google云盤的電子轉(zhuǎn)換表格。該工具可以自動(dòng)下載為最新的.cvs文件,所以我從來沒有手動(dòng)去下載過。 
Randomize the position,rotation and size of trees——當(dāng)有很多樹的時(shí)候,可以使它們看起來想一個(gè)森林,而不是像格子一樣整齊排列。 
Create distribution(創(chuàng)建分發(fā))——為指定目標(biāo)創(chuàng)建一個(gè)可以將所有文件移動(dòng)到或者復(fù)制進(jìn)去的路徑。 
String replace in the sources(資源文件的字符串替換)——我有幾個(gè)文件,其中包含該工具的不同的程序版本。
你可以從官方文檔中學(xué)習(xí)如何編寫編輯器腳本。

6. Learn to program defensively 6、學(xué)習(xí)防御性編程
防御性編程是防御式設(shè)計(jì)的一種形式,旨在確保在不可預(yù)見的情況下維持軟件可發(fā)展性的功能。防御性編程技術(shù)特別是在軟件被濫用時(shí)應(yīng)用更為廣泛。 
通常,當(dāng)你寫MonoBehaviours時(shí),你應(yīng)該確保以下幾點(diǎn): 
1、所有需要用到的參考是設(shè)置的 
2、所有必須的組件是存在的 
3、如果你使用單例,確保它們是存在的 
4、如果你搜索對(duì)象或者想要找到某些屬性,請(qǐng)盡可能用最快速的方法 
5、混合編輯器代碼在運(yùn)行場(chǎng)景前進(jìn)行多次檢測(cè) 
For many of these checks you can use asserts. You should also read A Story of NullPointerException Part 1 and 2.

7. Implement in-editor and/or in-game cheats 7、在編輯器或者游戲中實(shí)現(xiàn)作弊系統(tǒng)
在學(xué)習(xí)如何編寫編輯器腳本后,你應(yīng)該能夠編寫一組編輯器中的作弊工具。它可以通過菜單選項(xiàng)來解鎖一些東西。(例如,所有的等級(jí)限制)。這真的很容易編寫。
class Cheats 

[MenuItem(“My Game/Cheats/Unlock All Levels”)] 
public static void UnlockAllLevels() 

if (Application.isPlaying) 

// unlock code here… 
} else { 
Debug.LogError(“Not in play mode.”); 


}
• 通常你都應(yīng)該寫一個(gè)作弊工具,它可以讓你: 
• 解鎖所有等級(jí)限制、角色、道具等。 
• 加一個(gè)無敵。 
• 加減數(shù)值,如,時(shí)間、金錢、硬幣等。 
• 使自己看到玩家看不到的東西(上帝視角)。 
• 其它任何可以幫助你測(cè)試你的游戲的東西都可以。 
當(dāng)然更實(shí)用但是也更難寫的是游戲中的作弊秘籍。這些類型的作弊可以在Unity編輯器之外執(zhí)行,但是你必須考慮到底需要怎么執(zhí)行。

更多精彩unity教程:http://www.594ljc.cn/resource/

 

相關(guān)文章
網(wǎng)友評(píng)論

您需要登錄后才可以發(fā)帖 登錄 | 立即注冊(cè)

關(guān)閉

全部評(píng)論:0條

推薦
熱門