# 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() { }
}

# 最佳实践

  1. 权限检查 - 调用前确认是房主身份
  2. 游戏结束判断 - 在合适的时机判断游戏是否结束
  3. 资源清理 - OnFrameSyncStopped中及时释放随机数生成器
  4. 显示结果 - 停止后显示游戏结果界面
  5. 离开房间 - 结果展示后调用LeaveRoom离开房间

# 相关API