配置

配置

除了通过编辑器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包时,都需要下载更新的二进制文件。

https://hot-reload.b-cdn.net/releases/{version}/server/{platformName}/{fileName} (opens in a new tab)

版本是包版本,其中“.”替换为“-”。 因此,对于版本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

实验性设置,通常通过在进入/退出播放模式时最小化不必要的重新编译来提高性能。 请注意,该设置可能不适用于所有用户,并且可能会产生副作用。