Unityで同じプロジェクトで複数起動したい場合が稀によくある。
ネットワークゲームとか、ネットワークゲームとか、ネッ…(おっと誰か来たようだ)
内容は今更ですが、現状と問題点について。
現状
特定のフォルダを無理やりシンボリックリンクすることで、
同じプロジェクトを共有して起動することが可能。
というか今もまだコレ。他にいい方法があったら教えてほしい。
参考:
http://tsubakit1.hateblo.jp/entry/2015/08/10/012452#fn-2f2cce2f
問題点
-
重い
片方のAssetsは弄らないので、GUI部やアセットの操作関連の処理は不要。
理想はゲームのランタイムview部分だけ表示したい。(UE4はある) -
両方でコンパイルが走るとクラッシュ
例えばVisualStudioでコードを編集した後、両方のEditorにフォーカスした場合
両方でコンパイルが競合して運が悪いとクラッシュしてしまう。
おまけ(シンボリックリンク生成バッチ)
毎回手動でシンボリックリンクを貼るのは手間なので、
シンボリックリンク生成バッチを作ってみた。
openfiles > nul
if errorlevel 1 (
PowerShell.exe -Command Start-Process \"%~f0\" -Verb runas
exit
)
SET ROOT_PATH=%~dp0
SET BASE_PROJ=%ROOT_PATH%project
SET LINK_PROJ=%ROOT_PATH%project_symlink
if not exist %LINK_PROJ% (
mkdir %LINK_PROJ%
)
cd %DEST_PROJ%
mklink /d %LINK_PROJ%\Assets %BASE_PROJ%\Assets
mklink /d %LINK_PROJ%\ProjectSettings %BASE_PROJ%\ProjectSettings
mklink /d %LINK_PROJ%\Library %BASE_PROJ%\Library
mklink /d %LINK_PROJ%\Packages %BASE_PROJ%\Packages