Unity的gRPC使用之实现客户端

应用背景:本想Unity调用C++的dll库获取一些数据资源,但是由于自己调用的C++库模块化处理的不太理想,众多dll之间相互依赖,使得在调用dll的时候,会忽略一些dll的缺失,使Unity项目报错,故想到了使用gRPC来获取远程服务的数据。前提是自己已经写了一个调用C++的dll库的proto脚本。
由于我的Unity项目只是请求数据,即只实现了客户端。记录下来方便后续的的使用。

1. 安装protoBuf

下载地址:https://github.com/protocolbuffers/protobuf/releases

我这里是Window64位的系统,下载相应版本,下载的内容解压如下图所示。

把里面的bin文件配置到计算机的环境变量Path中,如下图所示。

检验protobuf是否配置成功,Win+R输入cmd,输入protoc --version,如下图所示。

有版本信息,即为成功。
2. 下载gRPC并生成cs文件

下载地址:https://packages.grpc.io/archive/2022/02/cc3de1c3eba4c342c406729649f3c39f829dcdbc-24ad316a-7a17-4194-ac29-a95eceae67c6/index.xml

选择相应的版本,解压到一个文件夹中,内容如下。

例如自己的转换文件为Test.proto。在上述的文件夹下输入下列指令。Unity项目是用C#语言开发的。

csharp 复制代码
.\protoc.exe --csharp_out=. --grpc_out=. --plugin=protoc-gen-grpc=.\grpc_csharp_plugin.exe .\Test.proto

回车之后,即在该文件夹下生成Test.cs脚本,并导入到Unity项目中。
3. 下载gRPC的Unity依赖包,并导入Unity

下载地址:同上。

解压之后内容导入到Unity项目的Plgins中,内容如下。

4. Unity使用

csharp 复制代码
void Start()
        {
            //建立gRPC通道
            Channel channel = new Channel("192.168.1.100:9007", ChannelCredentials.Insecure);
            var client = new Test(channel);
            var response = client.GetData(1);
            //respons就是返回的数据
        }

结束!

相关推荐
lrh30252 小时前
Custom SRP - 16 Render Scale
3d·unity·srp·render pipeline·render scale
feiduoge5 小时前
教程 43 - 渲染目标和可配置渲染通道
windows·游戏引擎·图形渲染
ellis19709 小时前
Unity出安卓包知识点汇总
android·unity
DoomGT9 小时前
Audio - UE5中的音效播放重启问题
游戏·ue5·游戏引擎·虚幻·虚幻引擎
一线灵11 小时前
Axmol 开发环境快速搭建指南 (新)
游戏引擎
一线灵13 小时前
跨平台游戏引擎 Axmol-2.11.0 发布
游戏引擎
Robot侠13 小时前
ROS1从入门到精通 2:ROS1核心概念详解(节点、话题、服务一网打尽)
unity·游戏引擎·ros·机器人操作系统
世洋Blog1 天前
装饰器模式实践:告别臃肿的继承链,优雅解耦初始化状态管理
unity·设计模式·c#·装饰器模式
feiduoge1 天前
教程 41 - 增强纹理映射(采样器)
windows·游戏引擎·图形渲染
feiduoge1 天前
教程 37 - 法线贴图
windows·游戏引擎·图形渲染