unity3D代碼規(guī)范及項(xiàng)目目錄結(jié)構(gòu)分解_第1頁(yè)
unity3D代碼規(guī)范及項(xiàng)目目錄結(jié)構(gòu)分解_第2頁(yè)
unity3D代碼規(guī)范及項(xiàng)目目錄結(jié)構(gòu)分解_第3頁(yè)
unity3D代碼規(guī)范及項(xiàng)目目錄結(jié)構(gòu)分解_第4頁(yè)
unity3D代碼規(guī)范及項(xiàng)目目錄結(jié)構(gòu)分解_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、項(xiàng)目目錄及代碼規(guī)范一、目錄部分(公共規(guī)范)1.自定義目錄以”開(kāi)頭(一級(jí)目錄也是就在Assets目錄下面的自定義目錄)(之前有看過(guò)一篇文章說(shuō)如此做法的好處是:文件夾下如果沒(méi)有用到的資源,打包時(shí)不會(huì)被打入進(jìn)去);建議場(chǎng)景以雙下劃線開(kāi)頭,保證場(chǎng)景永遠(yuǎn)在所有文件夾的最前邊。_ _Scenes_Models_Others_Prefabs_Seripts_Sound_TexturesEditorScenes_Models_Others_Prefabs_Seripts_Sound_TexturesEditorGizmosGizmos仁fJGUI.PluginsW WResourcesResources St

2、reamingAssetsStreamingAssetsAUnityVS. .ZTestZTest2.-Editor自寫(xiě)的靈活方便插件-Editor_NGUI較大型三方的插件(前面加上Editor是為了讓所有編輯器都集中在一塊)(-NGUI較大型三方的插件,如果你們目錄不多,看起來(lái)不亂不改名字也沒(méi)問(wèn)題。方便更新。如果用的插件比較多的話,還是將它放到Plugins下面。只是更新的時(shí)候需要注意一下就是了。)-Gizmos使用GIZMO撕需要的標(biāo)志等臨時(shí)文件-StreamingAssets(包括JsonData目錄/Assetbundle目錄/各種只讀文件預(yù)儲(chǔ)存目錄這個(gè)目錄將自動(dòng)打包到導(dǎo)出程序,用A

3、pplication.streamingAssetsPath讀?。?Models模型文件,其中會(huì)包括自動(dòng)生成的材質(zhì)球文件-Others其他類(lèi)型的文件(一般作為不常修改的文件類(lèi)型,例如添加的Shader、物理材質(zhì)、動(dòng)畫(huà)文件。)若認(rèn)為是比較常用的話,可以提取成一個(gè)文件夾。-Plugins主要是DLL的外部插件文件,例如JsonFx、SmartFoxClient等-Prefabs預(yù)儲(chǔ)存文件-Resources動(dòng)態(tài)加載的資源文件,一般這里只用少量,多的話,需要自己打ASSETBUNDLE包,有選擇性的動(dòng)態(tài)加載-Scenes場(chǎng)景文件-Scripts腳本代碼文件-Sounds音效文件-Textures所有

4、的貼圖增加一個(gè)大寫(xiě)字母Z打頭的測(cè)試文件夾,比如Ztest,所有的測(cè)試內(nèi)容都可以放到這個(gè)文件夾,好處是該文件夾永遠(yuǎn)處于所有文件夾的最下面,而且最后打包的時(shí)候可以完全刪掉,保證測(cè)試的內(nèi)容都剔除出去。二、代碼部分(程序規(guī)范)基本命名規(guī)范:命名原則PascalCase:所有單詞第一個(gè)字母大寫(xiě),其他字母小寫(xiě)。CamelCase:除了第一個(gè)單詞,所有單詞第一個(gè)字母大寫(xiě),其他字母小寫(xiě)。原則:MicroSoft 建議,對(duì)于簡(jiǎn)單的變量使用 CamelCase 而對(duì)于比較高級(jí)的命名規(guī)則使用 PascalCase。3.1.2.Namespace名空間命名規(guī)范1)使用公司名.產(chǎn)品名這樣的格式。(例:Babybus.x

5、xx)2)Namespace中類(lèi)的依賴(lài)關(guān)系應(yīng)該體現(xiàn)在命名上,比如System.Web.UI.Design中的類(lèi)以來(lái)于System.Web.UI。3)使用Pascal大小寫(xiě)形式命名。(例:GameSceneScript)4)當(dāng)商標(biāo)(產(chǎn)品名)的命名風(fēng)格和Pascal風(fēng)格不符時(shí),以商標(biāo)(產(chǎn)品名)為準(zhǔn)。(例:iOS)5)在語(yǔ)意合適的情況下使用復(fù)數(shù),比如System.Collections。例外是縮寫(xiě)和商標(biāo)的情況。6) Namespace的名字不一定和Assembly一一對(duì)應(yīng)。3.1.3.Class類(lèi)命名規(guī)范1)使用名詞或者名詞性詞組命名class。2)使用Pascalcase。3)文件名應(yīng)和類(lèi)名相同。

