Ejemplo n.º 1
0
        void HandleNodeCollision(NodeCollisionEvent e)
        {
            // Get the other colliding body, make sure it is moving (has nonzero mass)
            RigidBody otherBody = e.OtherBody;

            if (otherBody.Mass > 0.0f)
            {
                // We do not need the physics components in the AnimatedModel's root scene node anymore
                Node.RemoveComponent <RigidBody>();
                Node.RemoveComponent <CollisionShape>();

                // Create RigidBody & CollisionShape components to bones
                CreateRagdollBone("Bip01_Pelvis", ShapeType.SHAPE_BOX, new Vector3(0.3f, 0.2f, 0.25f), new Vector3(0.0f, 0.0f, 0.0f),
                                  new Quaternion(0.0f, 0.0f, 0.0f));
                CreateRagdollBone("Bip01_Spine1", ShapeType.SHAPE_BOX, new Vector3(0.35f, 0.2f, 0.3f), new Vector3(0.15f, 0.0f, 0.0f),
                                  new Quaternion(0.0f, 0.0f, 0.0f));
                CreateRagdollBone("Bip01_L_Thigh", ShapeType.SHAPE_CAPSULE, new Vector3(0.175f, 0.45f, 0.175f), new Vector3(0.25f, 0.0f, 0.0f),
                                  new Quaternion(0.0f, 0.0f, 90.0f));
                CreateRagdollBone("Bip01_R_Thigh", ShapeType.SHAPE_CAPSULE, new Vector3(0.175f, 0.45f, 0.175f), new Vector3(0.25f, 0.0f, 0.0f),
                                  new Quaternion(0.0f, 0.0f, 90.0f));
                CreateRagdollBone("Bip01_L_Calf", ShapeType.SHAPE_CAPSULE, new Vector3(0.15f, 0.55f, 0.15f), new Vector3(0.25f, 0.0f, 0.0f),
                                  new Quaternion(0.0f, 0.0f, 90.0f));
                CreateRagdollBone("Bip01_R_Calf", ShapeType.SHAPE_CAPSULE, new Vector3(0.15f, 0.55f, 0.15f), new Vector3(0.25f, 0.0f, 0.0f),
                                  new Quaternion(0.0f, 0.0f, 90.0f));
                CreateRagdollBone("Bip01_Head", ShapeType.SHAPE_BOX, new Vector3(0.2f, 0.2f, 0.2f), new Vector3(0.1f, 0.0f, 0.0f),
                                  new Quaternion(0.0f, 0.0f, 0.0f));
                CreateRagdollBone("Bip01_L_UpperArm", ShapeType.SHAPE_CAPSULE, new Vector3(0.15f, 0.35f, 0.15f), new Vector3(0.1f, 0.0f, 0.0f),
                                  new Quaternion(0.0f, 0.0f, 90.0f));
                CreateRagdollBone("Bip01_R_UpperArm", ShapeType.SHAPE_CAPSULE, new Vector3(0.15f, 0.35f, 0.15f), new Vector3(0.1f, 0.0f, 0.0f),
                                  new Quaternion(0.0f, 0.0f, 90.0f));
                CreateRagdollBone("Bip01_L_Forearm", ShapeType.SHAPE_CAPSULE, new Vector3(0.125f, 0.4f, 0.125f), new Vector3(0.2f, 0.0f, 0.0f),
                                  new Quaternion(0.0f, 0.0f, 90.0f));
                CreateRagdollBone("Bip01_R_Forearm", ShapeType.SHAPE_CAPSULE, new Vector3(0.125f, 0.4f, 0.125f), new Vector3(0.2f, 0.0f, 0.0f),
                                  new Quaternion(0.0f, 0.0f, 90.0f));

                Vector3 back    = new Vector3(0f, 0f, -1f);
                Vector3 forward = new Vector3(0f, 0f, 1f);
                Vector3 left    = new Vector3(-1f, 0f, 0f);
                Vector3 down    = new Vector3(0f, -1f, 0f);
                Vector3 up      = new Vector3(0f, 1f, 0f);

                // Create Constraints between bones
                CreateRagdollConstraint("Bip01_L_Thigh", "Bip01_Pelvis", ConstraintType.CONSTRAINT_CONETWIST, back, forward,
                                        new Vector2(45.0f, 45.0f), Vector2.Zero);
                CreateRagdollConstraint("Bip01_R_Thigh", "Bip01_Pelvis", ConstraintType.CONSTRAINT_CONETWIST, back, forward,
                                        new Vector2(45.0f, 45.0f), Vector2.Zero);
                CreateRagdollConstraint("Bip01_L_Calf", "Bip01_L_Thigh", ConstraintType.CONSTRAINT_HINGE, back, back,
                                        new Vector2(90.0f, 0.0f), Vector2.Zero);
                CreateRagdollConstraint("Bip01_R_Calf", "Bip01_R_Thigh", ConstraintType.CONSTRAINT_HINGE, back, back,
                                        new Vector2(90.0f, 0.0f), Vector2.Zero);
                CreateRagdollConstraint("Bip01_Spine1", "Bip01_Pelvis", ConstraintType.CONSTRAINT_HINGE, forward, forward,
                                        new Vector2(45.0f, 0.0f), new Vector2(-10.0f, 0.0f));
                CreateRagdollConstraint("Bip01_Head", "Bip01_Spine1", ConstraintType.CONSTRAINT_CONETWIST, left, left,
                                        new Vector2(0.0f, 30.0f), Vector2.Zero);
                CreateRagdollConstraint("Bip01_L_UpperArm", "Bip01_Spine1", ConstraintType.CONSTRAINT_CONETWIST, down, up,
                                        new Vector2(45.0f, 45.0f), Vector2.Zero, false);
                CreateRagdollConstraint("Bip01_R_UpperArm", "Bip01_Spine1", ConstraintType.CONSTRAINT_CONETWIST, down, up,
                                        new Vector2(45.0f, 45.0f), Vector2.Zero, false);
                CreateRagdollConstraint("Bip01_L_Forearm", "Bip01_L_UpperArm", ConstraintType.CONSTRAINT_HINGE, back, back,
                                        new Vector2(90.0f, 0.0f), Vector2.Zero);
                CreateRagdollConstraint("Bip01_R_Forearm", "Bip01_R_UpperArm", ConstraintType.CONSTRAINT_HINGE, back, back,
                                        new Vector2(90.0f, 0.0f), Vector2.Zero);

                // Disable keyframe animation from all bones so that they will not interfere with the ragdoll
                AnimatedModel model = GetComponent <AnimatedModel>();

                Skeleton skeleton = model.Skeleton;
                for (uint i = 0; i < skeleton.GetNumBones(); ++i)
                {
                    skeleton.GetBone(i).Animated = false;
                }

                // Finally remove self from the scene node. Note that this must be the last operation performed in the function
                Remove();
            }
        }
