예제 #1
0
        private void OnInitalizedHandler()
        {
            SetActionState(false);

            Debug.Log("AppCore IAP -> IAP initialized successfully.");

            OnInitializedEvent?.Invoke();
        }
        static void OnChangePlayMode(PlayModeStateChange playMode)
        {
            switch (playMode)
            {
            case PlayModeStateChange.ExitingPlayMode:
                SetIsInGameMode(false);
                break;

            case PlayModeStateChange.EnteredPlayMode:
                SetIsInGameMode(true);

                ItemIdAssigner.AssignItemId();
                ItemTemplateIdAssigner.Execute();
                LayerCollisionConfigurer.SetupLayerCollision();

                var rootGameObjects = SceneManager.GetActiveScene().GetRootGameObjects();

                var spawnPoints = GetComponentsInGameObjectsChildren <ISpawnPoint>(rootGameObjects);
                SpawnPointManager = new SpawnPointManager(spawnPoints);

                // 疑似Playerの設定
                var enterDeviceType = EnterDeviceType.Desktop;
                if (XRSettings.enabled)
                {
                    enterDeviceType = EnterDeviceType.VR;
                }

                var despawnHeight = GetComponentInGameObjectsChildren <IDespawnHeight>(rootGameObjects).Height;
                PlayerPresenter = new PlayerPresenter(PermissionType.Audience, enterDeviceType, SpawnPointManager);
                new AvatarRespawner(despawnHeight, PlayerPresenter);

                var itemCreator   = new ItemCreator(GetComponentsInGameObjectsChildren <ICreateItemGimmick>(rootGameObjects));
                var itemDestroyer = new ItemDestroyer(PlayerPresenter.PlayerTransform.GetComponent <IItemController>());
                new ItemRespawner(despawnHeight, itemCreator, itemDestroyer, GetComponentsInGameObjectsChildren <IMovableItem>(rootGameObjects));

                var mainScreenViews = GetComponentsInGameObjectsChildren <IMainScreenView>(rootGameObjects);
                MainScreenPresenter = new MainScreenPresenter(mainScreenViews);

                var rankingScreenViews     = GetComponentsInGameObjectsChildren <IRankingScreenView>(rootGameObjects);
                var rankingScreenPresenter = new RankingScreenPresenter(rankingScreenViews);
                rankingScreenPresenter.SetRanking(11);

                var commentScreenViews =
                    GetComponentsInGameObjectsChildren <ICommentScreenView>(rootGameObjects);
                CommentScreenPresenter = new CommentScreenPresenter(commentScreenViews);

                SetupTriggerGimmicks(rootGameObjects, itemCreator, itemDestroyer);

                OnInitializedEvent?.Invoke();
                break;
            }
        }