在UE4中,所有的Plugin主要存在於二個地方:
l Engine Plugin:${UE4_ENGINE_ROOT}/Engine/Plugin/,我們在Marketplace上購買的Plugin會下載到其中的Marketplace資料夾。
l Game Plugin:${PROJECT_NAME}/Plugin/,通常我們自己製作的Plugin都是放在這個地方。
製作Plugin的方法非常簡單,我們只需要使用引擎Editor中所提供的工具,就可以快速的製作出各種不同用途的Plugin給專案使用。這個工具提供了各種不同的Plugin範本,在建立的同時會同時為我們的Plugin建立一個預設的Module。
首先,讓我們試著建立一個空白的Plugin吧。
在Editor中選擇Edit->Plugins後,就會跳出Figure 2.6.1畫面。
Figure 2.6.1 按下NewPlugin後,就會出現Plugin範本讓我們選擇。
Figure 2.6.2 選擇Blank,填入必須資訊按下Create Plugin之後,就會在${PROJECT_NAME}/Plugins下面建立出一個新的Plugin。
在建立完Plugin之後,我們會得到Figure 2.6.3中的目錄結構跟檔案。
Figure 2.6.3 使用Blank Plugin範本所建立出來的Plugin。
其中:
l Resources/Icon128.png:為一個128×128大小的png,主要是用來顯示在Editor中。
l ${PLUGIN_NAME}.uplugin:存儲有關於這個Plugin的相關資訊,例如版本號碼、Plugin需載入的Module、作者名稱……等等。
l ${PLUGIN_NAME}.Build.cs:用來描述這個Module跟其他Module的相依關係、其相依專案include檔所存放的相對路徑與其他各種編譯設定。
l ${PLUGIN_NAME}.h跟${PLUGIN_NAME}.cpp:Module Interface的相關定義與實作。
在打開.uplugin後,會看到一個用json格式來描述Module的資訊,見Code 2.6.1。
HorizonGameLibrary.uplugin |
{ “FileVersion”: 3, “Version”: 1, “VersionName”: “1.0”, “FriendlyName”: “HorizonGameLibrary”, “Description”: “Describe about your Plugin here”, “Category”: “Other”, “CreatedBy”: “your name here”, “CreatedByURL”: “”, “DocsURL”: “”, “MarketplaceURL”: “”, “SupportURL”: “”, “CanContainContent”: true, “IsBetaVersion”: false, “Installed”: false, “Modules”: [ { “Name”: “HorizonGameLibrary”, “Type”: “Runtime”, “LoadingPhase”: “Default” } ] } |
Code 2.6.1 Host Type在Blank Plugin的範本預設為Developer,要設成Runtime我們才可以在Shipping中使用。
若是我們想要在這個Plugin中增加其他的Module,只要將相關的程式碼加到${PLUGIN_NAME}/Source下面、並把該Module的載入資訊加到uplugin中就行。比較需要注意的是,Plugin所使用的是IMPLEMENT_MODULE來實作我們的Module Interface,而不是IMPLEMENT_GAME_MODULE。
[置頂] Unreal Engine 4哲學與實務:從Blueprint到C++ - 地平線上的多貢
[…] (完成, 可在此連結找到: http://dorgon.horizon-studio.net/archives/1229 […]