public void XWTMN() { // Arrange if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { DeusaldPhysics2D.DeusaldPhysics2D.InitPhysics(InitSystemType.WindowsNative); } else { DeusaldPhysics2D.DeusaldPhysics2D.InitPhysics(InitSystemType.MacNative); } IPhysics2DControl physics2D = DeusaldPhysics2D.DeusaldPhysics2D.CreateNewPhysics(20, Vector2.Down); int collisionObjectAId = -1; int collisionObjectBId = -1; Vector2 collisionNormal = Vector2.Zero; physics2D.OnCollisionEnter += data => { collisionObjectAId = data.PhysicsObjectA.PhysicsObjectId; collisionObjectBId = data.PhysicsObjectB.PhysicsObjectId; collisionNormal = data.Normal; }; IPhysicsObject objOne = physics2D.CreatePhysicsObject(BodyType.Dynamic, Vector2.Zero, 0f); objOne.AddBoxCollider(1, 1); IPhysicsObject objTwo = physics2D.CreatePhysicsObject(BodyType.Static, new Vector2(0, -25f), 0f); objTwo.AddBoxCollider(1, 1); // Act for (int i = 0; i < 1000; ++i) { physics2D.Step(); } // Assert Assert.Multiple(() => { Assert.AreEqual(1, collisionObjectAId); Assert.AreEqual(2, collisionObjectBId); Assert.AreEqual(new Vector2(0, -1), collisionNormal); }); }
internal RaycastCallbackNative(IPhysics2DControl physics2DControl, Delegates.RayCastCallback callback, ushort collisionMask) { _Physics2DControl = physics2DControl; _Callback = callback; _CollisionMask = collisionMask; }
internal OverlapCallbackNative(IPhysics2DControl physics2DControl, Delegates.OverlapAreaCallback callback, ushort collisionMask) { _Physics2DControl = physics2DControl; _CollisionMask = collisionMask; _Callback = callback; }