예제 #1
0
    public override void OnInitializeScene(ISceneInitData _initData)
    {
        initData = (GameResultSceneInitData)_initData;

        GameInstance.Inst.PlayBGM(new BgmEnum[] { BgmEnum.Result });

        view.ApplyTime(initData.ClearTime);
    }
예제 #2
0
    public void SwitchScene <T>(ISceneInitData initData) where T : SceneBase
    {
        if (currentScene != null)
        {
            currentScene.DestoryScene();
            GameObject.Destroy(currentScene.gameObject);
            currentScene = null;
        }
        initializeNestScene = () => { initialize <T>(initData); };
        //SceneTransition.StartTransition(SwitchSceneProcess, () => { });

        //FIXME:
        initializeNestScene();
    }
예제 #3
0
    public override void OnInitializeScene(ISceneInitData initData)
    {
        this.initData = initData as TitleSceneInitData;

        GameInstance.Inst.PlayBGM(new BgmEnum[] { BgmEnum.Title });
    }
예제 #4
0
    public override void OnInitializeScene(ISceneInitData _initData)
    {
        initData = (GameSceneInitData)_initData;

        GameInstance.Inst.PlayBGM(new BgmEnum[] { BgmEnum.Game, BgmEnum.GameAmbient });

        field        = GenericPrefab.InstantiatePathFormat <Field>(initData.FieldId.ToString());
        cameraTrack  = field.GetCameraTrack();
        heliPlayer   = GenericPrefab.Instantiate <HeliPlayer>(cameraTrack.GetCameraJoint());
        subStageList = field.GetSubStageList();

        //GameSceneState
        {
            int       enemyCount  = 0;
            var       fistStage   = subStageList.FirstOrDefault();
            Transform firstTarget = null;
            if (fistStage != null)
            {
                var firstEnemy = fistStage.EnemyList.FirstOrDefault();
                enemyCount = fistStage.EnemyList.Count;
                if (firstEnemy != null)
                {
                    firstTarget = firstEnemy.TargetJoint;
                }
            }

            gameSceneState = new GameSceneState()
            {
                TargetEnemyList = fistStage.EnemyList.ToList(),
                HeliPlayerData  = new HeliPlayerData()
                {
                    Zoom   = false,
                    Target = firstTarget
                },
                SubStageId        = fistStage.SubStageId,
                NextSubStageId    = fistStage.NextSubStageId,
                LeftEnemyCount    = enemyCount,
                CurrentEnemyIndex = 0
            };
            fistStage.SetColliderActive(true);

            gameSceneState.InvalidTarget();
            heliPlayer.ApplyHeliPlayerData(gameSceneState.HeliPlayerData);
            view.ApplyGameSceneState(gameSceneState);
        }

        //init enemy
        {
            var enemyInitData = new EnemyInitData()
            {
                OnKillEnemy   = OnKillEnemy,
                OnRemoveEnemy = OnRemoveEnemy
            };

            foreach (var subStage in subStageList)
            {
                foreach (var enemy in subStage.EnemyList)
                {
                    enemy.Initialize(enemyInitData);
                }
            }
        }

        //Init CameraTrack
        cameraTrack.SetSubStage(1);

        startTime = Time.time;
        view.ApplyTime(Time.time - startTime);
    }
예제 #5
0
 public void initialize <T>(ISceneInitData initData) where T : SceneBase
 {
     currentScene = GenericPrefab.Instantiate <T>();
     currentScene.InitializeScene(initData);
 }
예제 #6
0
 public abstract void OnInitializeScene(ISceneInitData initData);
예제 #7
0
 public void InitializeScene(ISceneInitData initData)
 {
     OnInitializeScene(initData);
 }