fe770daf77
创建 tools/input-setup/ 目录,包含: - setup_input_assets.py: UE5编辑器Python脚本,自动创建IA_Interact/IA_Cancel/IA_SwitchInteract并更新IMC_Default - setup_input.bat: 命令行启动脚本 Task: P-011
141 lines
3.5 KiB
Batchfile
141 lines
3.5 KiB
Batchfile
@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
|