CreateScene

    /// <summary>
    /// 创建网络场景, 退出当前场景并加入所创建的场景 - 创建场景成功返回场景对象, 创建失败返回null
    /// </summary>
    /// <param name="player">创建网络场景的玩家实体</param>
    /// <param name="sceneID">要创建的场景号或场景名称</param>
    /// <param name="scene">创建场景的实体</param>
    /// <param name="exitCurrentSceneCall">即将退出当前场景的处理委托函数: 如果你需要对即将退出的场景进行一些事后处理, 则在此委托函数执行! 如:退出当前场景通知当前场景内的其他客户端将你的玩家对象移除等功能</param>
    /// <returns></returns>
    public Scene CreateScene(Player player, string sceneID, Scene scene, Action<Scene> exitCurrentSceneCall = null)
    {
        if (string.IsNullOrEmpty(sceneID))
            return null;
        if (Scenes.TryAdd(sceneID, scene))
        {
            if (Scenes.TryGetValue(player.SceneID, out Scene exitScene))
            {
                exitScene.Remove(player);
                exitCurrentSceneCall?.Invoke(exitScene);
            }
            scene.Name = sceneID;
            scene.AddPlayer(player);
            scene.onSerializeOptHandle = OnSerializeOpt;
            return scene;
        }
        return null;
    }

最后更新于

这有帮助吗?