Unity Visual Scripting 使用時の.gitignore
Unity Visual Scripting を使用した Unity プロジェクトを Git でリビジョン管理する際の .gitignore について。
Visual Scripting 用 .gitignore
以下のUnity 公式サイトにテンプレートがありますが、このままだと意図した動作になっていないようなのです。
https://docs.unity3d.com/Packages/com.unity.visualscripting@1.7/manual/vs-version-control.html
冒頭で4行で Visual Scripting 関連の .meta ファイルを除外指定しているのですが、
Assets/Unity.VisualScripting.Generated/VisualScripting.Flow/UnitOptions.db
Assets/Unity.VisualScripting.Generated/VisualScripting.Flow/UnitOptions.db.meta
Assets/Unity.VisualScripting.Generated/VisualScripting.Core/Property Providers
Assets/Unity.VisualScripting.Generated/VisualScripting.Core/Property Providers.meta
後ろの以下の行で全 .meta を除外しない指定としている為、先の4行中の .meta ファイルも除外されなくなっています。
!/[Aa]ssets/**/*.meta
そこで、上記1行を先の4行より前に記述すると意図する動作になります。
以下、Visual Scripting 使用時に私的に使用している .ignore です。
# This .gitignore file should be placed at the root of your Unity project directory
#
# Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore
#
# Visual Scripting 1.7.7:
# https://docs.unity3d.com/Packages/com.unity.visualscripting@1.7/manual/vs-version-control.html
#
# Optionally exclude these transient (generated) files,
# because they can be easily re-generated by the package
# Asset meta data should only be ignored when the corresponding asset is also ignored
# Note: Wrote top line better, cause a few ignore .meta below(so, for Visual Scripting).
!/**/[Aa]ssets/**/*.meta
/**/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Flow/UnitOptions.db.meta
/**/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Flow/UnitOptions.db
/**/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Core/Property Providers.meta
/**/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Core/Property Providers
## Unity
# From: https://github.com/github/gitignore/blob/master/Unity.gitignore
/**/[Ll]ibrary/
/**/[Tt]emp/
/**/[Oo]bj/
/**/[Bb]uild/
/**/[Bb]uilds/
/**/[Ll]ogs/
/**/[Mm]emoryCaptures/
/**/[Uu]ser[Ss]ettings/
# MemoryCaptures can get excessive in size.
# They also could contain extremely sensitive data
/**/[Mm]emoryCaptures/
# Uncomment this line if you wish to ignore the asset store tools plugin
# /[Aa]ssets/AssetStoreTools*
# Autogenerated Jetbrains Rider plugin
[Aa]ssets/Plugins/Editor/JetBrains*
# Visual Studio cache directory
.vs/
# Gradle cache directory
.gradle/
# Autogenerated VS/MD/Consulo solution and project files
ExportedObj/
.consulo/
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
*.pdb
*.mdb
*.opendb
*.VC.db
# Unity3D generated meta files
*.pidb.meta
*.pdb.meta
*.mdb.meta
# Unity3D generated file on crash reports
sysinfo.txt
# Builds
*.apk
*.aab
*.unitypackage
# Crashlytics generated file
crashlytics-build.properties
# Packed Addressables
/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*.*.bin*
# Temporary auto-generated Android Assets
/**/[Aa]ssets/[Ss]treamingAssets/aa.meta
/**/[Aa]ssets/[Ss]treamingAssets/aa/*
# Build Winx64
/**/Build_Win64/
Removing previously
# Blender backup files
*.blend?
*.blend??
*.blend???
Git Clone する際のコツ
Visual Scripting を含む Unity プロジェクトを Git Clone 等で チェックアウトする際、たまに(結構?) Visual Scipting のノード(Unit)が壊れる場合があります。
回避するコツは、
■ダミーの空 Scene を作成、開いた状態でコミットしておく。
※こうしておくと比較的安心。最悪ゲームの Scene を開いていても一応なんとかなる。
■Unity プロジェクトを開いたら行う手順
Edit > Project Settings… > 左列で Visual Scripting を選択。
右欄から、Generate をクリック。しばらく時間がかかります。
操作が戻ったら一旦ウィンドウを閉じて4~10秒程度待ちます。
Unity Editor が自動的に何か変換をはじめるので終わるのを待ちます。
再度、Edit > Project Settings… > 左列で Visual Scripting を選択。
右欄から、Regenerate Nodes をクリック。しばらく時間がかかります。
ここまで操作をした後、ゲームのシーンを開き Visual Scripting の Graph を開くと正常に開けます。
※この辺の手順をしっかり行わないとノード内のパラメータ値が全部消えたり、色々壊れる症状が出ることが多い感。
この辺私的に Visual Scripting+Git 運用での開発で色々試行錯誤した結果、安定動作に至った手順です。
※他にも良い方法などあれば是非ご一報下さい!
しばらく更新していませんでしたが、Visual Scripting を触っていなかったわけではなく、むしろ色々ごにょごにょしてました。
またぼちぼち記事にしていこうかと思います。