SwitchScene

    /// <summary>
    /// 退出当前场景,切换到指定的场景 - 成功进入返回true,进入失败返回false
    /// </summary>
    /// <param name="player">要进入sceneID场景的玩家实体</param>
    /// <param name="sceneID">场景ID,要切换到的场景号或场景名称</param>
    /// <param name="exitCurrentSceneCall">即将退出当前场景的处理委托函数: 如果你需要对即将退出的场景进行一些事后处理, 则在此委托函数执行! 如:退出当前场景通知当前场景内的其他客户端将你的玩家对象移除等功能</param>
    /// <returns></returns>
    public Scene SwitchScene(Player player, string sceneID, Action<Scene> exitCurrentSceneCall = null)
    {
        if (string.IsNullOrEmpty(sceneID))
            return null;
        if (Scenes.TryGetValue(sceneID, out Scene scene1))
        {
            if (Scenes.TryGetValue(player.SceneID, out Scene scene2))
            {
                scene2.Remove(player);
                exitCurrentSceneCall?.Invoke(scene2);
            }
            scene1.AddPlayer(player);
            return scene1;
        }
        return null;
    }

最后更新于

这有帮助吗?