// Update is called once per frame void LateUpdate() { //Moon and sun movement /* * //calculate moon or sun position * _unitsPassed += PlayerCharacter.transform.position.x - _lastPlayerCharacterXPosition; * _lastPlayerCharacterXPosition = PlayerCharacter.transform.position.x; * //AddScore(Mathf.FloorToInt(_unitsPassed / 4)); * _unitsPassed %= 4; * * float routeLength = EndPoint.transform.position.x - StartPoint.transform.position.x; * float routeDoneInPercents = (PlayerCharacter.transform.position.x - StartPoint.transform.position.x) / routeLength * 100; * //TextMeshRoute.SetText($"{routeDoneInPercents} %"); * * //Note: find better solution * float cameraWidth = MainCamera.ViewportToWorldPoint(new Vector3(1f, 1f, MainCamera.transform.position.z)).x * - MainCamera.ViewportToWorldPoint(new Vector3(0f, 1f, MainCamera.transform.position.z)).x; * //Debug.Log($"CameraWidth = {cameraWidth}"); * Moon.Offset = new Vector2( cameraWidth * routeDoneInPercents / 100, 0); */ if (_isNeedToRefreshCamera) { _currentRefreshTime += Time.deltaTime; bool isEnded = false; if (_currentRefreshTime >= _targetRefreshCameraTime) { _currentRefreshTime = _targetRefreshCameraTime; isEnded = true; } float refreshValue = _currentRefreshTime / _targetRefreshCameraTime; CinemachineFramingTransposer framTransposer = VirtCamera.GetCinemachineComponent <CinemachineFramingTransposer>(); framTransposer.m_ScreenX = Mathf.Lerp(_currentScreenXPos, _targetScreenXPos, refreshValue); framTransposer.m_LookaheadTime = Mathf.Lerp(_currentLookaheadTime, _targetLookaheadTime, refreshValue); if (isEnded) { framTransposer.m_ScreenY = _targetScreenY; _currentScreenY = _targetScreenY; _currentCameraStatus = _targetCameraStatus; _currentLookaheadTime = _targetLookaheadTime; _currentRefreshCameraTime = _targetRefreshCameraTime; _currentScreenXPos = _targetScreenXPos; _currentRefreshTime = 0f; _isNeedToRefreshCamera = false; if (_secondChanceRequested) { ActivateSecondChance(); } } } }
public void SetTargetCameraSettings(CameraStatusE targetStatus) { //set camera run status settings _targetCameraStatus = targetStatus; if (_targetCameraStatus == CameraStatusE.Run) { _targetLookaheadTime = CameraSettings.LookaheadTimeRun; _targetRefreshCameraTime = CameraSettings.RefreshTimeRun; _targetScreenXPos = CameraSettings.ScreenXPosRun; _targetScreenY = CameraSettings.ScreenYRun; } else if (_targetCameraStatus == CameraStatusE.Attack) { Debug.Log(_targetLookaheadTime); _targetLookaheadTime = CameraSettings.LookaheadTimeAttack; Debug.Log(_targetLookaheadTime); _targetRefreshCameraTime = CameraSettings.RefreshTimeAttack; _targetScreenXPos = CameraSettings.ScreenXPosAttack; _targetScreenY = CameraSettings.ScreenYAttack; } else if (_targetCameraStatus == CameraStatusE.Death) { _targetLookaheadTime = CameraSettings.LookaheadTimeDeath; _targetRefreshCameraTime = CameraSettings.RefreshTimeDeath; _targetScreenXPos = CameraSettings.ScreenXPosDeath; _targetScreenY = CameraSettings.ScreenYDeath; } else if (_targetCameraStatus == CameraStatusE.Center) { _targetLookaheadTime = CameraSettings.LookaheadTimeCenter; _targetRefreshCameraTime = CameraSettings.RefreshTimeCenter; _targetScreenXPos = CameraSettings.ScreenXPosCenter; _targetScreenY = CameraSettings.ScreenYCenter; } _isNeedToRefreshCamera = true; }