




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、項(xiàng)目目錄及代碼規(guī)范一、目錄部分(公共規(guī)范)1.自定義目錄以”開頭(一級(jí)目錄也是就在Assets目錄下面的自定義目錄)(之前有看過一篇文章說如此做法的好處是:文件夾下如果沒有用到的資源,打包時(shí)不會(huì)被打入進(jìn)去);建議場景以雙下劃線開頭,保證場景永遠(yuǎn)在所有文件夾的最前邊。_ _Scenes_Models_Others_Prefabs_Seripts_Sound_TexturesEditorScenes_Models_Others_Prefabs_Seripts_Sound_TexturesEditorGizmosGizmos仁fJGUI.PluginsW WResourcesResources St
2、reamingAssetsStreamingAssetsAUnityVS. .ZTestZTest2.-Editor自寫的靈活方便插件-Editor_NGUI較大型三方的插件(前面加上Editor是為了讓所有編輯器都集中在一塊)(-NGUI較大型三方的插件,如果你們目錄不多,看起來不亂不改名字也沒問題。方便更新。如果用的插件比較多的話,還是將它放到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其他類型的文件(一般作為不常修改的文件類型,例如添加的Shader、物理材質(zhì)、動(dòng)畫文件。)若認(rèn)為是比較常用的話,可以提取成一個(gè)文件夾。-Plugins主要是DLL的外部插件文件,例如JsonFx、SmartFoxClient等-Prefabs預(yù)儲(chǔ)存文件-Resources動(dòng)態(tài)加載的資源文件,一般這里只用少量,多的話,需要自己打ASSETBUNDLE包,有選擇性的動(dòng)態(tài)加載-Scenes場景文件-Scripts腳本代碼文件-Sounds音效文件-Textures所有
4、的貼圖增加一個(gè)大寫字母Z打頭的測試文件夾,比如Ztest,所有的測試內(nèi)容都可以放到這個(gè)文件夾,好處是該文件夾永遠(yuǎn)處于所有文件夾的最下面,而且最后打包的時(shí)候可以完全刪掉,保證測試的內(nèi)容都剔除出去。二、代碼部分(程序規(guī)范)基本命名規(guī)范:命名原則PascalCase:所有單詞第一個(gè)字母大寫,其他字母小寫。CamelCase:除了第一個(gè)單詞,所有單詞第一個(gè)字母大寫,其他字母小寫。原則:MicroSoft 建議,對(duì)于簡單的變量使用 CamelCase 而對(duì)于比較高級(jí)的命名規(guī)則使用 PascalCase。3.1.2.Namespace名空間命名規(guī)范1)使用公司名.產(chǎn)品名這樣的格式。(例:Babybus.x
5、xx)2)Namespace中類的依賴關(guān)系應(yīng)該體現(xiàn)在命名上,比如System.Web.UI.Design中的類以來于System.Web.UI。3)使用Pascal大小寫形式命名。(例:GameSceneScript)4)當(dāng)商標(biāo)(產(chǎn)品名)的命名風(fēng)格和Pascal風(fēng)格不符時(shí),以商標(biāo)(產(chǎn)品名)為準(zhǔn)。(例:iOS)5)在語意合適的情況下使用復(fù)數(shù),比如System.Collections。例外是縮寫和商標(biāo)的情況。6) Namespace的名字不一定和Assembly一一對(duì)應(yīng)。3.1.3.Class類命名規(guī)范1)使用名詞或者名詞性詞組命名class。2)使用Pascalcase。3)文件名應(yīng)和類名相同。
6、4)保守地使用縮寫。5)不使用type前綴,例如C來標(biāo)識(shí)Class。比如,使用FileStream而不是CFileStream。6)不使用下劃線。7)偶爾的在Class名稱組成中需要使用I開頭的時(shí)候,比如IdentityStore,justuseit。8)在合適的時(shí)候,使用單詞復(fù)合來標(biāo)識(shí)從某個(gè)基類繼承而來。比如xxxException。3.1.4.Interface接口的命名1)使用名詞或者名詞性詞組命名Interface。2)使用Pascalcase。3)保守地使用縮寫。4)在interface名稱前加上字母I來表示type是interface。如:(IBabybus)5)在某個(gè)class是
7、某個(gè)interface地標(biāo)準(zhǔn)實(shí)現(xiàn)地時(shí)候,用類似的名字來命名它們,僅僅在interface的名稱前面多個(gè)I。6)不要使用下劃線。7)文件名應(yīng)和類名相同。3.1.5.Attribute參數(shù)命名規(guī)范1)總是給Attribute類加上Attribute后綴。2)文件名應(yīng)和類名相同。3.1.6.EnumerationType枚舉命名規(guī)范1)對(duì)Enum類型和值使用Pascalcase。2)不要在Enum類型名稱后面加上Enum后綴。3)對(duì)于大多數(shù)Enum類型使用單數(shù)名稱,僅僅在這個(gè)Enum類型是bitfields地時(shí)候使用復(fù)數(shù)形式。4)總是給bitfieldEnum類型添加FlagsAttribute。3
8、.1.7.StaticField靜態(tài)變量命名規(guī)范1)使用名詞、名詞性詞組或者名詞地縮寫來命名staticfields。2)使用Pascalcase。3)不要在staticfield名稱中使用匈牙利命名法變量名=屬性+類型+對(duì)象描述。4)在任何可能的情況下推薦你使用靜態(tài)properties屬性而不是publicstaticfields。3.1.8.PrivateField私有變量命名規(guī)范1)使用名詞、名詞性詞組或者名詞地縮寫來命名。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ù)語。狀態(tài)變量不同于布爾變量的地方是它可以具有兩個(gè)以上的可能值。不是使用documentFlag,而是使用更具描述性的名稱,如:(documentFormatType)。PS.公有變量使用Pascalcase7.9.9.局部變量命名規(guī)范1)遵循3.1.8PrivateField命名規(guī)范。開頭要加_并用Var定義如:(_babybus);2)除去for循
10、環(huán),不要輕易使用單字母變量i,j,k等。7.9.10.Parameter參數(shù)命名規(guī)范1)對(duì)于Parameter名稱使用Camel大小寫形式。如:(babyBus);2)使用描述性的名稱。參數(shù)名字應(yīng)該在大多數(shù)場合下它的名字加上類型足夠描述它的意義。3)使用描述參數(shù)的意義的名字而不是描述參數(shù)類型的名字。 開發(fā)工具應(yīng)該提供有關(guān)參數(shù)類型的有意義的信息。因而,參數(shù)的名字可以用于更好的描述意義。4)保守地使用基于類型的參數(shù)名字,僅僅在它們是合適的場合下使用。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、類型object,即使可能使用一個(gè)更加精確的類型。和事件相關(guān)的狀態(tài)封裝在名字為e的eventclass的實(shí)體之中。給e指定恰當(dāng)而且明確的eventclass。5)使用EventArgs后綴命名事件參數(shù)class。6)考慮使用動(dòng)詞命名事件。使用進(jìn)行時(shí)態(tà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供派生類來改寫。3.1.13.注釋命名規(guī)范1)定義的類和函數(shù)必須含有文件頭標(biāo)志/而且其中的內(nèi)容介紹
13、最好是帶有空格的。如:/用戶類用戶基本信息/publicclassPerson2)枚舉必須注釋3)參數(shù)必須注釋,參數(shù)注釋節(jié)點(diǎn)里不能空著,參數(shù)的個(gè)數(shù)必須與注釋里的個(gè)數(shù)一致,參數(shù)的注釋里必須有參數(shù)的名稱,參數(shù)的個(gè)數(shù)必須與注釋里的個(gè)數(shù)一致4)元素必須添加注釋5)返回值必須添加注釋6)注釋中不能出現(xiàn)空白行PS。1.2015.03.16新增DoNotPrefixCallsWithBaseUnlessLocalImplementationExists不濫用base.使用this.this.前綴不能省略調(diào)用類成員的時(shí)候要加上this.前綴函數(shù)正文的長度不能超過50行bool類型的命名時(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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼寧軌道交通職業(yè)學(xué)院《分子生物學(xué)4》2023-2024學(xué)年第二學(xué)期期末試卷
- 濟(jì)南2025年山東濟(jì)南市鋼城區(qū)所屬事業(yè)單位招聘初級(jí)綜合類崗位26人筆試歷年參考題庫附帶答案詳解-1
- 綿陽飛行職業(yè)學(xué)院《消化系統(tǒng)疾病》2023-2024學(xué)年第二學(xué)期期末試卷
- 成都醫(yī)學(xué)院《DesignofStructures》2023-2024學(xué)年第二學(xué)期期末試卷
- 青島電影學(xué)院《作物育種學(xué)總論》2023-2024學(xué)年第二學(xué)期期末試卷
- 河源廣東河源市消防救援支隊(duì)2025年第一批政府專職消防員招聘86人筆試歷年參考題庫附帶答案詳解
- 動(dòng)物炭黑、動(dòng)物膠及其衍生物項(xiàng)目效益評(píng)估報(bào)告
- 沈陽工業(yè)大學(xué)《藥用作物栽培學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025屆高考語文補(bǔ)充背誦詩詞:《青玉案·元夕》教學(xué)設(shè)計(jì)
- 南京視覺藝術(shù)職業(yè)學(xué)院《Java應(yīng)用設(shè)計(jì)案例》2023-2024學(xué)年第二學(xué)期期末試卷
- 江蘇省招標(biāo)中心有限公司招聘筆試沖刺題2025
- 2024年防盜門銷售合同范本
- 支付令申請(qǐng)書(2025版)
- 麻醉護(hù)士的 工作職責(zé)
- 2025年中考語文一輪復(fù)習(xí):九年級(jí)下冊(cè)知識(shí)點(diǎn)梳理
- 旅游健康與保健知識(shí)
- 亞朵酒店前臺(tái)述職報(bào)告
- 《肝衰竭診治指南(2024版)》解讀
- 數(shù)據(jù)安全重要數(shù)據(jù)風(fēng)險(xiǎn)評(píng)估報(bào)告
- 孝悌課件教學(xué)課件
- 《期末總結(jié)》課件
評(píng)論
0/150
提交評(píng)論