/* THIS CODE WILL BE ADDED TO THE BUILD TO INCREASE PERFORMANCE #region BuildInclusion * public void OnStart() * { * LerpCurves.SetCurve(ref Curve, _type); * } #endregion */ public override void ActionEffect() //Updated function of the dash. Moves the player during dash action { if (_dashing == true) { //THIS CODE WILL BE REMOVED TO THE BUILD TO INCREASE PERFORMANCE #region BuildExclusion if (_cameraData.FreeCameraCurveType != _lastType || Curve == null) { LerpCurves.SetCurve(ref Curve, _playerData.DashCurveType); _lastType = _playerData.DashCurveType; } #endregion //Apply lerp curve float t = _currentDashTime / _definedTime; t = Curve(t); _playerData.ActionController.Transf.position = Vector3.Lerp(_initialPosition, _endPosition, t); _currentDashTime += Time.fixedDeltaTime; if (Vector3.Distance(_playerData.ActionController.Transf.position, _endPosition) < 0.1f) //dash ends { ShowPlayer(); _combatSystem.AllowAttack(); _dashing = false; _playerData.ActionController.Rb.velocity = Vector3.zero; if (_isGrappling == false) { //APPLY THIs LINE FOR FAKE MOMENTUN AFTER AIR DASH //_playerData.ActionController.Rb.velocity = _playerData.ActionController.Transf.forward * _playerData.DashSpeed * 1.5f; _playerData.ActionController.Rb.useGravity = true; _currentDashTime = 0; _playerData.MovementAllowed = true; } if (CallbackFunctions != null) { CallbackFunctions(_playerData.ActionController.Anim); } } } else if (_dashAllowed == false) // timer that avoid the dash an amount of time between dashes { _currentDelayTime += Time.fixedDeltaTime; if (_currentDelayTime >= _playerData.TimeBetweenDashes) { _dashAllowed = true; _currentDelayTime = 0; } } }
/* THIS CODE WILL BE ADDED TO THE BUILD TO INCREASE PERFORMANCE #region BuildInclusion * public void OnStart() * { * LerpCurves.SetCurve(ref Curve, _type); * } #endregion */ //method which contains the behaviour of this input public override void ActionEffect() { //THIS CODE WILL BE REMOVED TO THE BUILD TO INCREASE PERFORMANCE #region BuildExclusion if (_cameraData.FreeCameraCurveType != _lastType || Curve == null) { LerpCurves.SetCurve(ref Curve, _cameraData.FreeCameraCurveType); _lastType = _cameraData.FreeCameraCurveType; } #endregion //Apply lerp curve float t = _lerp / _cameraData.LerpSpeedValue; t = Curve(t); _camSpeed = Mathf.Lerp(_camSpeed, _cameraData.FinalRotationSpeed, t); _lerp += Time.deltaTime; //Apply input rotations _cameraData.CameraPoint = Quaternion.AngleAxis(_inputVector.x * _camSpeed * Time.deltaTime, Vector3.up) * _cameraData.CameraPoint; _cameraData.Angle = _cameraData.CameraController.Transf.rotation.eulerAngles.x; if (_cameraData.Angle > 180) { _cameraData.Angle -= 360; } if ((_inputVector.y > 0 && _cameraData.Angle < 85f) || (_inputVector.y < 0 && _cameraData.Angle > -10f)) { _cameraData.CameraPoint = Quaternion.AngleAxis(_inputVector.y * _camSpeed * Time.deltaTime, _cameraData.CameraController.Transf.right) * _cameraData.CameraPoint; } //Calculate the camera position without physics Vector3 newPos = (_playerData.ActionController.Transf.position + (Vector3.up * _cameraData.CurrentOffsetY) + (_cameraData.CameraController.Transf.right * _cameraData.CurrentOffsetX)) + (_cameraData.CameraPoint * _cameraData.CurrentDistance); //Check collision _cameraData.CurrentDistance = _cameraData.CameraPhysicalCheck(_playerData.ActionController.Transf, newPos, _cameraData.CurrentDistance); //Camera position after collisions newPos = (_playerData.ActionController.Transf.position + (Vector3.up * _cameraData.OffsetY) + (_cameraData.CameraController.Transf.right * _cameraData.OffsetX)) + (_cameraData.CameraPoint * _cameraData.CurrentDistance); _cameraData.CameraController.Transf.position = newPos; _cameraData.CameraController.Transf.LookAt(_playerData.ActionController.Transf.position + (Vector3.up * _cameraData.CurrentOffsetY) + (_cameraData.CameraController.Transf.right * _cameraData.CurrentOffsetX)); CombatArea(); CameraSmooth(); }