だから私は解決しようとしているこのジレンマを持っています。私は、Unity ゲーム エンジンを使用して常に 6 ~ 7 件のクライアント プロジェクトに取り組んでいるインディー ゲーム開発者です。私が経験している問題は、共有コードをプロジェクト間で同期させておくことです。現在の解決策は非常に「手動」で時間がかかります (すべてを更新するのを忘れるとエラーが発生しやすくなります)。解決策として SVN externals を調べ始めましたが、問題が 1 つあります。Unity ゲーム エンジンは *.meta ファイルを使用して、問題のファイルが各ゲーム内でどのように使用されているかを示すデータを保持します。
簡単な例として、サンプルのフォルダー構造を次に示します。
プロジェクト 1:
- 根
- ROOT/アセット
- ROOT/Assets/SharedCode
- ROOT/Assets/SharedCode/SharedScript.cs
- ROOT/Assets/SharedCode/SharedScript.meta
プロジェクト 2:
- 根
- ROOT/アセット
- ROOT/Assets/SharedCode
- ROOT/Assets/SharedCode/SharedScript.cs
- ROOT/Assets/SharedCode/SharedScript.meta
明白な/即時の解決策は、「SharedCode」フォルダーをSVN外部にすることです。発生する問題は、SharedScript.cs ファイルが両方のプロジェクトで同一である必要があることですが、SharedScript.meta ファイルはプロジェクト固有であり、ゲーム エンジンによって自動生成されます (したがって、すべてのメタ ファイルを「SharedCode」フォルダーの外部にある単一のフォルダー)。
これらのファイルは何百もあるので、各「共有」ファイルをそれ自体の外部のSVNとして扱うことを含まないソリューションが欲しいです。
私の現在の醜い解決策は、プロジェクト ツリー全体を SVN に保持することです。.meta ファイルを無視する GIT リポジトリであるサブフォルダーがあります。それはかなり醜いですが、私は頻繁にメインプロジェクトをコミット/更新し、git「ライブラリ」プロジェクトをコミット/プッシュ/プルするのを忘れています。
どんな提案でも大歓迎です!