_xiaofang/xiaofang/Assets/ProtoBuf/test.cs

857 lines
30 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Newtonsoft.Json;
using System.Net.Sockets;
using UnityWebSocket;
using System.Text;
using Google.Protobuf;
using System.Net.WebSockets;
using System;
using System.Threading.Tasks;
public class test : MonoBehaviour
{
public string token;
public WEBScriptListener wEBScriptListener;
public class auth_login
{
public string clientId = "e5cd7e4891bf95d1d19206ce24a7b32e";
public string grantType = "password";
public string userType = "company_user";
public string username = "13006065371";
public string password = "YYL5371!";
}
//public async void loging()
//{
// auth_login auth_Login = new auth_login();
// string response = await web.SendRequest(web.URL + "/auth/login", "POST", JsonUtility.ToJson(auth_Login));
// // 解析服务器返回的数据
// server serverData = JsonConvert.DeserializeObject<server>(response);
// token = serverData.data.access_token;
// //Debug.Log(setverData.msg);
//}
//登录
void lodingWebSocket()
{
LoginRequest data = new LoginRequest();
data.UserId = "1845037177556934657";
data.Account = "17311259169";
WSMessage msg = new WSMessage();
msg.Module = "hall";
msg.ServiceName = "Login";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
LoginRequest login = ProtoBufffer.DeSerialize<LoginRequest>(deinfo.Data.ToByteArray());
Debug.Log("登录");
wEBScriptListener.SendMessageByte(sendData);
}
//加入房间
public void JoinRoom()
{
JoinRoomRequest data = new JoinRoomRequest();
data.RoomId = "168888";
WSMessage msg = new WSMessage();
msg.Module = "hall";
msg.ServiceName = "JoinRoom";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
JoinRoomRequest login = ProtoBufffer.DeSerialize<JoinRoomRequest>(deinfo.Data.ToByteArray());
Debug.Log("加入房间");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
//void BroadcastMessage()
//{
// WSMessage msg = new WSMessage();
// msg.Module = "hall";
// msg.ServiceName = "BroadcastMessage";
// //msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
// byte[] sendData = ProtoBufffer.Serialize(msg);
// WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
// JoinRoomRequest login = ProtoBufffer.DeSerialize<JoinRoomRequest>(deinfo.Data.ToByteArray());
// Debug.Log("加入房间");
// //BroadcastFrameMsg.FramesFieldNumber
// wEBScriptListener.SendMessageByte(sendData);
//}
//心跳
async void Heartbeat()
{
//WSMessage msg = new WSMessage();
//msg.Data = ByteString.CopyFrom(new byte[] { 1 });
//byte[] sendData = ProtoBufffer.Serialize(msg);
//Debug.Log("");
while (true)
{
WSMessage msg = new WSMessage();
msg.Module = "ping";
//msg.Data = ByteString.CopyFrom(new byte[] { 1 });
byte[] sendData = ProtoBufffer.Serialize(msg);
// 每秒执行的任务
Debug.Log("每秒执行一次");
wEBScriptListener.SendMessageByte(sendData);
// 等待一秒
await Task.Delay(1000);
}
}
//帧存储操作输入
//void UpFps()
//{
// InputData data = new InputData();
// data.RoomId = "168888";
// data.Id = "778899";
// data.SId = "7";
// data.X = 7f;
// data.Y = 5f;
// data.Z = 4f;
// data.RoomSeatId = 5;
// WSMessage msg = new WSMessage();
// msg.Module = "fps";
// msg.ServiceName = "UpFps";
// msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
// byte[] sendData = ProtoBufffer.Serialize(msg);
// WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
// InputData login = ProtoBufffer.DeSerialize<InputData>(deinfo.Data.ToByteArray());
// Debug.Log("帧存储操作输入");
// //BroadcastFrameMsg.FramesFieldNumber
// wEBScriptListener.SendMessageByte(sendData);
//}
//拾取道具
void PickUpProp()
{
PropRequest data = new PropRequest();
data.PropId = 1001;
data.RoomId = "168888";
WSMessage msg = new WSMessage();
msg.Module = "prop";
msg.ServiceName = "PickUpProp";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
PropRequest login = ProtoBufffer.DeSerialize<PropRequest>(deinfo.Data.ToByteArray());
Debug.Log("拾取道具");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
//使用道具
void StartUseProp()
{
PropRequest data = new PropRequest();
data.RoomId = "168888";
data.PropId = 1001;
data.Action = 1;
data.PropServerId = "MTg1OTc5MDMwOTIyODc4OTc2MA==";
WSMessage msg = new WSMessage();
msg.Module = "prop";
msg.ServiceName = "StartUseProp";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
PropRequest login = ProtoBufffer.DeSerialize<PropRequest>(deinfo.Data.ToByteArray());
Debug.Log("使用道具");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
//停止使用道具
void StopUseProp()
{
PropRequest data = new PropRequest();
data.RoomId = "168888";
data.PropId = 1001;
data.PropServerId = "MTg1OTc5MDMwOTIyODc4OTc2MA==";
WSMessage msg = new WSMessage();
msg.Module = "prop";
msg.ServiceName = "StopUseProp";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
PropRequest login = ProtoBufffer.DeSerialize<PropRequest>(deinfo.Data.ToByteArray());
Debug.Log("停止使用道具");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
//创建NPC ========================暂时不需要
//void CreateNpc()
//{
// PropRequest data = new PropRequest();
// data.RoomId = "168888";
// WSMessage msg = new WSMessage();
// msg.Module = "move";
// msg.ServiceName = "CreateNpc";
// msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
// byte[] sendData = ProtoBufffer.Serialize(msg);
// WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
// PropRequest login = ProtoBufffer.DeSerialize<PropRequest>(deinfo.Data.ToByteArray());
// Debug.Log("创建NPC");
// //BroadcastFrameMsg.FramesFieldNumber
// wEBScriptListener.SendMessageByte(sendData);
//}
//推送npc和玩家的信息 ===============只需要收消息
//void Location()
//{
// PropRequest data = new PropRequest();
// data.RoomId = "168888";
// WSMessage msg = new WSMessage();
// msg.Module = "prop";
// msg.ServiceName = "CreateNpc";
// msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
// byte[] sendData = ProtoBufffer.Serialize(msg);
// WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
// PropRequest login = ProtoBufffer.DeSerialize<PropRequest>(deinfo.Data.ToByteArray());
// Debug.Log("推送npc和玩家的信息");
// //BroadcastFrameMsg.FramesFieldNumber
// wEBScriptListener.SendMessageByte(sendData);
//}
//11开始计时
void RoomStartTime()
{
JoinRoomRequest data = new JoinRoomRequest();
data.RoomId = "168888";
WSMessage msg = new WSMessage();
msg.Module = "hall";
msg.ServiceName = "RoomStartTime";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
JoinRoomRequest login = ProtoBufffer.DeSerialize<JoinRoomRequest>(deinfo.Data.ToByteArray());
Debug.Log("推送npc和玩家的信息");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
//推送npc和玩家的信息
void Location(string userId = "2",string roomId = "3")
{
MoveResponse data = new MoveResponse();
data.RoomId = roomId;
data.UserId = userId;
WSMessage msg = new WSMessage();
msg.Module = "move";
msg.ServiceName = "Location";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
MoveResponse login = ProtoBufffer.DeSerialize<MoveResponse>(deinfo.Data.ToByteArray());
Debug.Log("推送npc和玩家的信息");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
void TaskTrigger()
{
TaskTrigger data = new TaskTrigger();
data.RoomId = "168888";
data.TriggerId = "10006";
data.UserId = "1845037177556934659";
data.TypeStr = "selector";
WSMessage msg = new WSMessage();
msg.Module = "task";
msg.ServiceName = "TaskTrigger";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
TaskTrigger login = ProtoBufffer.DeSerialize<TaskTrigger>(deinfo.Data.ToByteArray());
Debug.Log("==========任务触发");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
void TaskUpdateRequest()
{
TaskUpdateRequest data = new TaskUpdateRequest();
data.RoomId = "168888";
data.TaskId = "d9608224-18b4-4d68-af45-82b3c843e3c3";
data.UserId = "1845037177556934659";
data.PropId = "3005";
WSMessage msg = new WSMessage();
msg.Module = "task";
msg.ServiceName = "UpdateTask";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
TaskUpdateRequest login = ProtoBufffer.DeSerialize<TaskUpdateRequest>(deinfo.Data.ToByteArray());
Debug.Log("==========任务触发");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
//NPC路线选择
public void NpcMove(string roomId = "1",int moveType = 2, int selectId = 3)
{
MoveRequest data = new MoveRequest();
data.RoomId = roomId;
data.MoveType = moveType;
data.SelectId = selectId;
WSMessage msg = new WSMessage();
msg.Module = "move";
msg.ServiceName = "MoveNpc";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
MoveRequest login = ProtoBufffer.DeSerialize<MoveRequest>(deinfo.Data.ToByteArray());
Debug.Log("==========选择路线");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
//12消息转发
public void MessageToUser()
{
MessageBroadcastRequest data = new MessageBroadcastRequest();
data.RoomId = "168888";
data.Type = 1;
data.RoleId = "8002";
data.Cmd = "55";
WSMessage msg = new WSMessage();
msg.Module = "hall";
msg.ServiceName = "MessageToUser";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
MessageBroadcastRequest login = ProtoBufffer.DeSerialize<MessageBroadcastRequest>(deinfo.Data.ToByteArray());
Debug.Log("==========消息转发函数调用");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
public void CreateNpcHandler()
{
NpcCreateRequest data = new NpcCreateRequest();
data.RoomId = "168888";
data.SceneId = "9003";
data.TemplateId = 2;
WSMessage msg = new WSMessage();
msg.Module = "move";
msg.ServiceName = "CreateNpcHandler";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
NpcCreateRequest login = ProtoBufffer.DeSerialize<NpcCreateRequest>(deinfo.Data.ToByteArray());
Debug.Log("==========消息转发函数调用");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
//创建语音频道
public void RtcTokenHandler()
{
VoiceRequest data = new VoiceRequest();
data.Uid = 1;
data.RoomId = "8";
data.ChannelName = "2";
data.ChannelType = "5";
data.Role = "6";
WSMessage msg = new WSMessage();
msg.Module = "voice";
msg.ServiceName = "RtcTokenHandler";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
VoiceRequest login = ProtoBufffer.DeSerialize<VoiceRequest>(deinfo.Data.ToByteArray());
Debug.Log("==========消息转发函数调用");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
//NPC是否进入烟雾区域
public void EnterFogArea()
{
npcRequest data = new npcRequest();
data.RoomId = "8";
data.Action = 3;
WSMessage msg = new WSMessage();
msg.Module = "voice";
msg.ServiceName = "RtcTokenHandler";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
VoiceRequest login = ProtoBufffer.DeSerialize<VoiceRequest>(deinfo.Data.ToByteArray());
Debug.Log("==========消息转发函数调用");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
//界面选项操作
public void SelectTrigger()
{
SelectRequest data = new SelectRequest();
data.SelectId = "1";
data.UserId = "2";
data.RoomId = "3";
data.TaskId = "4";
data.RoleId = "5";
WSMessage msg = new WSMessage();
msg.Module = "voice";
msg.ServiceName = "RtcTokenHandler";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
SelectRequest login = ProtoBufffer.DeSerialize<SelectRequest>(deinfo.Data.ToByteArray());
Debug.Log("==========消息转发函数调用");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
//
public void GetSelectHistoryList()
{
SelectHistoryRequest data = new SelectHistoryRequest();
data.SelectId = "1";
data.UserId = "2";
data.RoomId = "3";
WSMessage msg = new WSMessage();
msg.Module = "select";
msg.ServiceName = "GetSelectHistoryList";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
SelectHistoryRequest login = ProtoBufffer.DeSerialize<SelectHistoryRequest>(deinfo.Data.ToByteArray());
Debug.Log("==========消息转发函数调用");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
//
public void GetTaskList(string userID,string roomID)
{
TaskTrigger data = new TaskTrigger();
data.UserId = "2";
data.RoomId = "3";
WSMessage msg = new WSMessage();
msg.Module = "select";
msg.ServiceName = "GetSelectHistoryList";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
TaskTrigger login = ProtoBufffer.DeSerialize<TaskTrigger>(deinfo.Data.ToByteArray());
Debug.Log("==========消息转发函数调用");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
public void TriggerNpcArrive()
{
MoveRoomAoiRequest data = new MoveRoomAoiRequest();
data.RoomId = "1";
data.UserId = 2;
data.X = 3f;
data.Y = 4f;
data.Z = 5f;
data.SceneId = "6";
data.NpcId = "7";
data.Action = 8;
WSMessage msg = new WSMessage();
msg.Module = "select";
msg.ServiceName = "GetSelectHistoryList";
msg.Data = ByteString.CopyFrom(ProtoBufffer.Serialize(data));
byte[] sendData = ProtoBufffer.Serialize(msg);
WSMessage deinfo = ProtoBufffer.DeSerialize<WSMessage>(sendData);
MoveRoomAoiRequest login = ProtoBufffer.DeSerialize<MoveRoomAoiRequest>(deinfo.Data.ToByteArray());
Debug.Log("==========消息转发函数调用");
//BroadcastFrameMsg.FramesFieldNumber
wEBScriptListener.SendMessageByte(sendData);
}
// Start is called before the first frame update
async void Start()
{
//loging();
wEBScriptListener.ConcatWEBSocket();
wEBScriptListener.OnCallback += callback;
if (wEBScriptListener != null)
{
lodingWebSocket();
//JoinRoom();
Heartbeat();
//BroadcastMessage();
//UpFps();
//PickUpProp();
//StartUseProp();
//StopUseProp();
//RoomStartTime();
//Location();
//TaskTrigger();
//TaskUpdateRequest();
}
//int index = 0;
//while (true)
//{
// index++;
// NpcData moveData = new NpcData();
// moveData.X = index;
// moveData.Y = 1;
// moveData.Z = 1;
// MoveResponse data = new MoveResponse();
// data.MoveData.Add(moveData);
// WSResponse ws = new WSResponse();
// ws.MessageType = "move.Location";
// ws.Data = ByteString.CopyFrom(data.ToByteArray());
// callback(ProtoBufffer.Serialize(ws));
// //PlayerJoinResponse pj = new PlayerJoinResponse();
// //pj.UserName = "abc";
// //pj.RoomId = "2";
// //pj.Status = 0;
// //pj.RoleName = "ABC";
// //pj.IsLeadingNPC = 5;
// //pj.Online = true;
// //pj.RoleId = 7;
// //pj.GroupLeader = 0;
// //pj.ActionMode = 2;
// //pj.Group = -1;
// //pj.X = 11;
// //pj.Y = 12;
// //pj.Z = 13;
// //pj.OverseeCond = "14";
// //pj.SendFrameCount = 15;
// //pj.MoveSpeedFirst = 16;
// //pj.MoveSpeedSecond = 17;
// //pj.MoveSpeedThird = 18;
// //pj.BearLoad = 19;
// //pj.Protection = 20;
// //pj.Health = 21;
// //pj.RoleStatus = 22;
// //pj.UserId = 23;
// //JoinRoomResponse data = new JoinRoomResponse();
// //data.Data = pj;
// //WSResponse ws = new WSResponse();
// //ws.MessageType = "hall.JoinRoom";
// //ws.Data = ByteString.CopyFrom(data.ToByteArray());
// //callback(ProtoBufffer.Serialize(ws));
// await Task.Delay(1000);
//}
}
void callback(byte[] data)
{
WSResponse deinfo = ProtoBufffer.DeSerialize<WSResponse>(data);
Debug.Log("返回数据类型:" + deinfo.MessageType);
byte[] bytes = deinfo.Data.ToByteArray();
switch (deinfo.MessageType)
{
//监听
//登录
case "hall.Login":
Debug.Log("-=====--");
LoginResponse user = ProtoBufffer.DeSerialize<LoginResponse>(bytes);
Debug.Log(user);
//这里是测试阶段用的,在登录之后调用加入房间,后续会删掉
break;
//进入房间
case "hall.JoinRoom":
JoinRoomResponse joinRoomResponse = ProtoBufffer.DeSerialize<JoinRoomResponse>(bytes);
byte[] joinByte = joinRoomResponse.Data.ToByteArray();
PlayerJoinResponse playerJoinResponse = ProtoBufffer.DeSerialize<PlayerJoinResponse>(joinByte);
Debug.Log("玩家:" + playerJoinResponse.UserName + "加入房间:" + playerJoinResponse.RoomId.ToString());
break;
//广播
case "hall.BroadcastMessage":
UserJoinResponse userJoinResponse = ProtoBufffer.DeSerialize<UserJoinResponse>(bytes);
//Debug.Log(userJoinResponse.IncidentPosition);
Debug.Log(userJoinResponse);
if (userJoinResponse.MessageType == 1)//用户上线
{
Debug.Log("玩家:" + userJoinResponse.NickName + "上线");
}
if (userJoinResponse.MessageType == 2)//用户下线
{
Debug.Log("玩家:" + userJoinResponse.NickName + "下线");
}
if (userJoinResponse.MessageType == 3)//加入房间
{
Debug.Log("玩家" + userJoinResponse.NickName + "加入房间:" + userJoinResponse.RoomId.ToString() + ",用户角色" + userJoinResponse.RoleName);
}
if (userJoinResponse.MessageType == 4)//事故发生
{
}
if (userJoinResponse.MessageType == 5)//火势
{
}
if (userJoinResponse.MessageType == 6)//任务
{
TaskInfoResponse taskInfoResponse = userJoinResponse.TaskResponse;
if (long.Parse(taskInfoResponse.ToUserId) == userJoinResponse.UserId)//当这个任务是当前玩家的任务时显示任务
{
TaskPanel.instance.Taskad(int.Parse(taskInfoResponse.TaskId));
}
}
break;
//
case "fps.UpFps":
InputData inputData = ProtoBufffer.DeSerialize<InputData>(bytes);
Debug.Log("Id" + inputData.Id + ",sId :" + inputData.SId + "X:" + inputData.X.ToString() + "Y:" + inputData.Y.ToString() + "roomSeatId :" + inputData.RoomSeatId + "z:" + inputData.Z.ToString() + "roomId:" + inputData.RoomId);
break;
case "prop.PickUpProp":
PropRequest propRequest = ProtoBufffer.DeSerialize<PropRequest>(bytes);
Debug.Log("PropId:" + propRequest.PropId);
break;
case "prop.StartUseProp":
PropResponse useProp = ProtoBufffer.DeSerialize<PropResponse>(bytes);
Debug.Log("PropId:" + useProp);
break;
case "prop.StopUseProp":
PropResponse stopuseProp = ProtoBufffer.DeSerialize<PropResponse>(bytes);
Debug.Log("PropId:" + stopuseProp);
break;
case "move.Location":
//Debug.Log("move.Location接受到了");
NpcData npcData = ProtoBufffer.DeSerialize<NpcData>(bytes);
//Debug.Log(npcData);
if (npcData.Type == 1)//npc创建
{
float x = -float.Parse(npcData.X.ToString());
float y = float.Parse(npcData.Y.ToString());
float z = float.Parse(npcData.Z.ToString());
Vector3 position = new Vector3(x, y, z);
NPCController.instance.InitNPC(position, npcData);
}
if (npcData.Type == 2)//npc移动
{
Vector3 v = new Vector3(float.Parse(npcData.X.ToString()), float.Parse(npcData.Y.ToString()) + 0.5f, float.Parse(npcData.Z.ToString()));
//NPCController.instance.npcposition.Add(v);
//foreach (RecuseNpc item in NPCController.instance.npcsList)
//{
// if (npcData.UserId == item.npcId)
// {
// //Debug.Log("================" + v);
// item.SetNpcDes(v);
// }
//}
foreach (var npcDict in NPCController.instance.npcsList)
{
foreach (var kvp in npcDict)
{
RecuseNpc npc = kvp.Key; // 获取 NPC 脚本(键)
Vector3 position = kvp.Value; // 获取 NPC 的位置(值)
if (npcData.UserId == npc.npcId)
{
npc.SetNpcDes(v);
Debug.Log($"NPCID{npcData.UserId}NPCPOSITION{v}");
}
}
}
}
//npc.transform.name = npcData.UserId;
//npc.transform.localScale = new Vector3(0.5f, 0.5f, 0.5f);
//npc.transform.position = new Vector3(x, y + 0.25f, z);
//npc.transform.parent = GameObject.Find("schoo103").transform;
break;
case "task.InitStart":
break;
//13(1)任务触发
case "task.TaskTrigger":
Debug.Log("-----------task.TaskTrigger");
TaskTrigger taskTrigger = ProtoBufffer.DeSerialize<TaskTrigger>(bytes);
Debug.Log(taskTrigger);
break;
//13(2)更新任务
case "task.UpdateTask":
Debug.Log("-----------task.TaskTrigger");
MoveRequest taskUpdateRequest = ProtoBufffer.DeSerialize<MoveRequest>(bytes);
Debug.Log(taskUpdateRequest);
break;
//对象触发操作
case "object.HandleObject":
Debug.Log("-----------object.HandleObject");
RequestObject requestObject = ProtoBufffer.DeSerialize<RequestObject>(bytes);
Debug.Log(requestObject);
break;
//
case "move.MoveNpc":
Debug.Log("-----------move.MoveNpc");
MoveRequest moveRequest = ProtoBufffer.DeSerialize<MoveRequest>(bytes);
Debug.Log(moveRequest);
break;
//17.语音频道
case "voice.RtcTokenHandler":
Debug.Log("-----------move.MoveNpc");
VoiceResponse voiceResponse = ProtoBufffer.DeSerialize<VoiceResponse>(bytes);
Debug.Log(voiceResponse);
break;
//15.对象触发操作
case "hall.ThatUser":
Debug.Log("-----------move.MoveNpc");
PlayerJoinResponse PlayerJoinResponse = ProtoBufffer.DeSerialize<PlayerJoinResponse>(bytes);
Debug.Log(PlayerJoinResponse);
break;
//16.获取任务列表
case "hall.GetTaskList":
Debug.Log("-----------move.MoveNpc");
TaskListResponse TaskListResponse = ProtoBufffer.DeSerialize<TaskListResponse>(bytes);
foreach(var task in TaskListResponse.Tasks)
{
Debug.Log(task.TaskId);
}
break;
//19. 界面选项操作
case "select.SelectTrigger":
Debug.Log("select.SelectTrigger");
SelectResponse selectRequest = ProtoBufffer.DeSerialize<SelectResponse>(bytes);
Debug.Log(selectRequest);
break;
//20. 选项操作记录
case "select.GetSelectHistoryList":
Debug.Log("select.GetSelectHistoryList");
SelectHistoryResponse selectHistoryResponse = ProtoBufffer.DeSerialize<SelectHistoryResponse>(bytes);
foreach(var selectRes in selectHistoryResponse.Selects)
{
Debug.Log(selectRes.Id);
}
break;
//21.NPC是否被扛起
case "move.TriggerNpcArrive":
SelectResponse selectResponse = ProtoBufffer.DeSerialize<SelectResponse>(bytes);
break;
//case "prop.CreateNpc":
// MoveResponse moveResponse = ProtoBufffer.DeSerialize<MoveResponse>(bytes);
// Debug.Log("UserId:" + moveResponse.UserId + "RoomId:" + moveResponse.RoomId + "x:" + moveResponse.MoveData);
// break;
//case "hall.RoomStartTime":
// JoinRoomRequest joinRoomRequest = ProtoBufffer.DeSerialize<JoinRoomRequest>(bytes);
// Debug.Log("PropId:" + joinRoomRequest.RoomId);
// break;
//case " hall.MessageToUser":
// //JoinRoomRequest joinRoomRequest = ProtoBufffer.DeSerialize<JoinRoomRequest>(bytes);
// //Debug.Log("PropId:" + joinRoomRequest.RoomId);
// break;
}
}
}