handzlikchris / handzlikchris/FastScriptReload
Static fields in changed code are lost upon reload
- Lingua principale
- C#
- Stelle
- 2.2k
- Fork
- 167
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
I am not sure whether this is expected behaviour or not, but I could not find any reference in the documentation to static fields not being supported.
I am trying to reload a static class that has a static `Material` field that is assigned on startup via reflection.
The static class content looks like this:
```C#
private static Material material;
public static void DrawReticleCircle(in ReticleDrawArgs args)
{
var position = args.WorldPosition;
// ...
Graphics.DrawMesh(mesh, trs, material, 0);
}
static void OnScriptHotReloadNoInstance()
{
Debug.Log($"Post-reload, asset is {material} (null={material==null})");
}
```
After changing the contents of DrawReticleCircle, the script is reloaded but the value of `material` is lost.
The debug log reads: `Post-reload, asset is (null=True)`
I would expect for the value to be copied over, or for the new code to reference the field in the old assembly (if this is possible?).
Is this a known limitation or a bug? If it is a limitation, I think it is worth pointing out in the documentation.
Thanks.
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Valutazione
Questa issue non è ancora stata valutata.