? ,,

亚洲午夜精品视频_国产黄大片_网站av_99亚洲伊人久久精品影院红桃_91av入口_永久免费av片在线观看全网站

聯系我們

給我們留言

聯系我們

地址:福建省晉江市青陽街道洪山路國際工業設計園納金網

郵箱:info@narkii.com

電話:0595-82682267

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

當前位置:主頁 > 3D教程 > 圖文教程

UE4教程:擴展UE4——鏈接靜態庫到UE4引擎中

來源: 52VR | 責任編輯:傳說的落葉 | 發布時間: 2019-05-13 08:49 | 瀏覽量:

擴展UE4——鏈接靜態庫到UE4引擎中

 

UE4教程:擴展UE4——鏈接靜態庫到UE4引擎中

目錄

    *綜述

              *范圍與注釋

    *Visual Studio 2013/2015-庫構型

    *創建一個項目.

    *升級另一個項目

              *自定義目標UE4模塊

    *以64bit平臺作為目標

    *多線程動態鏈接庫

              *第三方目錄

  *虛擬引擎4(UE4)-構建系統

   * 擴展 Base ModuleRules 類

   * 加載我們的庫

 * Visual Studio 2013/2015——鏈接我們的庫

    *啟動模塊

    *編組

 * 更多信息

綜述

 

        本篇指導的目的是為大家展示如何鏈接靜態庫到使用Build System 的UE4引擎中,初期目標受眾是那些不打算升級引擎但希望通過提供相應功能的庫來拓展UE4的功能。

 

        舉例說吧,我將生成一種叫BobsMagic的庫,在將它鏈接進一個叫UE4Magic的UE4 項目。

范圍與注釋

 

*你將可以鏈接自己設計的函式庫。

*本次指南不會深入到公開功能或定義任何AP1

*我希望閱覽者至少粗略理解C++,C#,以及MS Visual Studio 2013

*本文所提供的所有代碼路徑都來自于UE4 Project 基目錄。

 
Visual Studio 2013/2015-庫配置(Library Configuration)
 
        ?當你正在使用UE4引擎,你應該使用相同版本的微軟Visual Studio(Microsoft Visual Studio)來編譯靜態庫。這是因為各個版本的Visual Studio的編譯程序各不相同,導致二進制上不兼容。請放心,一旦你使用了不同版本的Visual Studio,當你視圖將庫編入時,系統會提出警告。
 
創建項目
 
        ?請移步MSDN,按上面的步驟生成一個新的靜態庫。由于我們必須做兩個修正來讓它們運行起來,所以請在完成后返回。
 
更新另一個項目
 
        當你用Project或配置了早期版本的Visual Studio的解決方案文件打開一個項目,你會被要求進行版本升級。同意開始升級后將會把點編址在本區段起始處。假如你錯過了這個對話(dialog),或是該對話未顯示給您,有可能在解決方案資源管理器中選擇菜單欄的“項目> 升級VC++項目”進行升級。
 

自定義目標UE4模塊

 

        我們將需要做一些其他修正以確保我們的庫能被很容易地鏈入。

 

以64bit平臺作為目標

 

        憑借一個標準的靜態庫項目我們將把x86(32 bit)平臺作為目標,該指令不對UE4起作用。

 
1.打開項目屬性頁。
2.選擇配置管理器
3.打開使用中的方案平臺(Active Solution Platform),在下拉菜單中選擇<新...>
4.鍵入或選擇x64
5.點擊“OK”完成保存
 
        你應該可以在此點結束該項目。你應該在Visual Studio頂端下拉框看到它。

 

       更多內容請見targeting x64

 

