Summary
This release addresses various fixes and improvements that were missed in the 3.0 release. Despite introducing some breaking changes, I decided to classify this as a minor release rather than version 4.0, as all the breaking changes pertain to the same systems as the 3.0 release.
FirstContact / ContactEnded System Overhaul:
Previously, the FirstContact
was only reported for Colliders
and not for CollisionObjects
. The system has now been split into two separate systems: one for Collider
pairs and one for CollisionObject
pairs.
- CollisionObjects:
- A
FirstContact
between twoCollisionObjects
is reported once anyCollider
of one contacts anyCollider
of the otherCollisionObject
. - The
ContactEnded()
function for theCollisionObject
is called once all contacts between all of theColliders
have ended.
- A
- Colliders:
- A
FirstContact
between twoColliders
is reported the first time they contact (no contact in the previous frame). - The
ColliderContactEnded()
function is called once the contact ends (contact in the previous frame but no contact in the current frame).
- A
Other Changes:
- Namespace Changes:
CollisionObject
moved to theCollisionSystem
namespace.
- Class Removals:
ContactEndedInformation
class removed.Contact
class removed.
- Function Parameter Changes:
ContactEnded(CollisionObject other)
function parameters changed.ColliderContactEnded(Collider self, Collider other)
function parameters changed.
- CollisionInformation Improvements:
CollisionInformation
now includes aFirstContact
member, reported only for the two involved CollisionObjects, separate from any FirstContact reporting between Colliders.- General improvements and cleanup of
CollisionInformation
, including new functions. - New functions for Exists, Find, and FindAll
CollisionPoints
. - New functions for finding Closest, Furthest, and Combined
CollisionPoint
.
- Collision Improvements:
- Functions for Exists, Find, and FindAll
CollisionPoints
added.
- Functions for Exists, Find, and FindAll
- CollisionPoints:
- GetClosest/Furthest/FacingTowards functions now skip invalid collision points
- Renaming:
GetAverageCollisionPoint()
renamed toGetCombinedCollisionPoint()
in multiple classes.
- ResolveCollision Update:
CollisionObject.ResolveCollision()
is now called for each generatedCollisionInformation
instead of receiving a list ofCollisionInformation
.
Merged Pull Requests
Full Changelog: v3.0.0...v3.1.0