JetBrains / resharper-unity

Unity support for both ReSharper and Rider
Apache License 2.0
1.21k stars 131 forks source link

Rider's asset refresh on code change does not trigger Unity's Multiplayer Play Mode's recompilation #2441

Closed Yoraiz0r closed 2 months ago

Yoraiz0r commented 2 months ago

As the name suggests, when changing code using Jetbrains Rider, with Multiplayer Play Mode's package's virtual players open, and domain reload disabled, the extra players don't refresh their code.

Changing code with a plain text editor, such that Unity is in control of the asset refresh process, properly recompiles the extra editors with domain reload disabled.

To reproduce:

  1. Create a new Unity project (exact versions specified below)
  2. Make sure the Jetbrains Rider Editor package is installed
  3. Install the Multiplayer Play Mode package
  4. In Project Settings/Editor/Enter Play Mode Settings enable Enter Play Mode Options and disable Reload Domain.
  5. Create a MonoBehaviour with Start() { Debug.Log("A"); }, and add it to an open scene
  6. Open the Windows/Multiplayer Play Mode window and enable a second player instance
  7. Enter play mode and Witness both players log "A".
  8. Exit play mode
  9. Using Rider, edit "A" to "B", and witness only the primary unity editor reloads domain.
  10. Enter play mode, and Witness the primary player logging "B" while the second player logs "A".

Unity Version: 6000.0.0b13 Multiplayer Playmode Package Version: 1.0 Jetbrains Rider Editor Package Version: 3.0.28

van800 commented 2 months ago

Thank you for reporting! I have moved it to https://youtrack.jetbrains.com/issue/RIDER-111671/Riders-asset-refresh-on-code-change-does-not-trigger-Unitys-Multiplayer-Play-Modes-recompilation in order to keep it in the loop.

Please vote the issue there to get updates on status change/ comments/ etc.