首页 > 编程语言 >多人在线对战开发指南 · C#

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

时间:2023-07-15 13:34:51浏览次数:43  
标签:指南 C# 房间 玩家 对战 大厅 client 客户端

多人在线对战是一款基于 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 可以做房间列表展示的逻辑
};

标签:指南,C#,房间,玩家,对战,大厅,client,客户端
From: https://www.cnblogs.com/yeci/p/17556007.html

相关文章

  • 利用U盘给Intel NUC重装Ubuntu20.04系统
    背景因为社团里刚好有一个被玩坏的IntelNUC,我又刚好对此感兴趣,于是学长就交给我这一项任务,让我给这台NUC刷机。目录NUC刷机基本上简单分为四步一、格式化U盘二、下载Ubuntu20.04系统镜像三、将系统镜像写入U盘,制成启动盘四、把启动盘里的系统整到NUC里,重装系统,完成刷机。......
  • python 根据路径读取doc文件
    实现Python根据路径读取doc文件的过程可以分为以下几个步骤:步骤动作步骤一导入所需模块步骤二指定文件路径步骤三打开并读取doc文件步骤四处理读取的内容现在让我们逐步来实现这个过程。步骤一:导入所需模块在Python中,我们需要使用python-docx模块来处......
  • python 多网卡获取ip mac
    Python多网卡获取IP和MAC地址简介在网络编程中,有时候我们需要获取计算机上的多个网卡的IP和MAC地址。Python提供了一些库和方法来实现这个功能。本文将介绍如何通过Python来获取多个网卡的IP和MAC地址,并给出相应的代码示例。流程概述下面是实现该功能的大致流程:步骤动作......
  • 使用docker部署chatgpt-on-wechat
    目标:能够调用chatgpt接口并回复微信proxy部署(海外服务器不需要此选项)下载、配置proxymkdir-p/data/clashcd/data/clashwgethttps://github.com/Dreamacro/clash/releases/download/v1.17.0/clash-linux-amd64-v1.17.0.gzgzip-dclash-linux-amd64-v1.17.0.gzchmoda+......
  • JDK有用的新特性-Java Record
    目录JavaRecordRecord使用InstanceMethods静态方法StaticMethodRecord的构造方法step1:紧凑和定制构造方法Record与与LombokRecord实现接口LocalRecord嵌套Recordinstanceof判断Record类型总结JavaRecordJava14中预览的新特性叫做Record,在Java中,Record是一......
  • Pycharm基础
    Pycharm基础1.添加解释器2.安装包的两种方式3.插件汉化插件以及一种使各分层括号颜色一致的插件......
  • 服务器/虚拟机 关机或重启之后报:Entering emergency mode. Exit the shell to continu
    具体现象多次重启之后还是不行,提示让进入紧急模式或退出排查原因根据提示输入journalctl,查看系统的日志信息可以看到有一些明显的报错信息可以看到这些报错都与xfs文件系统相关XFS(dm-0)这里给出了具体信息mount:mount/dev/mapper/centos-rooton/susrootfailed......
  • 在Protocol Buffers中导入当前目录中的.proto文件
    在protobuf中导入当前目录中的.proto文件时,可以使用相对路径。相对路径是相对于当前.proto文件所在的目录来引用其他.proto文件。假设有以下目录结构:my_project/|--proto/||--person.proto|--main.proto如果要在main.proto中想导入person.proto,可以使用相对路径proto......
  • tomcat 8.5 的安装配置
    下载软件包链接:https://pan.baidu.com/s/1VP9MGxjpWm3gawhxjIvYrg提取码:xooe--来自百度网盘超级会员V6的分享1、注意解压还要拿到最里面的文件夹,存放的软件目录不能是中文的 同样的将上面文件路径复制粘贴到记事本,等下要用CATALINA_HOMED:\mysoft\apache-tomcat-8.5.15......
  • abc086d <二维前缀和 同余>
    题目D-Checker思路坐标对2k取余,通过二维前缀和计算满足条件的个数;也可对k取余,参考;代码Code//https://atcoder.jp/contests/abc086/tasks/arc089_b//二维前缀和同余#include<iostream>#include<algorithm>#include<vector>#include<cstring>usi......