Skip to content

插件的编辑器功能不完善 #5

@sharebophar

Description

@sharebophar

当两个命名空间中的相同名称的类在生成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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions