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(); }
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); }