void OnParticleCollision(GameObject other) { ParticlePhysicsExtensions.GetCollisionEvents(ps, other, psCollisionEvents); ParticleMagic pm = other.gameObject.GetComponent <ParticleMagic>(); if (pm != null) { solidMagicCollision = true; solidMagicCollisionResetTime = .1f; ActivateOnCollision.Value()(); // // List<Vector3> collisionPoints = new List<Vector3>( psCollisionEvents.Count ); for (int i = 0; i < psCollisionEvents.Count; i++) { ParticleCollisionData pcd = new ParticleCollisionData(); pcd.pointOfCollision = psCollisionEvents[i].intersection; pcd.velocity = psCollisionEvents[i].velocity; if (myCollider.isTrigger) { ClipperTest ct = other.gameObject.GetComponent <ClipperTest>(); pcd.elementCollision = myMagic.GetElement(); ct.AddCollisionPoints(pcd); // print("ADDING TO OTHER CT"); } else { pcd.elementCollision = pm.GetElement(); collisionPoints.Add(pcd); } float markerLength = .2f; Debug.DrawLine(psCollisionEvents[i].intersection - Vector3.up * markerLength / 2, psCollisionEvents[i].intersection + Vector3.up * markerLength / 2, Color.blue); Debug.DrawLine(psCollisionEvents[i].intersection - Vector3.right * markerLength / 2, psCollisionEvents[i].intersection + Vector3.right * markerLength / 2, Color.blue); // print("ParticleCollision object " + psCollisionEvents[i].intersection ); } } }
void AddCollisionPoints(ParticleCollisionData pcd) { collisionPoints.Add(pcd); }