Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Why are you dropping support for older Unity? #256

Closed
BaalEvan opened this issue Mar 18, 2024 · 2 comments
Closed

Why are you dropping support for older Unity? #256

BaalEvan opened this issue Mar 18, 2024 · 2 comments

Comments

@BaalEvan
Copy link

BaalEvan commented Mar 18, 2024

Hi!

Any reason why you are changing the working distribution workflow to Nuget and dropping support for older Unity?
Thanks to tags, most users can definitely stay on 1.10 if needed, but I'm curious why you decided to change that.

@hadashiA
Copy link
Contributor

hadashiA commented Mar 21, 2024

Thanks for the question. I will try to explain.

Reasons for moving to NuGet

  • MemoryPack was written using C# 11 and later features, but a downgraded version was needed to distribute the source code to Unity. This seemed to complicate maintenance a bit.
    • In the previous version, the source code was committed twice, once for Unity and once for dotnet. These synchronization errors have also occurred.
  • Previous versions had API differences between MemoryPack built for Unity and MemoryPack from NuGet.
  • MemoryPack depends on System.Runtime.CompilerServices.dll. For users, it was inconvenient to import this and resolve conflicts.
  • In recent years, the NuGet libraries have been made AOT-safe by Source Generator. The possibility of using NuGet libraries from Unity is expanding.

Reasons for the increased Unity support version

  • MemoryPack includes a SourceGenerator. For this to work with older Unity, the source generator for the Roslyn3 series and the code to be generated must work with C# 9. If this can be stopped, it will be easier to operate.
  • NuGetForUnity did not have the ability to distribute multiple versions of SourceGenerator.
  • MemoryPack is also a progressive library with its own binary usage. We are also hopeful that most users will take advantage of the new Unity, as most probably are not conservative.

These are my views included.
However, Cysharp is taking a similar direction for dotnet and Unity combined libraries such as R3 , ZLogger, etc.

@Shaun-Fong
Copy link

After a day of trying to integrate latest version with my project, I decided to use version 1.10 😔that's a shame

@neuecc neuecc closed this as completed Jul 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants