vovgou / loxodon-framework

An MVVM & Databinding framework that can use C# and Lua to develop games
MIT License
1.86k stars 363 forks source link

可以考虑用 CommunityToolkit.Mvvm #45

Open Sarofc opened 6 days ago

Sarofc commented 6 days ago

这个库用了SourceGenerators,写ViewModel简化了很多,可以平替掉 Command、Observable、Messenger

https://learn.microsoft.com/zh-cn/dotnet/communitytoolkit/mvvm/

vovgou commented 5 days ago

看起来好像还真可以平替,不过对老项目有兼容性问题。我这里面有代码生成工具。你去看我里面的Fody相关的插件,都是代码自动生成,不需要写的。

它这里面集成的代码生成工具是跟VS编辑器结合的吧?要跟Unity集成应该还需要做很多工作。Fody也是跟VS绑定的,我把Fody跟Unity集成几乎完全重写了这部分代码。

vovgou commented 5 days ago

以后等Unity 支持.Net Core 了,框架升级到3.0版本,可以考虑使用这个库。不过要把代码生成这套集成到Unity编译器,估计是一个不小的工作。

Sarofc commented 5 days ago

看起来好像还真可以平替,不过对老项目有兼容性问题。我这里面有代码生成工具。你去看我里面的Fody相关的插件,都是代码自动生成,不需要写的。

它这里面集成的代码生成工具是跟VS编辑器结合的吧?要跟Unity集成应该还需要做很多工作。Fody也是跟VS绑定的,我把Fody跟Unity集成几乎完全重写了这部分代码。

unity2022,直接用NugetForUnity安装CommunityToolkit.Mvvm包就可以直接用了,il2cpp打包也没问题。unity2021我没测试过

vovgou commented 5 days ago

看起来好像还真可以平替,不过对老项目有兼容性问题。我这里面有代码生成工具。你去看我里面的Fody相关的插件,都是代码自动生成,不需要写的。 它这里面集成的代码生成工具是跟VS编辑器结合的吧?要跟Unity集成应该还需要做很多工作。Fody也是跟VS绑定的,我把Fody跟Unity集成几乎完全重写了这部分代码。

unity2022,直接用NugetForUnity安装CommunityToolkit.Mvvm包就可以直接用了,il2cpp打包也没问题。unity2021我没测试过

CommunityToolkit.Mvvm 本身肯定可以用,它支持.netstandard2.1,我说的是代码生成器,它是跟MSBuild集成的,要监听MSBuild的编译事件才能织入代码。这跟Unity2022应该不兼容吧!

vovgou commented 5 days ago

我搞个Untiy2022试试

vovgou commented 5 days ago

Unity2022 还真可以织入,不错!

vovgou commented 5 days ago

看起来好像还真可以平替,不过对老项目有兼容性问题。我这里面有代码生成工具。你去看我里面的Fody相关的插件,都是代码自动生成,不需要写的。 它这里面集成的代码生成工具是跟VS编辑器结合的吧?要跟Unity集成应该还需要做很多工作。Fody也是跟VS绑定的,我把Fody跟Unity集成几乎完全重写了这部分代码。

unity2022,直接用NugetForUnity安装CommunityToolkit.Mvvm包就可以直接用了,il2cpp打包也没问题。unity2021我没测试过

谢谢你给我分享这个库,挺不错的。Unity也支持MSBuild了,真是太爽了。回头出3.0,直接用这个库。有了MSBuild、Roslyn这些的支持,回头可以做更多的代码生成和性能优化了。