多人在线对战开发指南 · C#

多人在线对战是一款基于 C# 编写的游戏 SDK,它为有强联网需求的网络游戏提供了一整套的客户端 SDK 解决方案,因此开发团队不再需要自建服务端,从而节省大部分开发和运维成本。多人在线对战提供的主要功能如下:
+

获取房间列表
创建房间
加入房间
随机加入(符合条件的)房间
获取房间玩家
获取、设置、同步房间的属性
获取、设置、同步玩家的属性
发送和接收「自定义事件」
离开房间
SDK 导入
请阅读 安装,获取 dll 库文件。
+

初始化
导入需要的命名空间。
+

using LeanCloud.Play;
接着我们需要实例化一个在线对战 SDK 的客户端对象。
+

var client = new Client({{appid}}, {{appkey}}, userId, playServer: "https://xxx.example.com", gameVersion: "0.0.1");
// 请将 xxx.example.com 替换为你的应用绑定的自定义 API 域名
 
其中, userId 作为客户端的唯一标识连接至服务器。 需要注意,这个 userId 有如下限制:
+

只允许英文、数字与下划线
长度不能超过 32 字符
一个应用内全局唯一
gameVersion 表示客户端的版本号,如果允许多个版本的游戏共存,则可以根据这个版本号路由到不同的游戏服务器。
+

连接
建立连接
通过下面的代码将当前玩家连接到多人对战服务:
+

try {
    await client.Connect();
    // 连接成功
} catch (PlayException e) {
    // 连接失败
    Debug.LogErrorFormat("{0}, {1}", e.Code, e.Detail);
}
大厅
我们推荐您「不要」将玩家加入大厅,因为在大厅中,服务端会不停的下发最新的全量房间列表,由玩家自行选择其中一个房间进行游戏,这种方式不仅对玩家体验不友好,同时来会带来很大的带宽压力。 我们推荐您像现在的绝大部分手游一样,直接通过房间匹配的方式,快速匹配开始游戏。
+

如果您有特殊的游戏场景需要获取房间列表,可以调用以下方法:
+

try {
    await client.JoinLobby();
    // 加入大厅成功
} catch (PlayException e) {
    // 加入大厅失败
    Debug.LogErrorFormat("{0}, {1}", e.Code, e.Detail);
}
当玩家加入到大厅后,服务端会将当前大厅的房间列表推送给客户端,开发者可以根据需求显示房间列表,或加入房间参与游戏。
+

client.OnLobbyRoomListUpdated += () => {
    var roomList = client.LobbyRoomList;
    // TODO 可以做房间列表展示的逻辑
};

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值