Beispiel #1
0
        public void Init(SceneConfig sceneConfig, MagicWallManager manager, Action onSceneCompleted)
        {
            _manager          = manager;
            _onSceneCompleted = onSceneCompleted;

            _cutEffect = CutEffectFactory.GetCutEffect(sceneConfig.sceneType); // 设置过场效果
            _cutEffect.Init(_manager, sceneConfig
                            , OnCutEffectCreateAgentCompleted,
                            () => {
                // on effect completed

                _runEntrance = false;
            }, () =>
            {
                // on display Start

                _runDisplay       = true;
                _displayStartTime = Time.time;
            }
                            );
            _dataType = sceneConfig.dataType; // 设置类型

            //  显示
            _displayBehavior = DisplayBehaviorFactory.GetBehavior(sceneConfig.displayBehavior);

            // 销毁
            _destoryBehavior = DestoryBehaviorFactory.GetBehavior(sceneConfig.destoryBehavior);
            _destoryBehavior.Init(_manager, this, OnDestoryCompleted, sceneConfig);

            _sceneConfig = sceneConfig;

            _magicSceneEnumStatus = MagicSceneEnum.Running;

            _runEntrance = true;
        }
Beispiel #2
0
        public static ICutEffect GetCutEffect(SceneTypeEnum sceneType)
        {
            ICutEffect cutEffect = null;

            if (sceneType == SceneTypeEnum.CurveStagger)
            {
                cutEffect = new CurveStaggerCutEffect();
            }
            else if (sceneType == SceneTypeEnum.FrontBackUnfold)
            {
                cutEffect = new FrontBackUnfoldCutEffect();
            }
            else if (sceneType == SceneTypeEnum.LeftRightAdjust)
            {
                cutEffect = new LeftRightAdjustCutEffect();
            }
            else if (sceneType == SceneTypeEnum.MidDisperse)
            {
                cutEffect = new MidDisperseCutEffect();
            }
            else if (sceneType == SceneTypeEnum.UpDownAdjustCutEffect)
            {
                cutEffect = new UpDownAdjustCutEffect();
            }


            return(cutEffect);
        }