# TapBattleClient.StopFrameSync
# 功能描述
停止帧同步。只有房主可以调用此方法。调用成功后,所有玩家会收到OnFrameSyncStopped事件。
# 方法签名
public static void StopFrameSync(StopFrameSyncOption option)
# 参数说明
# StopFrameSyncOption
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| success | Action<TapCallbackResult> | 否 | 停止成功回调 |
| fail | Action<TapCallbackResult> | 否 | 停止失败回调 |
| complete | Action<TapCallbackResult> | 否 | 停止完成回调 |
# 使用说明
# 权限要求
- 仅房主可用 - 只有房主才能停止帧同步
- 帧同步进行中 - 必须在帧同步开始后才能调用
# 触发事件
调用成功后,房间内所有玩家会收到 OnFrameSyncStopped 事件。
# 注意事项
- 停止帧同步 - 调用后服务器停止收集和广播帧数据
- 释放随机数生成器 - 应在OnFrameSyncStopped中释放随机数生成器
- 不自动离开房间 - 停止帧同步不会自动离开房间,需要手动调用LeaveRoom
# 代码示例
# 示例1:基础停止帧同步
using UnityEngine;
public class FrameSyncStopper : MonoBehaviour
{
private bool isRoomOwner;
public void StopCurrentFrameSync()
{
if (!isRoomOwner) {
Debug.LogWarning("只有房主才能停止帧同步");
return;
}
TapBattleClient.StopFrameSync(new StopFrameSyncOption
{
success = (result) => {
Debug.Log("帧同步停止成功");
},
fail = (result) => {
Debug.LogError($"停止帧同步失败: {result.errMsg}");
}
});
}
// 所有玩家收到帧同步停止事件
public void OnFrameSyncStopped(FrameSyncStopInfo info)
{
Debug.Log($"帧同步已停止 - 原因: {info.reason}");
// 释放随机数生成器
TapBattleClient.FreeRandomNumberGenerator();
// 显示游戏结果
ShowGameResult();
}
private void ShowGameResult() { }
}
# 最佳实践
- 权限检查 - 调用前确认是房主身份
- 游戏结束判断 - 在合适的时机判断游戏是否结束
- 资源清理 - OnFrameSyncStopped中及时释放随机数生成器
- 显示结果 - 停止后显示游戏结果界面
- 离开房间 - 结果展示后调用LeaveRoom离开房间
# 相关API
- TapBattleClient.StartFrameSync - 开始帧同步
- TapBattleClient.LeaveRoom - 离开房间
- TapBattleClient.FreeRandomNumberGenerator - 释放随机数生成器
- ITapBattleEventHandler - OnFrameSyncStopped事件
