ICloudSync
收藏
我的收藏云同步能力 SDK 单例,功能入口。
前提条件 | 无 |
业务背景 | 无 |
使用限制 | 无 |
注意事项 | 无 |
相关教程 | 无 |
ICloudSync.Instance
云同步全局单例对象获取。
语法
public static ICloudSync Instance { get; }
代码示例
void TestInitSDK() { var cloudSyncSdk = ICloudSync.Instance; }
ICloudSync.SeatManager
“座位” ICloudSeat 管理器。
语法
public ICloudSeatManager SeatManager { get; }
类型说明
类型为
ICloudSeatManager
,参考 ICloudSeatManager。
代码示例
void TestInitSDK() { var seatManager = ICloudSync.Instance.SeatManager; }
ICloudSync.MatchManager
匹配同玩管理器。
语法
public ICloudMatchManager MatchManager { get; }
类型说明
类型为
ICloudMatchManager
,参考 ICloudMatchManager。
代码示例
void TestInitSDK() { var clientManager = ICloudSync.Instance.MatchManager; }
ICloudSync.Init(...)
云同步 SDK 初始化。
语法
public Task<InitResult> Init( string appId, IVirtualDeviceFactory deviceFactory, IAnchorPlayerInfoProvider playerInfoProvider = null, ISplashScreen splash = null );
参数说明
参数名 | 类型 | 默认值 | 必填 | 说明 |
appId | string | | 是 | 小玩法appId。 形如'tt123456abcd1234' |
deviceFactory | IVirtualDeviceFactory | | 是 | 指定虚拟设备创建工厂 |
playerInfoProvider | IAnchorPlayerInfoProvider | null | 否 | 设置主播的用户信息,包含开平的基本信息,如:NickName, OpenId, AvatarUrl, RoomId |
splash | ISplashScreen | null | 否 | 自定义启动屏界面(一般用于云游戏环境调试,可忽略) |
代码示例
async void Test() { var appId = "tt123456abcd1234"; // 你的小玩法 appId var myDeviceFactory = ...; // 你自定义的 ClientView 创建工厂对象 await ICloudSync.Instance.Init("tt123456abcd1234", myDeviceFactory); }
ICloudSync.OnMouse (事件)
云游戏终端用户触发的鼠标事件。
语法
public delegate void ClientMouseEventHandler(ICloudClient client, RemoteMouseEvent e); public event ClientMouseEventHandler OnMouse;
事件参数说明
参数名 | 类型 | 说明 |
client | ICloudClient | 云游戏终端触发的鼠标事件对应的 ICloudClient 对象(可用于获取主播信息) |
e | RemoteMouseEvent | 云游戏终端触发的鼠标事件 |
代码示例
void Test() { ICloudSync.Instance.OnMouse += OnMouse; } private void OnMouse(ICloudClient client, RemoteMouseEvent e) { if (e.action == MouseAction.DOWN) { Debug.Log($"OnMouse: 主播: {client.Index} MouseDown, view position: {e.viewPosition}"); } }
ICloudSync.OnKeyboard (事件)
云游戏终端用户触发的键盘事件。
语法
public delegate void ClientKeyboardEventHandler(ICloudClient client, RemoteKeyboardEvent e); public event ClientKeyboardEventHandler OnKeyboard;
事件参数说明
参数名 | 类型 | 说明 |
client | ICloudClient | 云游戏终端用户触发的键盘事件对应的 ICloudClient 对象(可用于获取主播信息) |
e | RemoteKeyboardEvent | 云游戏终端用户触发的键盘事件 |
代码示例
void Test() { ICloudSync.Instance.OnKeyboard += OnKeyboard; } private void OnKeyboard(ICloudClient client, RemoteKeyboardEvent e) { if (e.action == KeyboardAction.DOWN) { Debug.Log($"OnMouse: 主播: {client.Index} KeyDown, KeyCode: {e.key}"); } }
ICloudSync.OnTouch (事件)
云游戏终端用户触发的触摸事件。
语法
public delegate void ClientTouchEventHandler(ICloudClient client, RemoteTouchEvent e); public event ClientTouchEventHandler OnTouch;
事件参数说明
参数名 | 类型 | 说明 |
client | ICloudClient | 云游戏终端用户触发的触摸事件对应的 ICloudClient 对象(可用于获取主播信息) |
e | RemoteTouchEvent | 云游戏终端用户触发的触摸事件 |
代码示例
void Test() { ICloudSync.Instance.OnTouch += OnTouch; } private void OnTouch(ICloudClient client, RemoteTouchEvent e) { if (e.action == KeyboardAction.DOWN) { Debug.Log($"OnMouse: 主播: {client.Index} Touch, position: {e.position}"); } }
ICloudSync.OnClientConnected (事件)
当某个 Client 连接成功(用户进入)。
语法
public delegate void ClientEventHandler(ICloudClient client); public event ClientEventHandler OnClientConnected;
事件参数说明
参数名 | 类型 | 说明 |
client | ICloudClient | 连接成功的 CloudClient 对象 |
ICloudSync.OnClientDisconnected (事件)
当某个 Client 断开(用户离开)。
语法
public delegate void ClientEventHandler(ICloudClient client); public event ClientEventHandler OnClientDisconnected;
事件参数说明
参数名 | 类型 | 说明 |
client | ICloudClient | 断开的 CloudClient 对象 |
ICloudSync.OnWillDestroy (事件)
云游戏实例即将在倒计时 N 秒后销毁。
注意:该事件为一个必接事件,开发者需要响应此事件,在云游戏进程销毁前处理同玩玩家的退出问题。
语法
public delegate void WillDestroyHandler(DestroyInfo info); public event WillDestroyHandler OnWillDestroy;
事件参数说明
参数名 | 类型 | 说明 |
info | DestroyInfo | 云游戏实例即将销毁的信息 |
代码示例
void Test() { ICloudSync.Instance.OnWillDestroy += OnWillDestroy; } private void OnWillDestroy(DestroyInfo e) { Debug.Log($"游戏进程将在: {e.Time} 秒后销毁!"); }
DestroyInfo
语法
/// <summary> /// 云游戏实例即将销毁的信息 /// </summary> public struct DestroyInfo { /// <summary> /// 在 x 秒后销毁 /// </summary> public int Time; /// <summary> /// 原因 /// </summary> public DestroyReason Reason; } /// <summary> /// 云游戏实例即将销毁原因 /// </summary> public enum DestroyReason { /// <summary> /// Host 主播离开 /// </summary> HostAnchorLeave }