Unity Windows
Hive SDK Unity Windows 應用程式開發在開發後構建應用程式時需要以下設置。
建立預配置¶
在建立 Windows 專案之前,請在編輯器的 檔案 > 建置設定... 中配置以下設定:
- 設置構建:
- 配置播放器:您可以通過按下構建設置窗口左下角的播放器設置...按鈕或在檢查器窗口的播放器類別中進行設置。
- 配置HIVE_PLUGIN.dll文件:參考下圖並在檢查器窗口的Assets\Hive_SDK_v4\Plugins\Windows文件夾中設置HIVE_PLUGIN.dll文件。
建構配置¶
根據在建構配置期間是否選擇生成 Visual Studio 解決方案,請根據以下選項 1.或選項 2.進行操作。
選項 1. Visual Studio 解決方案生成: 假¶
- 在編輯器的項目中準備Assets\Plugins\Windows\res\hive_config.xml文件。
- Hive SDK的附加文件(資源文件,如.dll, .pak, .bin)將由Assets\Hive_SDK_v4\Editor\HivePostprocess.cs複製到Unity Build生成的可執行文件所在的文件夾。如果未複製,請手動按以下方式複製:
- Assets\Hive_SDK_v4\Plugins\desktop\hive_string → [可執行文件夾]\resources\hive_string
- Assets\Hive_SDK_v4\Plugins\Windows\additional → [可執行文件夾](不包括.meta文件)
- Assets\Plugins\Windows\res\hive_config.xml → [可執行文件夾]\resources\hive_config.xml
- 如果您在上一步中手動複製了文件,請將[可執行文件夾]\hive-sdk-res文件夾下的內容移動到[可執行文件夾]\resources文件夾。
- 如果您已經移動了[可執行文件夾]\hive-sdk-res中的所有內容,您可以刪除hive-sdk-res文件夾。
- Assets\Hive\SDK\v4\Editor\HivePostprocess.cs腳本使用項目中指定的版本來設置版本。如果可執行版本未更改,您可以從CMD或PowerShell執行Assets\Hive\SDK\v4\Plugins\Windows\postBuildUtil\rcedit.exe來手動更改。
選項 2. Visual Studio 解決方案生成:真¶
在所需的文件夾中執行 Windows 目標 Unity 構建,並使用在 構建預配置 中配置的環境。
建立後配置¶
本節描述了在構建 Hive SDK Unity Windows 應用程序後所需的設置。在 Unity 構建完成後,將生成以下文件。
- 構建
- Il2CppOutputProject
- [專案名稱] 資料夾
- UnityPlayerStub
- [專案名稱].sln
- UnityCommon.props
- locales
- resources
- swiftshader
- .dll
- cef.subprocess.exe
- .pak
- .bin
- icudtl.dat
版本設定¶
您可以通过修改WindowsPlayerVersion.rc文件中的FILEVERSION
和PRODUCTVERSION
来设置版本,该文件位于[项目名称]文件夹内。修改后的版本在与Hive 服务器通信时用作appversion
信息。
Visual Studio 建置和 Hive SDK 複製¶
- 使用 Visual Studio 打開sln,在構建過程中可執行文件將被創建在build\bin\x64\Debug(或 Master)文件夾中。
- 在使用 Visual Studio 2019 運行 Unity 2018.4.17 的結果時,需要進行Retarget Solution過程。
- 從 Unity 構建期間創建的文件夾中複製文件到與可執行文件相同的文件夾中,排除[Project name_Data].sln和UnityCommon.props。
- 以相同的方式複製locales、resources和swiftshader文件夾。
- 修改hive_config.xml中的內容以匹配項目,並指定可執行文件下的resources文件夾中的位置。(Appid、Google 相關、Facebook 相關)
- 如果遊戲需要在hive_config.xml中輸入的市場值,請輸入
HS
,這是Hive 商店的市場代碼。(不過,在hive_config.xml中輸入的市場值不會影響實際服務。) -
將build\bin\Project name_Data folder複製到可執行文件所在的文件夾中。
-
在build\bin[Project name_Data]\plugins中的文件(*.dll)是重複的,因此可以刪除。
- 將額外的.dll和資源放在build\bin[Project name_Data]\plugins中,而不是可執行文件所在的文件夾是部分可行的,但有些功能無法正常運作,因此它會被複製到可執行文件所在的文件夾中使用。
Note
Redistributable packages 在开发者的 PC 以外的环境中是必需的。
在调试模式下构建时,需要 redistributable 包的调试版本 DLL:vccorlib140d.dll, vcruntime140d.dll, cruntime140_1d.dll, ucrtbased.dll, msvcp140d.dll, concrt140d.dl
SDK 單獨部署 (可選)¶
您可以选择在项目构建过程中单独部署SDK,这样可以在游戏项目目录中将游戏和SDK分开。
在現有的專案目錄中,SDK 相關的庫與遊戲程序 (*.exe) 位於同一層級。通過將 SDK 相關的文件和庫放置在專用的 PlatformHive 子文件夾中,您可以確保 SDK 的獨立依賴性。
目錄結構比較¶
如果您在项目的 脚本定义符号 中添加 HIVE_SDK_LOAD_FROM_STREAMING_ASSETS
宏,SDK 相关的文件和库将被放置在 PlatformHive 文件夹中,这与默认的项目结构不同。
-
預設專案結構 (不包含
HIVE_SDK_LOAD_FROM_STREAMING_ASSETS
) -
獨立部署結構 (使用
HIVE_SDK_LOAD_FROM_STREAMING_ASSETS
)GameRoot ├─ <GameName>_Data/ ; Unity 數據文件夾 │ └─ StreamingAssets/ ; 隔離文件夾 │ └─ PlatformHive/ ; 隔離文件夾 │ ├─ HIVE_SERVICE.dll, libcef.dll, cef.subprocess.exe … │ ├─ propFolder/ ; hive 本地數據 │ └─ resource/ ; hive_config.xml, html └─ <GameName>.exe
※ 只有构建后SDK文件的最终位置更改为
_Data/StreamingAssets/PlatformHive/ 。项目结构和SDK引用方法保持不变。
配置步驟¶
按照這些步驟配置單獨的SDK部署:
- 在 Unity 中,前往 项目设置 > 玩家 > 其他设置,并将
HIVE_SDK_LOAD_FROM_STREAMING_ASSETS
添加到 脚本定义符号 字段。有关详细信息,请参见 自定义脚本符号指南。 - 请参阅 选项 1. Visual Studio 解决方案生成:假 以进行项目构建配置。
- 在构建项目时,Assets/Hive_SDK_v4/Editor/HivePostprocess.cs 脚本将自动将 SDK 相关文件复制到 PlatformHive 文件夹。
刪除未使用的 XML 檔案¶
如果您是通过 Unity 包 安装或更新 Hive SDK Unity,而不是通过 Hive SDK 管理器,您必须在构建应用程序之前删除以下路径中所有 HIVESDK_{library_name}Dependencies.xml 文件。
- 資產/Hive_SDK_v4/依賴項
- 資產/Hive_SDK_v4/編輯器
要刪除的文件示例如下:
- HIVESDK_DefaultDependencies.xml
- HIVESDK_HerculesDependencies.xml
- HIVESDK_HiveAnalyticsConsentModeDependencies.xml
- HIVESDK_HiveDataStoreDependencies.xml
- HIVESDK_HiveDeviceManagementDependencies.xml
- HIVESDK_HiveGoogleInAppReviewDependencies.xml
- HIVESDK_HiveGoogleInAppUpdateDependencies.xml
- HIVESDK_HivePromotionDependencies.xml
- HIVESDK_HiveRealNameVerificationDependencies.xml
- HIVESDK_MarketAmazonDependencies.xml
- HIVESDK_MarketAppleDependencies.xml
- HIVESDK_MarketGoogleDependencies.xml
- HIVESDK_MarketHiveStoreDependencies.xml
- HIVESDK_MarketHuaweiDependencies.xml
- HIVESDK_MarketLebiDependencies.xml
- HIVESDK_MarketOneStoreDependencies.xml
- HIVESDK_MarketSamsungDependencies.xml
- HIVESDK_ProviderAdjustDependencies.xml
- HIVESDK_ProviderAppleDependencies.xml
- HIVESDK_ProviderAppleSignInDependencies.xml
- HIVESDK_ProviderAppsFlyerDependencies.xml
- HIVESDK_ProviderFacebookDependencies.xml
- HIVESDK_ProviderFirebaseDependencies.xml
- HIVESDK_ProviderGoogleDependencies.xml
- HIVESDK_ProviderGooglePlayGamesDependencies.xml
- HIVESDK_ProviderHiveMembershipDependencies.xml
- HIVESDK_ProviderHuaweiDependencies.xml
- HIVESDK_ProviderLineDependencies.xml
- HIVESDK_ProviderQQDependencies.xml
- HIVESDK_ProviderRecaptchaDependencies.xml
- HIVESDK_ProviderSingularDependencies.xml
- HIVESDK_ProviderVKDependencies.xml
- HIVESDK_ProviderWechatDependencies.xml
- HIVESDK_ProviderWeverseDependencies.xml
- HIVESDK_PushAmazonAdmDependencies.xml
- HIVESDK_PushGoogleFcmDependencies.xml