-
Notifications
You must be signed in to change notification settings - Fork 6
Open
Description
当两个命名空间中的相同名称的类在生成c#脚本时,生成代码会冲突,会将A命名空间下的类生成到B命名空间下
而且会造成项目开启时非常卡顿,往往要14~20分钟才能开启
而且如果不使用packageManager安装,而是放入工程中,运行会报错
使用packageManager安装,也会偶尔无法转换需要再次ReImport,比较麻烦
所以摘出他的转换工具,通过bat来批量转换;移除Editor功能
选用Dependencies和Runtime文件夹来执行转换后的代码。
GenClientProto.bat
@echo off
chcp 936 > nul
cls
setlocal enabledelayedexpansion
:: 定义固定处理目录(修改为你的实际目录)
set "PROTO_DIR=D:\YOUR_PROJECT_NAME\Assets\Config\Proto"
:: 检查目录是否存在
if not exist "%PROTO_DIR%" (
echo 错误: Unity目录不存在 "%PROTO_DIR%"
goto :eof
)
echo 正在处理Unity目录: "%PROTO_DIR%"
echo.
:: 遍历固定目录及其子目录中的所有 .proto 文件
for /r "%PROTO_DIR%" %%f in (*.proto) do (
echo 正在处理: "%%f"
:: 获取当前 .proto 文件所在的完整目录路径
set "protoDir=%%~dpf"
:: 移除路径末尾的反斜杠(如果有)
if "!protoDir:~-1!"=="\" set "protoDir=!protoDir:~0,-1!"
:: 使用完整路径作为 --proto_path 和输出目录
protoc --csharp_out="!protoDir!" --proto_path="!protoDir!" "%%f"
if errorlevel 1 (
echo 错误: 生成失败 "%%f"
) else (
echo 成功: 生成 "%%~nf.cs"
)
echo.
)
echo 所有 Protobuf 文件处理完成!
pause
Metadata
Metadata
Assignees
Labels
No labels