Unity Windows
Hive SDK Unity Windows 应用程序开发在开发后构建应用程序时需要以下设置。
构建预配置¶
在构建 Windows 项目之前,请在编辑器的 文件 > 构建设置... 中配置以下设置:
- 设置构建:
- 配置播放器:您可以通过按下构建设置窗口左下角的 播放器设置... 按钮或在检查器窗口的 播放器 类别中进行设置。
- 配置HIVE_PLUGIN.dll 文件:请参阅下图,并在 检查器 窗口中将HIVE_PLUGIN.dll 文件设置在Assets\Hive_SDK_v4\Plugins\Windows 文件夹中。
构建配置¶
根据在构建配置中是否选择生成 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的结果时,需要进行重新定位解决方案过程。
- 将Unity构建过程中创建的文件从文件夹复制到与可执行文件相同的文件夹中,排除[项目名称_Data].sln和UnityCommon.props。
- 以相同的方式复制locales、resources和swiftshader文件夹。
- 修改hive_config.xml的内容以匹配项目,并在可执行文件下的resources文件夹中指定位置。(Appid、Google相关、Facebook相关)
- 如果游戏需要在hive_config.xml中输入市场值,请输入
HS
,这是Hive商店的市场代码。(然而,在hive_config.xml中输入的市场值不会影响实际服务。) -
将build\bin\项目名称_Data文件夹复制到可执行文件所在的文件夹中。
-
在build\bin[项目名称_Data]\plugins中的文件(*.dll)是重复的,因此可以删除。
- 将额外的.dll和资源放置在build\bin[项目名称_Data]\plugins中,而不是可执行文件所在的文件夹中是部分可行的,但有些功能无法正常工作,因此它被复制到可执行文件所在的文件夹中并使用。
Note
在非开发者 PC 环境运行游戏时,需要安装 可再发行组件包。
如果以调试模式构建,则需要可再发行组件包的调试版本 DLL:vccorlib140d.dll, vcruntime140d.dll, cruntime140_1d.dll, ucrtbased.dll, msvcp140d.dll, concrt140d.dll
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