19-11-2020, 02:24 PM
(This post was last modified: 19-11-2020, 02:35 PM by canerozdemir.)
(19-11-2020, 02:14 PM)josemendez Wrote: For particle-particle collisions, you should use OnParticleCollision event ,instead of the OnCollision event as explained in the docs:
http://obi.virtualmethodstudio.com/tutor...sions.html
Oh, I missed that one. However, the outcome is still the same. FPS drop happens and the game becomes unplayable. This is the code:
Code:
public class RopeCollision : MonoBehaviour
{
private ObiSolver _solver;
private ObiSolver.ObiCollisionEventArgs _collisionEvent;
private void Awake()
{
_solver = GetComponent<ObiSolver>();
}
private void OnEnable ()
{
_solver.OnParticleCollision += Solver_OnParticleCollision;
}
private void OnDisable()
{
_solver.OnParticleCollision -= Solver_OnParticleCollision;
}
private void Solver_OnParticleCollision (object sender, ObiSolver.ObiCollisionEventArgs e)
{
var world = ObiColliderWorld.GetInstance();
foreach (var contact in e.contacts)
{
// this one is an actual collision:
if (contact.distance < 0.01)
{
var theCollider = world.colliderHandles[contact.other].owner;
if (theCollider)
{
print(theCollider.name);
}
}
}
}
}