抖音开放平台Logo
开发者文档
控制台

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 }