title: Unity collider shaking after hitting another collider
body: <p>I have a SMALL a problem. In Unity 3D 2020 Beta, I've put a player with a sphere collider on it and some cubes (walls) with box colliders. I've added a player controller script to the player object.</p>
  <p>I've put the camera above the plane where the player and the walls are on, and I've made that the player should rotate to face the mouse position. I used <code>rigidbody.AddForce</code> for movement in a <code>FixedUpdate</code> function.
  The player controller script is attached below:</p>
  <pre><code>using System.Collections;
  using System.Collections.Generic;
  using UnityEngine;
  
  public class PlayerController : MonoBehaviour
  {
       [Header(&quot;Keys&quot;)]
       public KeyCode forward;
       public KeyCode backward;
       public KeyCode left;
       public KeyCode right;
       public KeyCode fire;
       [Header(&quot;Health&quot;)]
       public int hitpoints = 3;
       [Header(&quot;Movement&quot;)]
       public float speed;
       public float turningSpeed;
       [Header(&quot;Shooting&quot;)]
       public GameObject bulletPrefab;
       public Transform bulletSpawner;
       public float bulletSpeed;
       public float reloadTime;
  
       private float currentReload;
       private Rigidbody rb;
       private Quaternion targetRotation;
       void Start()
       {
           rb = GetComponent&lt;Rigidbody&gt;();
           currentReload = reloadTime;
       }
  
  
  void LateUpdate()
  {
      if (hitpoints == 0)
          Die();
      // Rotation
      var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
      RaycastHit hit;
      if (Physics.Raycast(ray, out hit))
      { 
          targetRotation = Quaternion.LookRotation(hit.point - transform.position);
          Debug.DrawLine(transform.position, hit.point, Color.white);
      }
      transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, turningSpeed * Time.deltaTime);
      transform.eulerAngles = new Vector3(0, transform.rotation.eulerAngles.y, 0);
  
      currentReload += Time.deltaTime;
      // Shooting
      if (Input.GetKeyDown(fire) &amp;&amp; currentReload &gt;= reloadTime)
      {
          currentReload = 0f;
          GameObject bulletGO = Instantiate(bulletPrefab, bulletSpawner.position, transform.rotation);
          bulletGO.transform.position = bulletSpawner.position;
          Bullet bulletScript = bulletGO.GetComponent&lt;Bullet&gt;();
          bulletScript.speed = bulletSpeed;
          Destroy(bulletGO, 5f);
      }
  }
  void FixedUpdate()
  {
      // Movement
      if (Input.GetKey(forward))
      {
          rb.AddForce(Vector3.forward * speed, ForceMode.Force);
      }
      if (Input.GetKey(backward))
      {
          rb.AddForce(-Vector3.forward * speed, ForceMode.Force);
      }
      if (Input.GetKey(left))
      {
          rb.AddForce(Vector3.left * speed, ForceMode.Force);
      }
      if (Input.GetKey(right))
      {
          rb.AddForce(Vector3.right * speed, ForceMode.Force);
      }
      //transform.position = new Vector3(transform.position.x, 10, transform.position.z);
      // ON RIGIDBODY I HAVE CONSTRAINS:
      // POSITION: Y (thats why I commented the line above)
      // ROTATION: X, Z (topdown -&gt; so I want only rotation on Y)
  }
  
  private void Die()
  {
      Destroy(gameObject);
  }
  </code></pre>
  <p>}</p>
  <p>But the problem is when the player hits very hard a wall, the sphere collider starts shaking and the player does not look at the mouse position exactly (it is somewhere 10 degrees away most of the times - it depends on how hard do I hit the walls).</p>
  <p>I can record if it helps. If you want any information, feel free to ask! Any help will be appreciated! :)</p>