多線程動態鏈接庫(Multi Threaded DLL)

 

        虛幻引擎構建系統預料到使用者提供一個之后會鏈接進動態鏈接庫(DLL),因此我們不得不確保我們的項目也能完成此鏈接。

              1.打開項目屬性頁

              2.過濾配置管理器> C/C++ > 代碼生成 > 運行時間庫(Configuration Properties > C/C++ > Code Generation > Runtime Library

              3.在下拉菜單中選擇多線程動態鏈接庫(Multi Threaded DLL/MD)

              4.點擊“OK”完成保存

 

第三方目錄

 

       創建你的項目,記錄庫被輸出的位置。根據你所創建的項目的模式你的庫文件(lib project)應位于/bin/Debug or /bin/Release,除非你提交前更改了位置。我們將把它們從這里移動到我們的UE4項目目錄,以解除引用和之后的打包。

 

       打開一個新的瀏覽器窗口導入你的項目目錄。導入完成后創建一個新的路徑給你的庫-/ThirdParty/BobsMagic

 

       對于每一個你要引用的庫你都將遵循這一步驟,假如我要增加V8庫我將創建/ThirdParty/V8

 

       在這個目錄里我們將增加兩個新建文件夾——Libraries和Includes——以覆蓋它們各自的文件。Includes 是與你的庫相伴隨的頁眉文件,用于定義你在UE4引擎里引用的API(Application Programming Interface/應用程序編制界面)。你應該將你的*.庫文件(s)復制進Libraries目錄。

 

        注意:這是一個任意的目錄。記錄它的路徑很重要,所以之后你會在構建系統(build system)里引用它。

 

 

UE4教程:擴展UE4——鏈接靜態庫到UE4引擎中

 

UE4——構建系統

 

        現在我們將要逐步執行虛幻引擎,把我們的庫編址到引擎。

 

        創建系統需要用到一些C#編碼,不過無須擔心。我們的示例將非常簡單,所以你只要復制粘貼下面的代碼就可以了。

 

擴展基礎 ModuleRules類

 

        大家也許應該添加兩個屬性到ModuleRules類。我將記錄的這兩個屬性是用來確保我們知道我們的模塊和第三方目錄的位置。這兩個屬性將利用System.IO命名空間,使用2個路徑靜態方法。

 

        在 /Source/UE4Magic/UE4Magic.Build.cs里

   LoadBobsMagic保持了一些build system的配置元素,接受TargetInfo對象,可以讓你在編譯時間自定義構建。它被傳遞后可以讓我們載入視窗目標的庫,自后可以被用于靶向其他平臺。這也使用于以64bit或32bit平臺為目標的情況。如果你還記得,我在上面提到過x64平臺為目標,不過你也可以借此機會編譯出32bit(x86)的庫。

 

 

        接下來我們將以將要鏈接的庫之名定義一個被傳遞的常量。

 

 

        在 /Source/UE4Magic/UE4Magic.Build.cs里

       ?這是一個非常直截了當的設置,不大可能代表一個完全跨平臺的構建。我們已經做到了創建在編譯時間通過的常量WITH_BOBS_MAGIC_BINDING,設為1(或真)。

 

Visual Studio 2013/2015——鏈接我們的庫

        

        現在你可以將你的頁眉文件包含進去,并啟動執行代碼。

 

啟動模塊(Startup Module)

 

        虛幻引擎一些已知細節是你可以重寫默認的游戲執行(Game Implement),當你的模塊被啟動/關閉(類似于裝載/卸載)時你能獲得一個已執行的類函數。這未必與build system相關,但卻是插件開發者們很有可能在初始化點尋找的常見的事。

 

        在/Source/UE4Magic/UE4Magic.cpp里

        你可以在此點啟動Visual Studio 調試器,一步步跟蹤代碼。如果你鏈接了調試版本,你甚至可以把代碼放入你所編譯的庫。他將裝載于 ThirdParty/BobsMagic/Includes/Welcome/ 的頁眉文件,讓庫像我們預期的那樣執行。

 

編組(Marshalling)

 

       你很快就能發現,你的庫將不會使用虛幻引擎4里的相同類型。重要的是,你要在兩者之間以一種有意義切深思熟慮的方法編組你的數據。若在之后改變可能將會導致復雜化的問題。

 

       當把V8鏈接進虛幻引擎4時,我在StringConv.h里發現了一對宏命令,用于在寬位字符(Wide Character)、統一碼(Unicode)、字符串(Strings)和C-style字符串(C style Character Strings)之間的轉換。所以我推薦各位再看看其他有用的轉換。你最終可能需要創建封裝器對象(Wrapper objects)。

 

更多信息

 

 

       我已經成功將V8鏈接進UE4了,現在正在編寫一個模塊讓大家在自己的項目里以JavaScript作為腳本語言。


相關文章
網友評論

您需要登錄后才可以發帖 登錄 | 立即注冊

關閉

全部評論:0條

推薦
熱門
主站蜘蛛池模板: 中文字幕日产无码 | 午夜影网| 成人合成mv福利视频网站 | 亚洲精品成a人在线观看 | 欧美高h视频 | 婷婷玖玖 | 在线亚洲精品自拍 | 亚洲一区视频在线 | 色婷婷在线播放 | 亚洲狠狠狠一区二区三区 | 欧美日韩高清一区二区三区 | 国产成人精品久久一区二区三区 | 欧美日韩一卡 | 自偷自拍亚洲综合精品 | 天堂中文最新版在线中文 | 老师粉嫩小泬喷水视频90 | 亚洲精品第一区二区在线 | 亚洲精品久久久久影 | 妺妺窝人体色www在线观看 | 国产va精品免费观看 | 国产肥熟女视频一区二区三区 | 夜夜爽夜夜叫夜夜高潮漏水 | 美女又黄又免费的视频 | 欧美视频一区二区三区 | 国产一区二区视频在线播放 | 久久久久久成人综合网 | 精品亚洲在线 | 色综合天天综合给合国产 | 国产精品日日做人人爱 | 青青青国产免费全部免费观看 | 欧美精品成人 | www国产精品内射老熟女 | 一级电影毛片 | 欧美亚洲日本国产 | 久久婷婷五月综合国产尤物app | 欧美日韩精品一区二区三区不卡 | 怡红院免费的全部视频 | 免费视频精品一区二区三区 | 求欧美精品网址 | 国产一级高清视频 | 色中色污 |