public PlayerPresenter(PermissionType permissionType, EnterDeviceType enterDeviceType)
        {
            //TODO 引数のenumをPlayerのGameObjectに渡しつつシーンに生成
            this.permissionType  = permissionType;
            this.enterDeviceType = enterDeviceType;
            var previewOnlyPrefab = AssetDatabase.LoadAssetAtPath <GameObject>(NonVRPrefabPath);

            previewOnly             = PrefabUtility.InstantiatePrefab(previewOnlyPrefab) as GameObject;
            desktopPlayerController = previewOnly.GetComponentInChildren <DesktopPlayerController>();
            cameraTransform         = previewOnly.GetComponentInChildren <Camera>().transform;

            //Permissionに応じた初期位置にスポーンする
            Bootstrap.SpawnPointManager.Respawn(permissionType, desktopPlayerController.transform);
        }
        public PlayerPresenter(PermissionType permissionType, EnterDeviceType enterDeviceType, SpawnPointManager spawnPointManager)
        {
            PermissionType         = permissionType;
            this.enterDeviceType   = enterDeviceType;
            this.spawnPointManager = spawnPointManager;

            var previewOnlyPrefab = AssetDatabase.LoadAssetAtPath <GameObject>(PreviewOnlyPrefabPath());
            var previewOnly       = PrefabUtility.InstantiatePrefab(previewOnlyPrefab) as GameObject;

            playerController = previewOnly.GetComponentInChildren <IPlayerController>();
            PlayerTransform  = playerController.PlayerTransform;
            CameraTransform  = playerController.CameraTransform;

#if UNITY_POST_PROCESSING_STACK_V2
            var postProcessLayer = CameraTransform.gameObject.GetComponent <PostProcessLayer>() ?? CameraTransform.gameObject.AddComponent <PostProcessLayer>();

            postProcessLayer.volumeTrigger = CameraTransform;
            postProcessLayer.volumeLayer   = 1 << LayerName.PostProcessing;
#endif
            Respawn();
        }
Example #3
0
        public PlayerPresenter(PermissionType permissionType, EnterDeviceType enterDeviceType)
        {
            //TODO 引数のenumをPlayerのGameObjectに渡しつつシーンに生成
            this.permissionType  = permissionType;
            this.enterDeviceType = enterDeviceType;

            GameObject previewOnlyPrefab;

            switch (enterDeviceType)
            {
            case EnterDeviceType.Desktop:
                previewOnlyPrefab = AssetDatabase.LoadAssetAtPath <GameObject>(NonVRPrefabPath);
                break;

            case EnterDeviceType.VR:
                previewOnlyPrefab = AssetDatabase.LoadAssetAtPath <GameObject>(VRPrefabPath);
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(enterDeviceType), enterDeviceType, null);
            }

            previewOnly = PrefabUtility.InstantiatePrefab(previewOnlyPrefab) as GameObject;

            playerController = previewOnly.GetComponentInChildren <IPlayerController>();
            playerTransform  = playerController.PlayerTransform;
            cameraTransform  = playerController.CameraTransform;


#if UNITY_POST_PROCESSING_STACK_V2
            var postProcessLayer = cameraTransform.gameObject.GetOrAddComponent <PostProcessLayer>();
            postProcessLayer.volumeTrigger = cameraTransform;
            postProcessLayer.volumeLayer   = 1 << LayerMask.NameToLayer("PostProcessing");
#endif


            //Permissionに応じた初期位置にスポーンする
            Bootstrap.SpawnPointManager.Respawn(permissionType, playerTransform, cameraTransform);
        }