コード例 #1
0
        // 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);
        }
コード例 #2
0
        // 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);
        }