unity编译器正常情况下没法完成多开,解决方案是使用一个ParrelSync,或者使用以下bat脚本也可以达到相似的目录,原理实质上创建两个项目,让其中一个项目的 Packages,Asserts,ProjectSettings的引用指向原来的项目,两个项目实质上指向同样的资源,即可达到同步,多开的目的。创建一个名字叫 copy_unity_project.bat 的文件,并将以下内容添加到文本中,复制到存放unity项目的根目录,双击运行即可,判断是否是unity项目的方式是判断是否同时存在上面三个需要目录链接的目录,以下代码C老师生成
@echo off
setlocal enabledelayedexpansion
:: 切换到批处理文件所在的目录
cd /d "%~dp0"
:: 检查是否以管理员身份运行
openfiles >nul 2>&1
if %errorlevel% neq 0 (
echo Please run this script as administrator.
pause
exit /b
)
:: 列出当前目录下的所有Unity项目
echo Listing Unity projects in current directory:
set count=0
for /d %%i in (*) do (
if exist "%%i\Packages" if exist "%%i\Assets" if exist "%%i\ProjectSettings" (
set /a count+=1
echo !count!. %%i
set "project_!count!=%%i"
)
)
:: 如果没有找到Unity项目
if %count%==0 (
echo No Unity projects found in the current directory.
pause
exit /b
)
:: 选择项目
set /p project_number=Select the project number you want to clone:
if not defined project_%project_number% (
echo Invalid selection.
pause
exit /b
)
set "selected_project=!project_%project_number%!"
echo Selected project: !selected_project!
:: 检查并创建副本目录
set copy_suffix=_cp_
set copy_number=1
:check_folder
set "new_folder=%selected_project%%copy_suffix%!copy_number!"
if exist "!new_folder!" (
set /a copy_number+=1
goto check_folder
)
echo Creating project clone in: !new_folder!
mkdir "!new_folder!"
:: 创建符号链接
mklink /J "!new_folder!\Packages" "%cd%\!selected_project!\Packages"
mklink /J "!new_folder!\Assets" "%cd%\!selected_project!\Assets"
mklink /J "!new_folder!\ProjectSettings" "%cd%\!selected_project!\ProjectSettings"
:: 提示符号链接创建成功
echo Base project clone created successfully in: !new_folder!
echo.
:: 询问是否要添加更多目录链接
set /p add_more=Do you want to add more directory links to the clone? (y/n):
if /I "%add_more%"=="y" (
call :add_links
)
goto finished
:add_links
set /p additional_dir=Enter the name of the additional directory to link (or type 'done' to finish):
if /I "%additional_dir%"=="done" (
goto finished
)
:: 检查目标目录是否存在
if not exist "%cd%\!selected_project!\!additional_dir!" (
echo Directory does not exist: !additional_dir!
goto add_links
)
:: 创建符号链接
mklink /J "!new_folder!\!additional_dir!" "%cd%\!selected_project!\!additional_dir!"
if %errorlevel% neq 0 (
echo Failed to create junction, access denied. Please ensure you have proper permissions.
goto add_links
)
echo Linked: !new_folder!\!additional_dir! -> !selected_project!\!additional_dir!
goto add_links
:finished
echo Clone creation complete.
pause