usingSystem.Collections;usingSystem.Collections.Generic;usingSystem.Threading.Tasks;usingUnityEngine;usingGrpc.Core;usingGoogle.Protobuf;usingGoogle.Protobuf.Collections;usingGoogle.Protobuf.WellKnownTypes;usingTMPro;usingEngineGrpc;usingUnitySim;usingSystem.Threading;usingSystem.Threading.Tasks;publicclassEngineGRPCServer:MonoBehaviour{publicUnity_NRPCore_Interfaceunity_nrpcore_interface_instance=newUnity_NRPCore_Interface();voidStart(){varserver=newServer(){Services={EngineGrpc.EngineGrpcService.BindService(unity_nrpcore_interface_instance)},Ports={newServerPort("localhost",50052,ServerCredentials.Insecure)}};server.Start();}voidFixedUpdate(){gameObject.transform.position=newVector3(unity_nrpcore_interface_instance.posx,unity_nrpcore_interface_instance.posy,unity_nrpcore_interface_instance.posz);}}publicclassUnity_NRPCore_Interface:EngineGrpc.EngineGrpcService.EngineGrpcServiceBase{publicfloatposx,posy,posz;publicoverrideTask<EngineGrpc.InitializeReply>initialize(EngineGrpc.InitializeRequestrequest,ServerCallContextcontext){varresponse=newEngineGrpc.InitializeReply{Json="Initialize Reply Message"};request.Json="Initialize Request Message";returnTask.FromResult(response);}publicoverrideTask<EngineGrpc.RunLoopStepReply>runLoopStep(EngineGrpc.RunLoopStepRequestrequest,ServerCallContextcontext){varresponse=newEngineGrpc.RunLoopStepReply{EngineTime=0};returnTask.FromResult(response);}publicoverrideTask<EngineGrpc.ShutdownReply>shutdown(EngineGrpc.ShutdownRequestrequest,ServerCallContextcontext){varresponse=newEngineGrpc.ShutdownReply{Json="shut down reply"};request.Json="shut down request";returnTask.FromResult(response);}publicoverrideTask<EngineGrpc.SetDataPacksReply>setDataPacks(EngineGrpc.SetDataPacksRequestrequest,ServerCallContextcontext){UnitySim.Positionposition_vector=newUnitySim.Position();request.DataPacks[0].Data.TryUnpack<UnitySim.Position>(outposition_vector);posx=position_vector.X;posy=position_vector.Y;posz=position_vector.Z;varresponse=newEngineGrpc.SetDataPacksReply{};returnTask.FromResult(response);}publicoverrideTask<EngineGrpc.GetDataPacksReply>getDataPacks(EngineGrpc.GetDataPacksRequestrequest,ServerCallContextcontext){//Debug.Log("getDataPacks is started");DataPackMessagefeedback_position=newDataPackMessage();DataPackIdentifierfeedback_position_id=newDataPackIdentifier();feedback_position_id.DataPackName="cube";feedback_position_id.DataPackType="position";feedback_position_id.EngineName="unity";UnitySim.Positionpos_data=newUnitySim.Position();pos_data.X=posx;pos_data.Y=posy;pos_data.Z=posz;feedback_position.DataPackId=feedback_position_id;feedback_position.Data=Any.Pack(pos_data);varresponse=newEngineGrpc.GetDataPacksReply{};response.DataPacks.Add(feedback_position);returnTask.FromResult(response);}publicoverrideTask<EngineGrpc.ResetReply>reset(EngineGrpc.ResetRequestrequest,ServerCallContextcontext){varresponse=newEngineGrpc.ResetReply{};returnTask.FromResult(response);}}
Comments (0)
HTTPSSSH
You can clone a snippet to your computer for local editing.
Learn more.