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

ICloudSeat
收藏
我的收藏

前提条件
业务背景
使用限制
注意事项
相关教程
云座位,一个云同步能力的游戏最可以支持 4 个人同玩。座位号对应 0 ~ 3。

ICloudSeat.Index

座位号。

语法

SeatIndex Index { get; }

类型说明

类型为 SeatIndex ,参考 SeatIndex 。

代码示例

void Test() { var seat = ICloudSync.Instance.SeatManager.HostSeat; Debug.Log($"房主座位号:{seat.Index}"); }

ICloudSeat.State

当前座位状态。

语法

SeatState State { get; }

类型说明

类型为 SeatState ,参考 SeatState 。

代码示例

void Test() { var seat = ICloudSync.Instance.SeatManager.GetSeat(SeatIndex.Index1); if (seat.State == SeatState.InUse) { Debug.Log($"1 号座位上有玩家,名为:{seat.PlayerInfo.NickName}"); } }

ICloudSeat.PlayerInfo

“坐”在这个座位上的玩家信息。
注意:只有 State 为 SeatState.InUse 时才有 PlayerInfo 对象,否则为 null。

语法

IPlayerInfo PlayerInfo { get; }

类型说明

类型为 IPlayerInfo ,参考 IPlayerInfo 。

代码示例

void Test() { var seat = ICloudSync.Instance.SeatManager.GetSeat(SeatIndex.Index1); if (seat.State == SeatState.InUse) { Debug.Log($"1 号座位上有玩家,名为:{seat.PlayerInfo.NickName}"); } }

ICloudSeat.View

“坐”在这个座位上的玩家可以看到的视图对象,通过 ICloudViewProvider 创建提供。
注意:只有 State 为 SeatState.InUse 时才有 View 对象,否则为 null。

语法

ICloudView View { get; }

类型说明

类型为 ICloudView,参考 ICloudView 。

代码示例

void Test() { var seat = ICloudSync.Instance.SeatManager.GetSeat(SeatIndex.Index1); if (seat.State == SeatState.InUse) { var myView = (MyView) seat.View; myView.XXX(...) } }

ICloudSeat.OnSeatPlayerJoined (事件)

当有玩家加入了此座位。

语法

public delegate void SeatEventHandler(ICloudSeat seat); event SeatEventHandler OnSeatPlayerJoined;

事件参数说明

参数名
类型
说明
seat
ICloudSeat
发生事件对应的座位

代码示例

void Test() { var seat1 = ICloudSync.Instance.SeatManager.GetSeat(SeatIndex.Index1); seat1.OnSeatPlayerJoined += OnPlayer1Joined; } private void OnPlayer1Joined(ICloudClient client, RemoteMouseEvent e) { Debug.Log($"1 号玩家已加入"); }

ICloudSeat.OnSeatPlayerLeaving (事件)

当玩家正在离开此座位。

语法

public delegate void SeatEventHandler(ICloudSeat seat); event SeatEventHandler OnSeatPlayerLeaving;

事件参数说明

参数名
类型
说明
seat
ICloudSeat
发生事件对应的座位

代码示例

void Test() { var seat1 = ICloudSync.Instance.SeatManager.GetSeat(SeatIndex.Index1); seat1.OnSeatPlayerLeaving += OnPlayer1Leaving; } private void OnPlayer1Leaving(ICloudClient client, RemoteMouseEvent e) { Debug.Log($"1 号玩家已离开"); }

ICloudSeat.OnWillDestroy (事件)

云游戏实例即将在倒计时 x 秒后销毁。同 ICloudSync.OnWillDestroy 事件。
注意:该事件为一个必接事件,开发者需要响应此事件,在云游戏进程销毁前处理同玩玩家的退出问题。

语法

public delegate void WillDestroyHandler(DestroyInfo info); event WillDestroyHandler OnWillDestroy;

事件参数说明

参数名
类型
说明
info
云游戏实例即将销毁的信息

代码示例

void Test() { var seat1 = ICloudSync.Instance.SeatManager.GetSeat(SeatIndex.Index1); seat1.OnWillDestroy += OnWillDestroy; } private void OnWillDestroy(DestroyInfo e) { Debug.Log($"游戏进程将在: {e.Time} 秒后销毁!"); }

ICloudSeat.WaitJoin(...)

等待玩家加入。

语法

Task WaitJoin(CancellationToken token);

参数说明

参数名
类型
默认值
必填
说明
token
CancellationToken
取消令牌

代码示例

async void Test() { var seat = ICloudSync.Instance.SeatManager.GetSeat(SeatIndex.Index1); await seat.WaitJoin(CancellationToken.None); Debug.Log($"1 号座位玩家已加入"); }

enum SeatState

语法

public enum SeatState { /// <summary> /// 空闲 /// </summary> Empty, /// <summary> /// 在使用中(有玩家) /// </summary> InUse }