Unity 游戏项目
操作场景
以 Unity Editor 2019.3 版本为例,本文介绍使用小游戏联机对战引擎 MGOBE API 快速接入对战平台的方法,实现一个 MGOBE 的 HelloworldUnity。
前提条件
- 已在小游戏联机对战引擎控制台创建小游戏实例,并开通联机对战服务。
- 已获取游戏 gameID 和 secretKey。
操作步骤
打开 Unity Hub,创建一个小游戏项目。如下图所示:
点击【创建】,进入项目开发界面:
导入 Mgobe Package
将 com.unity.Mgobe.unitypackage 拖入 editor 中的 Project 栏,点击【import】进行 package 导入。 单击进入Package 下载页面
在 Assets 目录下创建 “Scripts” 文件夹,并新建 Scripts/main.cs 文件
在 Hierachy 视图下,右击 SampleScene,选中 GameObject -> CreateEmpty,新建一个空的游戏对象
选中新建的 GameObject,拖动 main.cs,添加为该 GameObject 的 Component
参考以下示例代码,将 mgobe package 导入 main.cs
1 2 3
| using Packages.com.unity.mgobe.Runtime.src; using Packages.com.unity.mgobe.Runtime.src.SDK; using Lagame;
|
调用 API
- 在 main.cs 中输入以下代码,完成 SDK 初始化,获得 room 实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| GameInfoPara gameInfo = new GameInfoPara { // 替换 为控制台上的“游戏ID” GameId = "XXXXXXXXXXXXXX", // 玩家 openId OpenId = "openid_123_test", //替换 为控制台上的“游戏Key” SecretKey = "XXXXXXXXXXXXXX" };
ConfigPara config = new ConfigPara { // 替换 为控制台上的“域名” Url = "XXXXXXX.wxlagame.com", ReconnectMaxTimes = 5, ReconnectInterval = 1000, ResendInterval = 1000, ResendTimeout = 10000 };
// 初始化监听器 Listener Listener.Init (gameInfo, config, (ResponseEvent eve) => { if (eve.Code == 0) { Debug.Log ("初始化成功"); // 初始化成功之后才能调用其他 API var room = new Room(null); // ... } // 初始化广播回调事件
});
|
- 修改初始化回调函数,调用 room 对象的查询房间接口(getRoomDetail),即可验证是否成功接入对战平台。示例代码如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| // 初始化监听器 Listener Listener.Init (gameInfo, config, (ResponseEvent eve) => { if (eve.Code == 0) { Debug.Log ("初始化成功"); // 初始化成功之后才能调用其他 API //查询玩家自己的房间 var room = new Room (null); room.GetRoomDetail ((ResponseEvent e) => { if (e.Code != 0 && e.Code != 20011) { Debug.Log ("初始化失败"); } // Type type = e.data.GetType(); // Debug.LogFormat ("查询成功: {0}", type); Debug.Log ("查询成功"); if (e.Code == 20011) { Debug.Log ("玩家不在房间内"); } else { // 玩家已在房间内 var res = (GetRoomByRoomIdRsp) e.Data; Debug.LogFormat ("房间名 {0}", res.RoomInfo.Name); } }); } else { Debug.LogFormat ("初始化失败: {0}", eve.Code); } // 初始化广播回调事件 });
|
- 编译并运行项目,控制台中输出“查询成功”信息即表示接入成功