見出し画像

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 を触っていなかったわけではなく、むしろ色々ごにょごにょしてました。
またぼちぼち記事にしていこうかと思います。


この記事が気に入ったらサポートをしてみませんか?