title: Can we detect when a rigid body collides using Physics.Simulate in unity
body: <pre><code>public void RunSimulation()
  {
          Physics.autoSimulation = false;
          simulatedBodies = FindObjectsOfType&lt;Rigidbody&gt;().Select(rb =&gt; new SimulatedBody(rb)).ToArray();
          striker.GetComponent&lt;Rigidbody&gt; ().AddForce (new Vector3 (200.0f, 0.0f, 200.0f));
  
          for (int i = 0; i &lt; maxIterations; i++)
          {
              Physics.Simulate(0.02f);
              //GET COLLISIONS HERE 
              if (simulatedBodies.All(body =&gt; body.rigidbody.IsSleeping()))
              {
                  print(i);
                  break;
              }
          }
          Physics.autoSimulation = true;
  }
  </code></pre>
  
  <p>I am trying to use physics.simulate in unity. According to unity documentation "<strong>simulation includes all the stages of collision detection, rigidbody and joints integration, and filing of the physics callbacks (contact, trigger and joints</strong>"
  I need to get at which iteration does my striker gameobject collides with other gameobject. If I user auto simulation, OnCollisionEnter works. However it doesn't work when I use Physics.Simulate it doesn't register. What am I doing wrong or how do I get when my object collides with other objects. </p>