案例视频
案例功能
这个demo主要功能就是登录服务器,各个玩家的位置同步以及世界频道聊天。
代码在这:https://github.com/ferris1/WindDemo
demo游戏流程
Wind的各个接口使用方式可以看GameMgr.cs文件里面的具体使用。
登录服务器
public void OnConnectBtn()
{
Debug.Log("start connect server");
if (input.text != "")
{
playerId = input.text;
// 连接服务器 将ip和端口传进去
WindNetwork.Agent.GetInstance().ConnectToServer("127.0.0.1", 50100);
}
else
{
Debug.Log("please input account name");
}
}
加入房间
public void SendJoinRoomPakcet()
{
var req = new WindNetwork.PlayerJoinRoomRequest(); // new一个protobuf对象
req.PlayerId = playerId; // 玩家ID
WindNetwork.Agent.GetInstance().SendRequest(req); // 发包给服务器
}
同步移动
public void SendMovePakcet()
{
var req = new WindNetwork.PlayerMoveRequest(); // new一个protobuf对象
req.PlayerId = playerId;
req.Move = new WindNetwork.Vector2(); // protobuf的结构体
req.Move.X = _movement._move.x;
req.Move.Y = _movement._move.y;
req.Look = new WindNetwork.Vector2();
req.Look.X = _movement._look.x;
req.Look.Y = _movement._look.y;
WindNetwork.Agent.GetInstance().SendRequest(req);
}
世界频道发言
public void OnPlayerSend()
{
if (messInput.text == "") return;
var req = new WindNetwork.SpeakOnWorldRequest();
req.PlayerId = playerId;
req.Name = playerId; //玩家名字
req.Content = messInput.text; // 发言内容
WindNetwork.Agent.GetInstance().SendRequest(req); // 发包给服务器
messInput.text = "";
}