6、4)保守地使用縮寫(xiě)。5)不使用type前綴,例如C來(lái)標(biāo)識(shí)Class。比如,使用FileStream而不是CFileStream。6)不使用下劃線。7)偶爾的在Class名稱(chēng)組成中需要使用I開(kāi)頭的時(shí)候,比如IdentityStore,justuseit。8)在合適的時(shí)候,使用單詞復(fù)合來(lái)標(biāo)識(shí)從某個(gè)基類(lèi)繼承而來(lái)。比如xxxException。3.1.4.Interface接口的命名1)使用名詞或者名詞性詞組命名Interface。2)使用Pascalcase。3)保守地使用縮寫(xiě)。4)在interface名稱(chēng)前加上字母I來(lái)表示type是interface。如:(IBabybus)5)在某個(gè)class是

7、某個(gè)interface地標(biāo)準(zhǔn)實(shí)現(xiàn)地時(shí)候,用類(lèi)似的名字來(lái)命名它們,僅僅在interface的名稱(chēng)前面多個(gè)I。6)不要使用下劃線。7)文件名應(yīng)和類(lèi)名相同。3.1.5.Attribute參數(shù)命名規(guī)范1)總是給Attribute類(lèi)加上Attribute后綴。2)文件名應(yīng)和類(lèi)名相同。3.1.6.EnumerationType枚舉命名規(guī)范1)對(duì)Enum類(lèi)型和值使用Pascalcase。2)不要在Enum類(lèi)型名稱(chēng)后面加上Enum后綴。3)對(duì)于大多數(shù)Enum類(lèi)型使用單數(shù)名稱(chēng),僅僅在這個(gè)Enum類(lèi)型是bitfields地時(shí)候使用復(fù)數(shù)形式。4)總是給bitfieldEnum類(lèi)型添加FlagsAttribute。3

8、.1.7.StaticField靜態(tài)變量命名規(guī)范1)使用名詞、名詞性詞組或者名詞地縮寫(xiě)來(lái)命名staticfields。2)使用Pascalcase。3)不要在staticfield名稱(chēng)中使用匈牙利命名法變量名=屬性+類(lèi)型+對(duì)象描述。4)在任何可能的情況下推薦你使用靜態(tài)properties屬性而不是publicstaticfields。3.1.8.PrivateField私有變量命名規(guī)范1)使用名詞、名詞性詞組或者名詞地縮寫(xiě)來(lái)命名。2)使用CamelCase。3)變量名中不使用下劃線(_)。4)成員變量不要使用匈牙利命名法。5)只要合適,在變量名的末尾追加計(jì)算限定符(Avg、Sum、Min、Ma

9、x、Index)。6)在變量名中使用互補(bǔ)對(duì),如min/max、begin/end和open/close。7)布爾變量包含Is,這意味著Yes/No或True/False值,如:(filelsFound)。8)狀態(tài)變量命名時(shí),避免使用諸如Flag的術(shù)語(yǔ)。狀態(tài)變量不同于布爾變量的地方是它可以具有兩個(gè)以上的可能值。不是使用documentFlag,而是使用更具描述性的名稱(chēng),如:(documentFormatType)。PS.公有變量使用Pascalcase7.9.9.局部變量命名規(guī)范1)遵循3.1.8PrivateField命名規(guī)范。開(kāi)頭要加_并用Var定義如:(_babybus);2)除去for循

10、環(huán),不要輕易使用單字母變量i,j,k等。7.9.10.Parameter參數(shù)命名規(guī)范1)對(duì)于Parameter名稱(chēng)使用Camel大小寫(xiě)形式。如:(babyBus);2)使用描述性的名稱(chēng)。參數(shù)名字應(yīng)該在大多數(shù)場(chǎng)合下它的名字加上類(lèi)型足夠描述它的意義。3)使用描述參數(shù)的意義的名字而不是描述參數(shù)類(lèi)型的名字。 開(kāi)發(fā)工具應(yīng)該提供有關(guān)參數(shù)類(lèi)型的有意義的信息。因而,參數(shù)的名字可以用于更好的描述意義。4)保守地使用基于類(lèi)型的參數(shù)名字,僅僅在它們是合適的場(chǎng)合下使用。5)不要使用保留的參數(shù)。6)不要使用匈牙利命名法。7.9.11.Method函數(shù)命名規(guī)范1)使用動(dòng)詞或者動(dòng)詞性詞組命名。2)使用Pascalcase。

