override public void Skip() { MainCamera mainCam = KickStarter.mainCamera; if (mainCam) { _Camera cam = linkedCamera; if (returnToLast && mainCam.lastNavCamera) { if (mainCam.lastNavCamera != null && mainCam.attachedCamera == mainCam.lastNavCamera) { cam = (_Camera)mainCam.lastNavCamera2; } else { cam = (_Camera)mainCam.lastNavCamera; } } if (cam) { if (cam is GameCameraThirdPerson) { GameCameraThirdPerson tpCam = (GameCameraThirdPerson)cam; tpCam.ResetRotation(); } mainCam.SetGameCamera(cam); cam.MoveCameraInstant(); mainCam.SnapToAttached(); } } }
override public void Skip() { MainCamera mainCam = KickStarter.mainCamera; if (mainCam) { _Camera cam = linkedCamera; if (returnToLast) { cam = mainCam.GetLastGameplayCamera(); } if (cam) { if (cam is GameCameraThirdPerson) { GameCameraThirdPerson tpCam = (GameCameraThirdPerson)cam; tpCam.ResetRotation(); } cam.MoveCameraInstant(); mainCam.SetGameCamera(cam); } } }
/** * Makes the assigned cameraOnStart the active _Camera. */ public void SetCameraOnStart() { if (cameraOnStart && KickStarter.mainCamera) { cameraOnStart.MoveCameraInstant(); KickStarter.mainCamera.SetGameCamera(cameraOnStart); KickStarter.mainCamera.lastNavCamera = cameraOnStart; } }
/** * Makes the assigned cameraOnStart the active _Camera. */ public void SetCameraOnStart() { if (cameraOnStart != null && KickStarter.mainCamera != null) { KickStarter.mainCamera.SetGameCamera(cameraOnStart); KickStarter.mainCamera.lastNavCamera = cameraOnStart; cameraOnStart.MoveCameraInstant(); KickStarter.mainCamera.SetGameCamera(cameraOnStart); } }
public override float Run() { if (!isRunning) { isRunning = true; MainCamera mainCam = KickStarter.mainCamera; if (runtimeLinkedCamera && mainCam.attachedCamera != runtimeLinkedCamera) { if (runtimeLinkedCamera is GameCameraThirdPerson) { GameCameraThirdPerson tpCam = (GameCameraThirdPerson)runtimeLinkedCamera; tpCam.ResetRotation(); } else if (runtimeLinkedCamera is GameCameraAnimated) { GameCameraAnimated animCam = (GameCameraAnimated)runtimeLinkedCamera; animCam.PlayClip(); } runtimeLinkedCamera.MoveCameraInstant(); mainCam.Crossfade(transitionTime, runtimeLinkedCamera, fadeCurve); if (transitionTime > 0f && willWait) { return(transitionTime); } } } else { isRunning = false; } return(0f); }
public void SetPlayerStart() { if (KickStarter.mainCamera) { if (fadeInOnStart) { KickStarter.mainCamera.FadeIn(fadeSpeed); } if (KickStarter.settingsManager) { if (KickStarter.player) { KickStarter.player.Teleport(this.transform.position); KickStarter.player.SetLookDirection(this.transform.forward, true); if (KickStarter.settingsManager.ActInScreenSpace() && !KickStarter.settingsManager.IsUnity2D()) { KickStarter.player.transform.position = AdvGame.GetScreenNavMesh(KickStarter.player.transform.position); } } if (KickStarter.settingsManager.movementMethod == MovementMethod.FirstPerson) { KickStarter.mainCamera.SetFirstPerson(); } else if (cameraOnStart) { KickStarter.mainCamera.SetGameCamera(cameraOnStart); KickStarter.mainCamera.lastNavCamera = cameraOnStart; cameraOnStart.MoveCameraInstant(); KickStarter.mainCamera.SetGameCamera(cameraOnStart); KickStarter.mainCamera.SnapToAttached(); } else if (cameraOnStart == null) { if (!KickStarter.settingsManager.IsInFirstPerson()) { Debug.LogWarning(this.name + " has no Camera On Start"); } } } } }
/** * <summary>Sets a _Camera as the new attachedCamera to follow.</summary> * <param name = "newCamera">The new _Camera to follow</param> * <param name = "transitionTime">The time, in seconds, that it will take to move towards the new _Camera</param> * <param name = "_moveMethod">How the Camera should move towards the new _Camera, if transitionTime > 0f (Linear, Smooth, Curved, EaseIn, EaseOut, CustomCurve)</param> * <param name = "_animationCurve">The AnimationCurve that dictates movement over time, if _moveMethod = MoveMethod.CustomCurve</param> */ public void SetGameCamera(_Camera newCamera, float transitionTime = 0f, MoveMethod _moveMethod = MoveMethod.Linear, AnimationCurve _animationCurve = null) { if (newCamera == null) { return; } if (attachedCamera != null && attachedCamera is GameCamera25D) { if (newCamera is GameCamera25D) { } else { RemoveBackground (); } } AssignOwnCamera (); _camera.ResetProjectionMatrix (); attachedCamera = newCamera; attachedCamera.SetCameraComponent (); if (attachedCamera && attachedCamera._camera) { _camera.farClipPlane = attachedCamera._camera.farClipPlane; _camera.nearClipPlane = attachedCamera._camera.nearClipPlane; _camera.orthographic = attachedCamera._camera.orthographic; } // Set LookAt if (attachedCamera is GameCamera) { GameCamera gameCam = (GameCamera) attachedCamera; cursorAffectsRotation = gameCam.followCursor; lookAtAmount = gameCam.cursorInfluence; } else if (attachedCamera is GameCameraAnimated) { GameCameraAnimated gameCam = (GameCameraAnimated) attachedCamera; if (gameCam.animatedCameraType == AnimatedCameraType.SyncWithTargetMovement) { cursorAffectsRotation = gameCam.followCursor; lookAtAmount = gameCam.cursorInfluence; } else { cursorAffectsRotation = false; } } else { cursorAffectsRotation = false; } // Set background if (attachedCamera is GameCamera25D) { GameCamera25D cam25D = (GameCamera25D) attachedCamera; cam25D.SetActiveBackground (); } // TransparencySortMode if (attachedCamera is GameCamera2D) { _camera.transparencySortMode = TransparencySortMode.Orthographic; } else if (attachedCamera) { if (attachedCamera._camera.orthographic) { _camera.transparencySortMode = TransparencySortMode.Orthographic; } else { _camera.transparencySortMode = TransparencySortMode.Perspective; } } // UFPS if (KickStarter.settingsManager.movementMethod == MovementMethod.UltimateFPS) { UltimateFPSIntegration._Update (KickStarter.stateHandler.gameState); } KickStarter.stateHandler.LimitHotspotsToCamera (attachedCamera); if (transitionTime > 0f) { SmoothChange (transitionTime, _moveMethod, _animationCurve); } else if (attachedCamera != null) { attachedCamera.MoveCameraInstant (); SnapToAttached (); } }
public override float Run() { if (KickStarter.settingsManager.playerSwitching == PlayerSwitching.Allow) { PlayerPrefab newPlayerPrefab = KickStarter.settingsManager.GetPlayerPrefab(playerID); if (newPlayerPrefab != null) { if (KickStarter.player != null && KickStarter.player.ID == playerID) { Log("Cannot switch Player - already controlling the desired character."); return(0f); } if (newPlayerPrefab.playerOb != null) { KickStarter.playerInteraction.StopMovingToHotspot(); KickStarter.saveSystem.SaveCurrentPlayerData(); if (takeOldPlayerPosition) { if (KickStarter.player != null) { if (keepInventory) { KickStarter.saveSystem.AssignItemsToPlayer(KickStarter.runtimeInventory.PlayerInvCollection, playerID); } _Camera oldCamera = KickStarter.mainCamera.attachedCamera; KickStarter.player.RemoveFromScene(); // Transfer open sub-scene data since both are in the same scene PlayerData tempPlayerData = new PlayerData(); tempPlayerData = KickStarter.sceneChanger.SavePlayerData(tempPlayerData); string openSubSceneData = tempPlayerData.openSubScenes; PlayerData newPlayerData = KickStarter.saveSystem.GetPlayerData(playerID); newPlayerData.openSubScenes = openSubSceneData; // Force-set position / scene PlayerData oldPlayerData = KickStarter.saveSystem.GetPlayerData(KickStarter.saveSystem.CurrentPlayerID); newPlayerData.CopyPosition(oldPlayerData); newPlayerData.UpdatePresenceInScene(); oldPlayerData.currentScene = -1; Player newPlayer = newPlayerPrefab.GetSceneInstance(true); KickStarter.player = newPlayer; if (KickStarter.player != null) { KickStarter.player.EndPath(); KickStarter.player.StopFollowing(); } // Same camera if (oldCamera != null && KickStarter.mainCamera.attachedCamera != oldCamera) { oldCamera.MoveCameraInstant(); KickStarter.mainCamera.SetGameCamera(oldCamera); } return(0f); } else { LogWarning("Cannot take the old Player's position because no Player is currently active!"); } } else { if (KickStarter.player != null) { if (stopOldMoving || !KickStarter.player.IsPathfinding()) { KickStarter.player.EndPath(); } } if (keepInventory) { KickStarter.saveSystem.AssignItemsToPlayer(KickStarter.runtimeInventory.PlayerInvCollection, playerID); } int sceneIndexToLoad = KickStarter.saveSystem.GetPlayerSceneIndex(playerID); if (sceneIndexToLoad < 0) { bool hasData = (KickStarter.saveSystem.GetPlayerData(playerID) != null); if (hasData) { LogWarning("Cannot switch to Player ID " + playerID + " because their current scene index = " + sceneIndexToLoad); } else { LogWarning("Cannot switch to Player ID " + playerID + " because no save data was found for them."); } return(0f); } SubScene subScene = KickStarter.sceneChanger.GetSubScene(sceneIndexToLoad); if (subScene == null && SceneChanger.CurrentSceneIndex != sceneIndexToLoad) { // Different scene, and not open as a sub-scene if (KickStarter.player != null) { KickStarter.player.Halt(); } KickStarter.saveSystem.SwitchToPlayerInDifferentScene(playerID, sceneIndexToLoad, assignScreenOverlay); return(0f); } // Same scene // Transfer open sub-scene data since both are in the same scene PlayerData tempPlayerData = new PlayerData(); tempPlayerData = KickStarter.sceneChanger.SavePlayerData(tempPlayerData); string openSubSceneData = tempPlayerData.openSubScenes; PlayerData newPlayerData = KickStarter.saveSystem.GetPlayerData(playerID); newPlayerData.openSubScenes = openSubSceneData; Player newPlayer = newPlayerPrefab.GetSceneInstance(true); KickStarter.player = newPlayer; if (stopNewMoving && KickStarter.player != null) { KickStarter.player.EndPath(); KickStarter.player.StopFollowing(); } if (KickStarter.mainCamera.attachedCamera && alwaysSnapCamera) { KickStarter.mainCamera.attachedCamera.MoveCameraInstant(); } } } else { LogWarning("Cannot switch to an empty Player - no Player prefab is defined for ID " + playerID + "."); } } else { LogWarning("Cannot switch Player - no Player prefab is defined."); } } return(0f); }
override public float Run() { if (!isRunning) { isRunning = true; MainCamera mainCam = KickStarter.mainCamera; if (mainCam) { _Camera cam = linkedCamera; if (returnToLast && mainCam.lastNavCamera) { if (mainCam.lastNavCamera != null && mainCam.attachedCamera == mainCam.lastNavCamera) { cam = (_Camera)mainCam.lastNavCamera2; } else { cam = (_Camera)mainCam.lastNavCamera; } } if (cam) { if (mainCam.attachedCamera != cam) { if (cam is GameCameraThirdPerson) { GameCameraThirdPerson tpCam = (GameCameraThirdPerson)cam; tpCam.ResetRotation(); } else if (cam is GameCameraAnimated) { GameCameraAnimated animCam = (GameCameraAnimated)cam; animCam.PlayClip(); } mainCam.SetGameCamera(cam); if (transitionTime > 0f) { if (linkedCamera is GameCamera25D) { mainCam.SnapToAttached(); Debug.LogWarning("Switching to a 2.5D camera (" + linkedCamera.name + ") must be instantaneous."); } else { mainCam.SmoothChange(transitionTime, moveMethod, timeCurve); if (willWait) { return(transitionTime); } } } else { cam.MoveCameraInstant(); mainCam.SnapToAttached(); if (linkedCamera is GameCameraAnimated && willWait) { return(defaultPauseTime); } } } } } } else { if (linkedCamera is GameCameraAnimated && willWait) { GameCameraAnimated animatedCamera = (GameCameraAnimated)linkedCamera; if (animatedCamera.isPlaying()) { return(defaultPauseTime); } else { isRunning = false; return(0f); } } else { isRunning = false; return(0f); } } return(0f); }