配置
除了通过编辑器UI提供的设置外,您还可以在项目根目录(“Assets”文件夹上一级目录)中创建的hot-reload-config.json
文件中找到其他更高级的设置。
{
"externalSolutions": ["../src/ExternalSlnDir/External.sln"],
"additionalSourceDirectories": ["../src/SharedUtility"],
"projectBlacklist": ["../src/ExternalSlnDir/UnitTests/UnitTests.csproj"],
"projectExclusionRegex": ".*Tests$",
"polyfillSourceFiles": ["PolyFills/IndexRange.cs"],
"customServerExecutables": {
"win-x64": "/path/to/CodePatcherCLI.exe",
"linux-x64": "/path/to/CodePatcherCLI",
"osx-x64": "/path/to/HotReload.app.zip"
},
"excludeAllAnalyzers": true,
"disableCompilingFromEditorScripts": true
}
修改hot-reload-config.json
后,请执行以下操作以确保应用配置更改:
- 重新编译Unity编辑器
- 重启Hot Reload服务器
此文件中的所有字段都是可选的。以下是每个选项的说明:
externalSolutions
如果您的外部编译管道编译了在unity项目中使用的程序集,这将非常有用。 在此处添加它们将使Hot Reload能够处理对这些解决方案所做的代码更改。
外部解决方案的文件路径。 路径应相对于unity项目路径指定。
请考虑以下示例:
UnityProject
|_ UnityProject.sln
src
|_ ExternalSlnDir
|\_ External.sln
这里的路径将是../src/ExternalSlnDir/External.sln
additionalSourceDirectories
不属于解决方案文件夹或其子文件夹的其他源目录的文件路径。 路径应相对于unity项目路径指定。
请考虑以下示例:
UnityProject
|_ UnityProject.sln
src
|_ ExternalSlnDir
|_ External.sln
|_ External.csproj <- uses Foo.cs
|_ SharedUtility
|_ Foo.cs
在这种情况下,需要将路径../src/SharedUtility
指定为其他源目录。
这主要是为了确保文件观察程序侦听与unity项目相关的所有c#文件。
Assets/和Packages/文件夹以及Packages/manifest.json中指定的所有本地包的路径已经涵盖。
projectBlacklist
Hot Reload应忽略的项目文件的文件路径。 路径应相对于unity项目路径指定。 这可以减少内存使用和启动时间,但如果项目使用的工具不受Hot Reload支持(例如IL-Weaving),也可以防止出现问题。
请考虑以下示例:
UnityProject
|_ UnityProject.sln
src
|_ ExternalSlnDir
|_ External.sln
|_ UnitTests
|\_ UnitTests.csproj
这里的路径将是../src/ExternalSlnDir/UnitTests/UnitTests.csproj
projectExclusionRegex
与projectBlacklist类似,但排除项目名称与给定正则表达式匹配的项目。
示例:.*Tests$
将排除所有以Tests
结尾的项目
polyfillSourceFiles
应添加到所有unity .csproj文件的源文件的文件路径。 如果您使用csc.rsp在编译脚本程序集时包含polyfill csharp文件,请使用此选项。 路径应相对于unity项目路径指定。
请考虑以下示例:
UnityProject
|_ UnityProject.sln
PolyFills
|_ IndexRange.cs
这里的路径将是PolyFills/IndexRange.cs
customServerExecutables
应使用的自定义服务器可执行文件的路径,而不是从通常的来源下载它们。 如果您想将服务器可执行文件提交到您的存储库,以便在更大的团队中使用Hot Reload时不需要外部下载,这将非常有用。
{
"customServerExecutables": {
"win-x64": "/path/to/CodePatcherCLI.exe",
"linux-x64": "/path/to/CodePatcherCLI",
"osx-x64": "/path/to/HotReload.app.zip"
}
}
路径应相对于unity项目路径指定或作为绝对路径。
每当您更新Hot Reload包时,都需要下载更新的二进制文件。
版本是包版本,其中“.”替换为“-”。 因此,对于版本1.5.0,您需要的url是: https://hot-reload.b-cdn.net/releases/1-5-0/server/win-x64/CodePatcherCLI.exe (opens in a new tab) https://hot-reload.b-cdn.net/releases/1-5-0/server/linux-x64/CodePatcherCLI (opens in a new tab) https://hot-reload.b-cdn.net/releases/1-5-0/server/osx-x64/HotReload.app.zip (opens in a new tab)
版本可以在HotReload/Runtime/PackageConst.cs
中找到
常量“ServerVersion”是您需要使用的版本。
excludeAllAnalyzers
默认情况下,Hot Reload将运行Unity也在运行的所有分析器。 但是,在某些情况下,您只想排除所有分析器。例如,当它们主要用于非必要的诊断时。 这可以加快热重载时间和Hot Reload服务器的总体启动时间。 但是,请谨慎使用此选项。如果您正在使用源生成器,那些也将被禁用,这可能导致Hot Reload无法正常工作。
disableCompilingFromEditorScripts
实验性设置,通常通过在进入/退出播放模式时最小化不必要的重新编译来提高性能。 请注意,该设置可能不适用于所有用户,并且可能会产生副作用。