// Update is called once per frame void FixedUpdate() { // Check Velocity > 0 or DIE if (Rb.velocity.sqrMagnitude < float.Epsilon) { ; // TODO: Player Dies } // Lean var leanH = -MaxLeanForce *MassModifier *Input.GetAxis("Horizontal"); var leanV = -MaxLeanForce *MassModifier *Input.GetAxis("Vertical"); if (InvertSideLean) { leanH *= -1; } if (InvertFwdLean) { leanV *= -1; } var forcePosn = transform.TransformPoint(new Vector3(0, 1, 0)); var forceDirn = transform.TransformDirection(new Vector3(0, 0, leanH)); var tilt = Mathf.Acos(Vector3.Dot(transform.TransformDirection(new Vector3(0, 0, 1)), Vector3.up)) - (Mathf.PI / 2.0f); if (false && Mathf.Abs(tilt) > (MaxLeanAngle * Mathf.PI / 180)) { Debug.Log("Tilt!!!" + (tilt * 180.0 / Mathf.PI).ToString("N3") + " > " + (MaxLeanAngle * Mathf.PI / 180)); Rb.AddRelativeTorque(new Vector3(-leanH, 0, leanV), LeanMode); // Lean Left/Right, Forward/Back } else { Rb.AddRelativeTorque(new Vector3(leanH, 0, leanV), LeanMode); // Lean Left/Right, Forward/Back } Rb.AddRelativeForce(new Vector3(-leanV, 0, leanH)); // Move Left/Right if (leanH != 0 || leanV != 0) { Debug.Log("Lean H: " + leanH.ToString("N3") + " , V: " + leanV.ToString("N3")); } // Brake CurrentBrake = MaxBrakeForce * Input.GetAxis("Brake"); Rb.drag = Mathf.Max(InitialDrag, CurrentBrake); if (CurrentBrake != 0) { Debug.Log("Brake: " + CurrentBrake.ToString("N3")); } }