// Handles interactions with collideable objects in the world // Applies force to Rigidbodies void OnCollision(OpenCharacterController.CollisionInfo collisionInfo) { OpenCharacterController controller = collisionInfo.controller; if (controller == null || controller.collisionFlags == CollisionFlags.Below || controller.collisionFlags == CollisionFlags.Above) { return; } Rigidbody body = collisionInfo.rigidbody; if (body == null) { return; } body.AddForceAtPosition(m_CachedGroundVelocity * k_VelocityToForceScale, collisionInfo.point, ForceMode.Impulse); }
// Handles interactions with collideable objects in the world // Applies force to Rigidbodies. Also checks if the character lands on the top of a moving platform. void OnCollision(OpenCharacterController.CollisionInfo collisionInfo) { OpenCharacterController controller = collisionInfo.controller; CheckMovingPlatformCollision(collisionInfo.moveDirection, collisionInfo.normal, collisionInfo.collider.transform); if (controller == null || controller.collisionFlags == CollisionFlags.Below || controller.collisionFlags == CollisionFlags.Above) { return; } Rigidbody body = collisionInfo.rigidbody; if (body == null) { return; } body.AddForceAtPosition(m_CachedGroundVelocity * k_VelocityToForceScale, collisionInfo.point, ForceMode.Impulse); }