免费高清特黄a大片,九一h片在线免费看,a免费国产一级特黄aa大,国产精品国产主播在线观看,成人精品一区久久久久,一级特黄aa大片,俄罗斯无遮挡一级毛片

分享

Unity 特殊文件夾及腳本編譯順序

 阿修羅之獅猿授 2017-04-15

一、特殊文件夾

通常我們會為我們創(chuàng)建的文件夾去上任何喜歡的名稱,但是有一些文件夾名稱會被Unity解釋為一個指令,文件夾中的內(nèi)容會被Unity特殊對待。例如,必須將編輯器腳本放置在名為Editor的文件夾中,這樣這些腳本才能正常運行。


1、Assets

該文件夾是Unity工程使用到的資源的根目錄。編輯器中,Project窗口直接一一對應(yīng)的顯示這個目錄下的資源。大多數(shù)的API函數(shù)都是假定一切都是位于Assets文件夾中的,我們不需要明確的提及它。但是某些函數(shù)需要將Assets文件夾作為路徑名的一部分(例如AssetDatabase中的某些函數(shù))。


2、Editor

放在該文件夾或其中的子文件中的所有腳本都被視為編輯器腳本,而不是運行時腳本。這些腳本被設(shè)計為在開發(fā)期間向Unity本身添加功能的腳本,并且不能運行在已經(jīng)發(fā)布的游戲上??梢栽陧椖恐惺褂枚鄠€Editor文件夾,但是在一些特殊的文件夾下面會影響他們自身的編譯順序??梢允褂肊ditor腳本中的EditorGUIUtility.Load函數(shù)將放在Editor文件夾下面的Resources文件中的資源加載進來,這些資源只能通過編輯器腳本加載,在編譯時這些資源會被刪除。


注意:如果腳本放在編輯器文件夾中并且派生自MonoBehaviour組件,Unity不允許把這類腳本掛到GameObjects上。


3、Editor Default Resources

編輯器腳本可以通過使用EditorGUIUtility.Load按需加載資源文件。這個函數(shù)從Editor Default Resources里面查找資源,并且你需要把改文件夾直接放到Assets目錄下。


4、Gizmos

Unity的Gizmos允許我們向場景視圖中添加圖形來輔助可視化不可見的設(shè)計細節(jié)。例如,Gizmos.DrawIcon函數(shù)放置一個圖標(biāo)到場景視圖中,以此來標(biāo)記一個特殊的對象或位置的標(biāo)記。我們必須將用到的圖標(biāo)資源放到名為Gizmos的文件夾中,以便能通過DrawIcon函數(shù)查找到。


5、Plugins

Unity允許將插件添加到項目中來擴展Unity的可用功能。插件通常是用C/C++編寫的本地DLL。他們可以訪問由Unity提供的第三方代碼庫,系統(tǒng)調(diào)用和其他功能。必須將插件放到名為Plugins的文件夾中,以便Unity檢測到他們。與編輯器文件夾一樣,這回影響到編譯腳本的順序。


6、Resources

通常,我們可以在場景中創(chuàng)建資源實例,以便在游戲運行過程中使用他們。但Unity還允許我們根據(jù)自身需要通過腳本加載資源。我們只需要將資源放到Resources目錄下或者它的子目錄下(我們可以創(chuàng)建任意數(shù)量的Resources目錄,也可以把Resources放到項目的任意地方),然后通過Resources.Load函數(shù)加載這些資源。當(dāng)然如果Resources文件夾位于Editor的文件夾下面,則里面的資源可以通過編輯器腳本加載,但是在發(fā)布時,這些資源會被刪除。


7、Standard Assets

當(dāng)我們導(dǎo)入標(biāo)準資源包時,這些資源會被放到一個名叫 Standard Assets的文件夾中。該文件夾除了可以包含資源外,還會影響腳本的編譯順序,具體見后面介紹。


8、StreamingAssets

大多數(shù)游戲資源都會直接打包到產(chǎn)品中,但在某些情況下,我們希望資源能夠以原始格式作為單獨的文件提供(例如,要在IOS上播放視頻,必須訪問視頻文件系統(tǒng),而不是把它作為MoiveTexture)。如果將文件放在名為StreamingAssets的目錄中,它將原樣的復(fù)制到目標(biāo)平臺中,然后在特定文件夾中加載他們。


Unity中的大多數(shù)資源在構(gòu)建的就合并到項目中了。但是,將文件放到目標(biāo)計算機上的正常文件系統(tǒng)里,就可以通過路徑名訪問該文件,有時會非常有用。比如在IOS設(shè)備上播放電影文件,在播放時,原始電影文件必須在該文件系統(tǒng)中可用才能正常播放。


在Unity項目中放置在StreamingAssets目錄中的任何文件都會原封不動的拷貝到目標(biāo)計算機的特定目錄中。我們可以使用Application.streamingAssetsPath屬性獲取到文件夾路徑。最好使用Application.streamingAssetsPath獲取StreamingAssets目錄的路徑,因為該方法總是指向運行應(yīng)用程序平臺上的正確位置。


該位置因平臺而異,請注意區(qū)分大小寫:

在臺式機上(Mac OS / Windows)上,可以使用下面代碼獲取文件的位置:

在IOS中,使用:

在中,使用

在Android上,文件包含在壓縮的.jar文件中,這意味著如果不使用Unity的WWW類來檢索文件,我們就需要使用額外的軟件來查看.jar文件內(nèi)部。

注意:位于StreamingAssets目錄中的.dll文件不參與編譯。


9、Hidden Assets

在導(dǎo)入過程中,Unity完全忽略Assets目錄中(或其中的子目錄)中的以下文件和文件夾:

隱藏的目錄

以‘.’開頭的文件和目錄

以‘~’結(jié)尾的文件和目錄

名為cvs的文件和目錄

擴展名為.tmp的文件

這是用于防止導(dǎo)入操作系統(tǒng)或其他應(yīng)用程序創(chuàng)建的特殊和臨時文件。


二、腳本編譯順序

Unity保留了一些項目文件夾名稱來標(biāo)識其內(nèi)的內(nèi)容具有一些特殊目的。而其中一些文件夾會影響腳本編譯的編譯順序。這些文件夾名稱是:

Assets

Editor

Editor default resources

Gizmos

Plugins

Resources

Standard Assets

StreamingAssets


腳本編譯有四個不同的階段。處于哪個階段編譯由其父目錄確定。


在腳本必須引用其他腳本中定義的類容的情況下,編譯的順序就非常重要了?;疽?guī)則是,在當(dāng)前階段之后編譯的任何東西都引用不到,在當(dāng)前階段之前或早期的階段編譯的任何內(nèi)容都可以完全引用。


編譯階段如下:

階段1:編譯Standard Assets、Plugin中的運行時腳本

階段2:編譯Standard Assets、Plugin中的Editor腳本

階段3:編譯其他不在Editor目錄下的腳本

階段4:編譯Editor目錄下的腳本


蠻牛社區(qū)(manew.com)分享最新的游戲研發(fā)和虛擬現(xiàn)實相關(guān)技術(shù)內(nèi)容。


    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多