public void GenerateContactData() { if (_contactInfo == null) { return; } cpArbiter arb = (cpArbiter)_contactInfo; _preContactData = _contactData; _contactData = new CCPhysicsContactData(); for (int i = 0; i < _contactData.count && i < CCPhysicsContactData.POINT_MAX; ++i) { _contactData.points[i] = PhysicsHelper.cpVectToCCPoint(arb.GetPointA(i)); } _contactData.normal = _contactData.count > 0 ? PhysicsHelper.cpVectToCCPoint(arb.GetNormal()) : CCPoint.Zero; }