UnityでSourceGeneratorを使う
#Unity
参考
https://light11.hatenadiary.com/entry/2025/06/16/195338
概要
Unityとは独立したslnを作り、ビルドしてたdll生成する
dllをUnityプロジェクトに配置して設定するとコンパイル時にコードを生成する
コンパイル時に生成されるのでGit管理されない
正解がよくわかってないが以下のような構成にした
code:a
Foo/
|-Foo.SourceGenerator/
| |- Foo.SourceGenerator.sln
| |- Foo.SourceGenerator/
| |- Foo.SourceGenerator.csproj
| |- MySourceGenerator.cs
|-Foo.Unity/
|- Assets/Foo/
|- Scripts/
|- Plugins/
| |- Foo.SourceGenerator.dll
|- Foo.asmdef
以下のようなMakefileを作っておくと便利
code:Makefile
DLL_NAME = Foo.SourceGenerator.dll
BUILD_DLL_PATH = Foo.SourceGenerator/bin/Release/netstandard2.0/$(DLL_NAME)
UNITY_DLL_PATH = ../Foo.Unity/Assets/Foo/Scripts/Plugins/$(DLL_NAME)
build:
@dotnet build -c Release
release: build
@cp BUILD_DLL_PATH UNITY_DLL_PATH