Troubleshooting
-
My changes don't show up
- Ensure that the file you are editing is saved.
- Verify that the function that you have edited is being invoked again after the hot reload. For example, we don’t call Start when editing a function inside a MonoBehaviours, as it could disrupt the logic of your game.
- Inspect the Hot Reload server window (the black pop-out window) for any errors or warnings. This window may provide additional information on why your changes are not being reflected in the game.
-
Hot Reload doesn't start
If you are running MacOS and Hot Reload doesn't start, try the following:
- Find the
HotReload
executable inside/Users/Shared/singularitygroup-hotreload/
- Verity that the file is indeed corrupted by attempting to open it:
- Extract and replace the application within the HotReload.app.zip archive with the one outside
- Find the
-
My changes only apply once I focus the Unity Editor window
The Unity Editor by default only runs if it’s focussed. You can change this setting in
Edit -> Project Settings -> Player -> Run In Background
-
Why does hot reload take a long time to notice my changes?
Hot Reload detects changes and updates only when the relevant C# file is saved. By default, most text editors auto save when you switch to a different window. We recommend enabling this setting in case it is disabled.
Configuration for some popular text editors:
- JetBrains Rider
- Settings | Appearance & Behavior | System Settings -> Save files when switching to a different application of built-in terminal
- Visual Studio Code
- File (top-left of the window) -> autoSave
- Visual Studio 2022
- Tools -> Options -> Environment -> Preview Features -> Autosave
- JetBrains Rider
-
Unity recompiles every time I enter/exit playmode
When using Hot Reload, there's no need to recompile when entering or exiting playmode in the Editor.
However, some third-party assets, Unity versions, and custom scripts can force recompiling when the playmode state changes.
You can improve (remove) these loading times by making tweaks to your projects. The specific changes needed to reduce loading times will vary based on your project's configuration.You may also enable the
disableCompilingFromEditorScripts
setting that resolves the problem in most cases. See configuration on how to enable extra settings, and this section on further details about the option.
-
Hot Reload is using a lot of memory/CPU on Windows
To detect which file changed, Hot Reload uses a file watcher. During a normal execution, the file watcher can cause Windows Defender to do a lot of scanning, causing the high memory/CPU. We recommend you exclude your project directory from Windows Defender - see Windows documentation (opens in a new tab).
In our studio, this has also helped improve overall Unity Editor performance (startup, regular compiles, importing), so we recommend it for anyone using the Unity Editor, even if you aren't using Hot Reload.
Note that whitelisting from Windows Defender is not a requirement, and the impact is usually only visible on very large projects. Hot Reload works reliably, even with strict antivirus software enabled.
-
Hot Reloading Unity jobs results in warnings
In Unity 2022 and up, there is a warning every time a Unity job is Hot Reloaded. Example warning (opens in a new tab).
Unfortunately, this error is unaviodable and will always be logged whenever a job is Hot Reloaded. For more information, refer to this post (opens in a new tab) from a Unity employee explaining why this warning is logged.
-
Clicking buttons in Hot Reload window results in warning 'Should not be capturing when there is a hotcontrol'.
Unfortunately, this is a known Unity bug and is not an issue with Hot Reload. As a result, we cannot fix resolve this on our end. For more information, refer to the following Unity answer (opens in a new tab).
-
I removed Hot Reload and can't get my changes to 'Auto Refresh' anymore.
To allow Hot Reload to function correctly on all Unity versions, we update a pref which is deprecated by Unity but is still used in IDE's like Visual Studio and Rider. Specifically, what we are doing is running the following code:
EditorPrefs.SetInt("kAutoRefresh", 0);
If you would like to get auto refresh to start working properly, you need to update the 'Auto refresh' setting in Unity so that changes are auto refreshed, in addition to running the following code once in Unity:
EditorPrefs.SetInt("kAutoRefresh", 1);
After doing this, your changes will start to auto refresh normally again.
-
Watchman process ran into an error
This error is likely to appear if your project path contains non-ASCII characters.
To silense this warning you can do the following:
- stop Hot Reload
- kill "watchman" process in task manager
- create
hot-reload-config.json
file at the root of your project - add the following data inside:
{ "useSystemFilewatcher": true }
- save the file and restart Hot Reload
-
I modify native language text in my code, but it comes out garbled
To resolve this problem, change the encoding of the code editor to UTF-8.