IEnumerator _EnterScene(int sceneID)
    {
        var newBehavior   = GetBehavior(sceneID);
        var new_sceneBase = DB.SceneBaseMap[sceneID];

        if (_cur_behavior != newBehavior)
        {
            //退出当前玩法
            _cur_behavior?.LeaveBehavior();
            _last_behavior = _cur_behavior;
            _cur_behavior  = newBehavior;
        }
        if (sceneID != _cur_scene_id)
        {
            _cur_behavior?.LeaveScene();
            _last_scene_id = _cur_scene_id;
            _cur_scene_id  = sceneID;

            //加载新场景
            yield return(GameMng.instance.StartCoroutine(BuildScene(new_sceneBase)));
        }
        //初始化
        InitScene(new_sceneBase);

        _cur_behavior.InitBehavior();
        _cur_behavior.InitScene();
        //进入
        _cur_behavior.EnterBehavior();
        _cur_behavior.EnterScene();
        yield return(null);
    }