Ejemplo n.º 2
0
        void HandleNodeCollision(NodeCollisionEvent e)
        {
            // Get the other colliding body, make sure it is moving (has nonzero mass)
            RigidBody otherBody = e.OtherBody;

            if (otherBody.Mass > 0.0f)
            {
                // We do not need the physics components in the AnimatedModel's root scene node anymore
                Node.RemoveComponent<RigidBody>();
                Node.RemoveComponent<CollisionShape>();

                // Create RigidBody & CollisionShape components to bones
                CreateRagdollBone("Bip01_Pelvis", ShapeType.SHAPE_BOX, new Vector3(0.3f, 0.2f, 0.25f), new Vector3(0.0f, 0.0f, 0.0f),
                    new Quaternion(0.0f, 0.0f, 0.0f));
                CreateRagdollBone("Bip01_Spine1", ShapeType.SHAPE_BOX, new Vector3(0.35f, 0.2f, 0.3f), new Vector3(0.15f, 0.0f, 0.0f),
                    new Quaternion(0.0f, 0.0f, 0.0f));
                CreateRagdollBone("Bip01_L_Thigh", ShapeType.SHAPE_CAPSULE, new Vector3(0.175f, 0.45f, 0.175f), new Vector3(0.25f, 0.0f, 0.0f),
                    new Quaternion(0.0f, 0.0f, 90.0f));
                CreateRagdollBone("Bip01_R_Thigh", ShapeType.SHAPE_CAPSULE, new Vector3(0.175f, 0.45f, 0.175f), new Vector3(0.25f, 0.0f, 0.0f),
                    new Quaternion(0.0f, 0.0f, 90.0f));
                CreateRagdollBone("Bip01_L_Calf", ShapeType.SHAPE_CAPSULE, new Vector3(0.15f, 0.55f, 0.15f), new Vector3(0.25f, 0.0f, 0.0f),
                    new Quaternion(0.0f, 0.0f, 90.0f));
                CreateRagdollBone("Bip01_R_Calf", ShapeType.SHAPE_CAPSULE, new Vector3(0.15f, 0.55f, 0.15f), new Vector3(0.25f, 0.0f, 0.0f),
                    new Quaternion(0.0f, 0.0f, 90.0f));
                CreateRagdollBone("Bip01_Head", ShapeType.SHAPE_BOX, new Vector3(0.2f, 0.2f, 0.2f), new Vector3(0.1f, 0.0f, 0.0f),
                    new Quaternion(0.0f, 0.0f, 0.0f));
                CreateRagdollBone("Bip01_L_UpperArm", ShapeType.SHAPE_CAPSULE, new Vector3(0.15f, 0.35f, 0.15f), new Vector3(0.1f, 0.0f, 0.0f),
                    new Quaternion(0.0f, 0.0f, 90.0f));
                CreateRagdollBone("Bip01_R_UpperArm", ShapeType.SHAPE_CAPSULE, new Vector3(0.15f, 0.35f, 0.15f), new Vector3(0.1f, 0.0f, 0.0f),
                    new Quaternion(0.0f, 0.0f, 90.0f));
                CreateRagdollBone("Bip01_L_Forearm", ShapeType.SHAPE_CAPSULE, new Vector3(0.125f, 0.4f, 0.125f), new Vector3(0.2f, 0.0f, 0.0f),
                    new Quaternion(0.0f, 0.0f, 90.0f));
                CreateRagdollBone("Bip01_R_Forearm", ShapeType.SHAPE_CAPSULE, new Vector3(0.125f, 0.4f, 0.125f), new Vector3(0.2f, 0.0f, 0.0f),
                    new Quaternion(0.0f, 0.0f, 90.0f));

                Vector3 back = new Vector3(0f, 0f, -1f);
                Vector3 forward = new Vector3(0f, 0f, 1f);
                Vector3 left = new Vector3(-1f, 0f, 0f);
                Vector3 down = new Vector3(0f, -1f, 0f);
                Vector3 up = new Vector3(0f, 1f, 0f);

                // Create Constraints between bones
                CreateRagdollConstraint("Bip01_L_Thigh", "Bip01_Pelvis", ConstraintType.CONSTRAINT_CONETWIST, back, forward,
                    new Vector2(45.0f, 45.0f), Vector2.Zero);
                CreateRagdollConstraint("Bip01_R_Thigh", "Bip01_Pelvis", ConstraintType.CONSTRAINT_CONETWIST, back, forward,
                    new Vector2(45.0f, 45.0f), Vector2.Zero);
                CreateRagdollConstraint("Bip01_L_Calf", "Bip01_L_Thigh", ConstraintType.CONSTRAINT_HINGE, back, back,
                    new Vector2(90.0f, 0.0f), Vector2.Zero);
                CreateRagdollConstraint("Bip01_R_Calf", "Bip01_R_Thigh", ConstraintType.CONSTRAINT_HINGE, back, back,
                    new Vector2(90.0f, 0.0f), Vector2.Zero);
                CreateRagdollConstraint("Bip01_Spine1", "Bip01_Pelvis", ConstraintType.CONSTRAINT_HINGE, forward, forward,
                    new Vector2(45.0f, 0.0f), new Vector2(-10.0f, 0.0f));
                CreateRagdollConstraint("Bip01_Head", "Bip01_Spine1", ConstraintType.CONSTRAINT_CONETWIST, left, left,
                    new Vector2(0.0f, 30.0f), Vector2.Zero);
                CreateRagdollConstraint("Bip01_L_UpperArm", "Bip01_Spine1", ConstraintType.CONSTRAINT_CONETWIST, down, up,
                    new Vector2(45.0f, 45.0f), Vector2.Zero, false);
                CreateRagdollConstraint("Bip01_R_UpperArm", "Bip01_Spine1", ConstraintType.CONSTRAINT_CONETWIST, down, up,
                    new Vector2(45.0f, 45.0f), Vector2.Zero, false);
                CreateRagdollConstraint("Bip01_L_Forearm", "Bip01_L_UpperArm", ConstraintType.CONSTRAINT_HINGE, back, back,
                    new Vector2(90.0f, 0.0f), Vector2.Zero);
                CreateRagdollConstraint("Bip01_R_Forearm", "Bip01_R_UpperArm", ConstraintType.CONSTRAINT_HINGE, back, back,
                    new Vector2(90.0f, 0.0f), Vector2.Zero);

                // Disable keyframe animation from all bones so that they will not interfere with the ragdoll
                AnimatedModel model = GetComponent<AnimatedModel>();

                Skeleton skeleton = model.Skeleton;
                for (uint i = 0; i < skeleton.GetNumBones(); ++i)
                {
                    skeleton.GetBone(i).Animated = false;
                }

                // Finally remove self from the scene node. Note that this must be the last operation performed in the function
                Remove();
            }
        }
        void nodeCollisionHandler(CollisionNodeToggler hitNode, Collider colliderObj, Collision collisionObj, ControllerColliderHit cchit, NodeCollisionEvent evt)
        {
            if (sendMessage)
            {
                // Inform any listening components that collision entry occured.
                switch (evt)
                {
                case NodeCollisionEvent.OnMouseEnter:
                    SendMessage("OnComponentMouseEnter", new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit), SendMessageOptions.DontRequireReceiver);
                    break;

                case NodeCollisionEvent.OnMouseOver:
                    SendMessage("OnComponentMouseOver", new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit), SendMessageOptions.DontRequireReceiver);
                    break;

                case NodeCollisionEvent.OnMouseExit:
                    SendMessage("OnComponentMouseExit", new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit), SendMessageOptions.DontRequireReceiver);
                    break;

                case NodeCollisionEvent.OnMouseDown:
                    SendMessage("OnComponentMouseDown", new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit), SendMessageOptions.DontRequireReceiver);
                    break;

                case NodeCollisionEvent.OnMouseUp:
                    SendMessage("OnComponentMouseUp", new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit), SendMessageOptions.DontRequireReceiver);
                    break;

                case NodeCollisionEvent.OnMouseUpAsButton:
                    SendMessage("OnComponentMouseUpAsButton", new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit), SendMessageOptions.DontRequireReceiver);
                    break;

                case NodeCollisionEvent.OnMouseDrag:
                    SendMessage("OnComponentMouseDrag", new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit), SendMessageOptions.DontRequireReceiver);
                    break;

                case NodeCollisionEvent.OnTriggerEnter:
                    SendMessage("OnComponentTriggerEnter", new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit), SendMessageOptions.DontRequireReceiver);
                    break;

                case NodeCollisionEvent.OnTriggerExit:
                    SendMessage("OnComponentTriggerExit", new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit), SendMessageOptions.DontRequireReceiver);
                    break;

                case NodeCollisionEvent.OnTriggerStay:
                    SendMessage("OnComponentTriggerStay", new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit), SendMessageOptions.DontRequireReceiver);
                    break;

                case NodeCollisionEvent.OnCollisionEnter:
                    SendMessage("OnComponentCollisionEnter", new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit), SendMessageOptions.DontRequireReceiver);
                    break;

                case NodeCollisionEvent.OnCollisionExit:
                    SendMessage("OnComponentCollisionExit", new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit), SendMessageOptions.DontRequireReceiver);
                    break;

                case NodeCollisionEvent.OnCollisionStay:
                    SendMessage("OnComponentCollisionStay", new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit), SendMessageOptions.DontRequireReceiver);
                    break;

                case NodeCollisionEvent.OnControllerColliderHit:
                    SendMessage("OnComponentControllerColliderHit", new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit), SendMessageOptions.DontRequireReceiver);
                    break;
                }
            }
            //else
            {
                switch (evt)
                {
                case NodeCollisionEvent.OnMouseEnter:
                    OnComponentMouseEnter(new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit));
                    break;

                case NodeCollisionEvent.OnMouseOver:
                    OnComponentMouseOver(new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit));
                    break;

                case NodeCollisionEvent.OnMouseExit:
                    OnComponentMouseExit(new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit));
                    break;

                case NodeCollisionEvent.OnMouseDown:
                    OnComponentMouseDown(new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit));
                    break;

                case NodeCollisionEvent.OnMouseUp:
                    OnComponentMouseUp(new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit));
                    break;

                case NodeCollisionEvent.OnMouseUpAsButton:
                    OnComponentMouseUpAsButton(new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit));
                    break;

                case NodeCollisionEvent.OnMouseDrag:
                    OnComponentMouseDrag(new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit));
                    break;

                case NodeCollisionEvent.OnTriggerEnter:
                    OnComponentTriggerEnter(new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit));
                    break;

                case NodeCollisionEvent.OnTriggerExit:
                    OnComponentTriggerExit(new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit));
                    break;

                case NodeCollisionEvent.OnTriggerStay:
                    OnComponentTriggerStay(new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit));
                    break;

                case NodeCollisionEvent.OnCollisionEnter:
                    OnComponentCollisionEnter(new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit));
                    break;

                case NodeCollisionEvent.OnCollisionExit:
                    OnComponentCollisionExit(new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit));
                    break;

                case NodeCollisionEvent.OnCollisionStay:
                    OnComponentCollisionStay(new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit));
                    break;

                case NodeCollisionEvent.OnControllerColliderHit:
                    OnComponentControllerColliderHit(new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit));
                    break;
                }
            }
        }
        void nodeCollisionHandler(CollisionNodeToggler hitNode, Collider colliderObj, Collision collisionObj, ControllerColliderHit cchit, NodeCollisionEvent evt)
        {
            if (sendMessage)
            {
                // Inform any listening components that collision entry occured.
                switch (evt)
                {
                    case NodeCollisionEvent.OnMouseEnter:
                        SendMessage("OnComponentMouseEnter", new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit), SendMessageOptions.DontRequireReceiver);
                        break;

                    case NodeCollisionEvent.OnMouseOver:
                        SendMessage("OnComponentMouseOver", new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit), SendMessageOptions.DontRequireReceiver);
                        break;

                    case NodeCollisionEvent.OnMouseExit:
                        SendMessage("OnComponentMouseExit", new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit), SendMessageOptions.DontRequireReceiver);
                        break;

                    case NodeCollisionEvent.OnMouseDown:
                        SendMessage("OnComponentMouseDown", new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit), SendMessageOptions.DontRequireReceiver);
                        break;

                    case NodeCollisionEvent.OnMouseUp:
                        SendMessage("OnComponentMouseUp", new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit), SendMessageOptions.DontRequireReceiver);
                        break;

                    case NodeCollisionEvent.OnMouseUpAsButton:
                        SendMessage("OnComponentMouseUpAsButton", new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit), SendMessageOptions.DontRequireReceiver);
                        break;

                    case NodeCollisionEvent.OnMouseDrag:
                        SendMessage("OnComponentMouseDrag", new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit), SendMessageOptions.DontRequireReceiver);
                        break;

                    case NodeCollisionEvent.OnTriggerEnter:
                        SendMessage("OnComponentTriggerEnter", new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit), SendMessageOptions.DontRequireReceiver);
                        break;

                    case NodeCollisionEvent.OnTriggerExit:
                        SendMessage("OnComponentTriggerExit", new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit), SendMessageOptions.DontRequireReceiver);
                        break;

                    case NodeCollisionEvent.OnTriggerStay:
                        SendMessage("OnComponentTriggerStay", new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit), SendMessageOptions.DontRequireReceiver);
                        break;

                    case NodeCollisionEvent.OnCollisionEnter:
                        SendMessage("OnComponentCollisionEnter", new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit), SendMessageOptions.DontRequireReceiver);
                        break;

                    case NodeCollisionEvent.OnCollisionExit:
                        SendMessage("OnComponentCollisionExit", new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit), SendMessageOptions.DontRequireReceiver);
                        break;

                    case NodeCollisionEvent.OnCollisionStay:
                        SendMessage("OnComponentCollisionStay", new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit), SendMessageOptions.DontRequireReceiver);
                        break;

                    case NodeCollisionEvent.OnControllerColliderHit:
                        SendMessage("OnComponentControllerColliderHit", new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit), SendMessageOptions.DontRequireReceiver);
                        break;
                }
            }
            //else
            {
                switch (evt)
                {
                    case NodeCollisionEvent.OnMouseEnter:
                        OnComponentMouseEnter( new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit));
                        break;

                    case NodeCollisionEvent.OnMouseOver:
                        OnComponentMouseOver( new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit));
                        break;

                    case NodeCollisionEvent.OnMouseExit:
                        OnComponentMouseExit( new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit));
                        break;

                    case NodeCollisionEvent.OnMouseDown:
                        OnComponentMouseDown( new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit));
                        break;

                    case NodeCollisionEvent.OnMouseUp:
                        OnComponentMouseUp( new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit));
                        break;

                    case NodeCollisionEvent.OnMouseUpAsButton:
                        OnComponentMouseUpAsButton( new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit));
                        break;

                    case NodeCollisionEvent.OnMouseDrag:
                        OnComponentMouseDrag( new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit));
                        break;

                    case NodeCollisionEvent.OnTriggerEnter:
                        OnComponentTriggerEnter( new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit));
                        break;

                    case NodeCollisionEvent.OnTriggerExit:
                        OnComponentTriggerExit( new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit));
                        break;

                    case NodeCollisionEvent.OnTriggerStay:
                        OnComponentTriggerStay( new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit));
                        break;

                    case NodeCollisionEvent.OnCollisionEnter:
                        OnComponentCollisionEnter( new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit));
                        break;

                    case NodeCollisionEvent.OnCollisionExit:
                        OnComponentCollisionExit( new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit));
                        break;

                    case NodeCollisionEvent.OnCollisionStay:
                        OnComponentCollisionStay( new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit));
                        break;

                    case NodeCollisionEvent.OnControllerColliderHit:
                        OnComponentControllerColliderHit( new CollisionNodeInfo(hitNode, colliderObj, collisionObj, cchit));
                        break;
                }
            }
        }