11、如:(BabyBus()7.9.12.Property屬性命名規(guī)范1)使用名詞或者名詞性詞組命名。如:(AppleNum)2)使用Pascalcase。3)不要使用匈牙利命名法。4)考慮使用和propertytype名字相同的名字作為propertyname。如:(AppleNumInt)7.9.13.Event 命名規(guī)范1)使用Pascalcase。2)不要使用匈牙利命名法。3)在eventhandler名字中使用EventHandler后綴。如:(BabyBusEventHandler)4)指定兩個(gè)名字分別為sender和e的參數(shù)。sender參數(shù)代表了發(fā)出事件的對(duì)象。sender參數(shù)總是

12、類(lèi)型object,即使可能使用一個(gè)更加精確的類(lèi)型。和事件相關(guān)的狀態(tài)封裝在名字為e的eventclass的實(shí)體之中。給e指定恰當(dāng)而且明確的eventclass。5)使用EventArgs后綴命名事件參數(shù)class。6)考慮使用動(dòng)詞命名事件。使用進(jìn)行時(shí)態(tài)來(lái)標(biāo)識(shí)事件正在進(jìn)行之中,使用完成時(shí)態(tài)標(biāo)識(shí)事件已經(jīng)完成,不要使用BeforeXxx/AfterXxx命名法。7)不要在事件聲明中使用前綴和后綴,比如,用Close而不是OnClose。8)一般應(yīng)同時(shí)提供一個(gè)名字為OnXxx的protectedmethod供派生類(lèi)來(lái)改寫(xiě)。3.1.13.注釋命名規(guī)范1)定義的類(lèi)和函數(shù)必須含有文件頭標(biāo)志/而且其中的內(nèi)容介紹

13、最好是帶有空格的。如:/用戶(hù)類(lèi)用戶(hù)基本信息/publicclassPerson2)枚舉必須注釋3)參數(shù)必須注釋?zhuān)瑓?shù)注釋節(jié)點(diǎn)里不能空著,參數(shù)的個(gè)數(shù)必須與注釋里的個(gè)數(shù)一致,參數(shù)的注釋里必須有參數(shù)的名稱(chēng),參數(shù)的個(gè)數(shù)必須與注釋里的個(gè)數(shù)一致4)元素必須添加注釋5)返回值必須添加注釋6)注釋中不能出現(xiàn)空白行PS。1.2015.03.16新增DoNotPrefixCallsWithBaseUnlessLocalImplementationExists不濫用base.使用this.this.前綴不能省略調(diào)用類(lèi)成員的時(shí)候要加上this.前綴函數(shù)正文的長(zhǎng)度不能超過(guò)50行bool類(lèi)型的命名時(shí)要加is1早(usin

14、gUnityEngine;2IusingSystem.CoLLections.Generic;345678namespacebabybus.NavMeshEx910RequireComponent(typeoi(MeshFiLter)typeof(MeshRenderer)ExecutelnEditMode3referencesSpublicclassNavMeshObject:MonoBehaviour111213141516171819202122232425267referencespublicboolEditableget(returneditable;)set(editable=va

15、lue;)SeriaLizeFieLdprivatebooleditable;27282930313233343536頂點(diǎn)的本地坐標(biāo)7referencespublicListVerticesgetreturnvertices;SeriaLizeFieLdprivateListvertices;三角形頂點(diǎn)索引19referencespublicListTriangles(getreturntriangles;)SeriaLizeFieLdprivateListtriangles;選中點(diǎn)索引,最多選中三個(gè)1referencepublicistSelectedsgetreturnselecteds;

16、)SeriaLizeFieLdprivateListselecteds;7referencespublicMeshNavMesh(get;privateset;publicCoLornormalcolor=CoLor.bLack,selectedColor=CoLor.Mh373839B4041早4243444546.47484950515253B545556575859606162Q63646570717273747576777879800referencespublicvoidAwake()vertices=newList();triangles=newList();selecteds=n

17、ewList();NavMesh=newMesh();NavMesh.na/ne=lfNavMeshObjectMesh;GetComponent().mesh=NavMesh;8182838485860referencespublicvoidOnDestroy()GetComponent().mesh=null;87早888990919293IIIsummary)添加世界坐標(biāo)點(diǎn)/summary)1referencepublicvoidAddPoint(Vector3point)/ertices.Add(transform.InverseTransformPoint(point);Update

18、Mesh();)949596979899000102030405IIIsummary)根據(jù)索引移除點(diǎn)/summary)1referencepublicvoidRemovePointAt(intindex)Vertices.RemoveAt(index);for(inti=0;iTriangles.Count;i+)移除使用該點(diǎn)的三角形if(Trianglesi=index)Triangles.RemoveRange(i-i%3,3);i=i-i%3-1;)for(inti=0;iindex)Trianglesi-;)UpdateMesh();)IIIsummary)移動(dòng)頂點(diǎn)/summary)1referencepublicvoidPositionHandleAt(intindex,Vector3delta)Verticesindex+=delta;UpdateMesh();IIIsummary)轉(zhuǎn)換為世界坐標(biāo)/summary)1referencepublicListTransformPoints()(Listpoints=newList();fo

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論