handzlikchris / handzlikchris/FastScriptReload

Add support to reload modules with Unity's IsExternalInit workaround to C# records

Abierto
#111 3 comentarios 1 reacción 0 asignados Ver en GitHub
Lenguaje dominante
C#
Estrellas
2.2k
Forks
167
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

Unity has limited support to C# records and init only setters, but Unity documentation suggests to manually declare IsExternalInit class:
https://docs.unity3d.com/2021.2/Documentation/Manual/CSharpCompiler.html

We use this approach in project and it works, but FastScriptReload fails to reload such modules, outputs such errors:

046412b42d9540adb22c28aa3d99dce9.SourceCodeCombined.cs(26,25): error CS0518: Predefined type 'System.Runtime.CompilerServices.IsExternalInit' is not defined or imported

Looks like it is possible to use same approach (adding IsExternalInit class) with temporary files compilation.
Is there a possibility to reload such code?

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Comienza con la ruta de compilación de archivos temporales y compárala con la solución alternativa documentada de Unity para IsExternalInit. Reproduce el error CS0518 para un módulo que use records o init-only setters y, a continuación, confirma que la recarga se realiza correctamente sin el error.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
csharp, unity
Área
game-dev, tooling
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
28/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.