@echo off setlocal enabledelayedexpansion REM === ChildHood Input Setup - 创建 v0.1 InputAction 资产 + 更新 IMC === REM REM 用法: REM setup_input.bat (默认模式,完成后退出编辑器) REM setup_input.bat --no-quit (完成后保持编辑器打开) set "SCRIPT_DIR=%~dp0" set "PROJECT_DIR=%SCRIPT_DIR%..\.." for %%i in ("%PROJECT_DIR%\.") do set "PROJECT_ROOT=%%~fi" set "UPROJECT=%PROJECT_ROOT%\ChildHood.uproject" REM ---- Defaults ---- set "NO_QUIT=0" REM ---- Parse Arguments ---- :parse_args if "%~1"=="" goto done_args if /i "%~1"=="--no-quit" ( set "NO_QUIT=1" shift goto parse_args ) if /i "%~1"=="--dry-run" ( set "DRY_RUN=1" shift goto parse_args ) if /i "%~1"=="--help" goto show_help if /i "%~1"=="-h" goto show_help echo [WARN] Unknown argument: %~1 shift goto parse_args :done_args REM ---- Find UE5 Editor ---- set "UE_EDITOR=" if defined UE5_ROOT ( for %%b in (UnrealEditor.exe UE5Editor.exe) do ( if exist "%UE5_ROOT%\Engine\Binaries\Win64\%%b" ( set "UE_EDITOR=%UE5_ROOT%\Engine\Binaries\Win64\%%b" ) ) ) if "%UE_EDITOR%"=="" ( for %%p in ( "C:\Program Files\Epic Games\UE_5.7" "C:\Program Files (x86)\Epic Games\UE_5.7" "D:\Program Files\Epic Games\UE_5.7" "E:\Program Files\Epic Games\UE_5.7" ) do ( if not defined UE_EDITOR ( for %%b in (UnrealEditor.exe UE5Editor.exe) do ( if exist "%%~p\Engine\Binaries\Win64\%%b" ( set "UE_EDITOR=%%~p\Engine\Binaries\Win64\%%b" ) ) ) ) ) if "%UE_EDITOR%"=="" ( echo. echo [ERROR] UE5 Editor not found! echo Set UE5_ROOT to your UE5 install directory, e.g.: echo set UE5_ROOT=C:\Program Files\Epic Games\UE_5.7 echo. exit /b 1 ) REM ---- Path conversion ---- set "SCRIPT_PATH=%SCRIPT_DIR%setup_input_assets.py" set "SCRIPT_PATH=!SCRIPT_PATH:\=/!" set "UPROJECT_FWD=!UPROJECT:\=/!" REM ---- Build command line ---- set "CMD_ARGS=-unattended -NoSound -NullRHI -ExecutePythonScript=!SCRIPT_PATH!" REM ---- Pass config via env vars ---- set "INPUT_PROJECT_ROOT=!PROJECT_ROOT!" if "!NO_QUIT!"=="1" set "INPUT_NO_QUIT=1" REM ---- Print info ---- echo. echo ============================================ echo ChildHood Input Setup - v0.1 echo ============================================ echo UE5: !UE_EDITOR! echo Project: !UPROJECT_FWD! echo Script: !SCRIPT_PATH! echo ============================================ echo. REM ---- Dry Run ---- if "%DRY_RUN%"=="1" ( echo [DRY RUN] Command: echo. echo "!UE_EDITOR!" "!UPROJECT_FWD!" !CMD_ARGS! echo. exit /b 0 ) REM ---- Execute ---- echo [InputSetup] Launching UE5 Editor (command line mode)... echo. "!UE_EDITOR!" "!UPROJECT_FWD!" !CMD_ARGS! set "EXIT_CODE=!ERRORLEVEL!" echo. if "!EXIT_CODE!"=="0" ( echo [InputSetup] 完成!编辑器已退出。 ) else ( echo [InputSetup] 编辑器退出码: !EXIT_CODE! ) exit /b !EXIT_CODE! :show_help echo. echo ChildHood Input Setup - v0.1 echo. echo Usage: setup_input.bat [options] echo. echo Options: echo --no-quit 保持编辑器打开 echo --dry-run 仅打印命令不执行 echo --help, -h 显示帮助 echo. echo 创建的资产: echo IA_Interact (E 键) echo IA_Cancel (ESC 键) echo IA_SwitchInteract (Tab 键) echo. echo 修改的资产: echo IMC_Default (添加上述映射) echo. exit /b 0