Ejemplo n.º 1
0
        override protected void OnCollisionStay(Collision collision)
        {
            base.OnCollisionStay(collision);


            if (itemObject.mObjectType == EObject_Type.ECommon)
            {
                if (/*collision.gameObject.layer == Hi5_Interaction_Const.ThumbTailLayer()
                    || */collision.gameObject.layer == Hi5_Interaction_Const.OtherFingerTailLayer()
                    /*|| collision.gameObject.layer == Hi5_Interaction_Const.PalmRigidbodyLayer()*/)
                {
                    if (itemObject.mstatemanager == null)
                    {
                        return;
                    }
                    // if (collision.gameObject.GetComponent<Hi5_Hand_Collider_Visible_Finger>())
                    {
                        //if (Hi5_Interaction_Const.TestChangeState)
                        {
                            if (itemObject.mstatemanager.State == E_Object_State.EStatic ||
                                (itemObject.mstatemanager.State == E_Object_State.EMove && itemObject.mstatemanager.GetMoveState().mMoveType == Hi5ObjectMoveType.EPlaneMove))
                            {
                                if (/*collision.gameObject.layer == Hi5_Interaction_Const.ThumbTailLayer() ||*/ collision.gameObject.layer == Hi5_Interaction_Const.OtherFingerTailLayer())
                                {
                                    if (collision.gameObject.GetComponent <Hi5_Hand_Collider_Visible_Thumb_Finger>() == null)
                                    {
                                        return;
                                    }
                                    Hi5_Hand_Visible_Finger finger = collision.gameObject.GetComponent <Hi5_Hand_Collider_Visible_Thumb_Finger>().mFinger;
                                    if (finger && (finger is Hi5_Hand_Visible_Thumb_Finger))
                                    {
                                        if (!(finger as Hi5_Hand_Visible_Thumb_Finger).IsMoveTowardHand())
                                        {
                                            Hi5_Hand_Visible_Hand handTemp = collision.gameObject.GetComponent <Hi5_Hand_Collider_Visible_Finger> ().mHand;
                                            itemObject.ChangeState(E_Object_State.EMove);
                                            if (itemObject.mstatemanager != null)
                                            {
                                                itemObject.mstatemanager.SetPlaneMove(collision);
                                            }
                                            {
                                                Hi5_Glove_Interaction_Object_Event_Data data = Hi5_Glove_Interaction_Object_Event_Data.Instance(itemObject.idObject,
                                                                                                                                                itemObject.mObjectType,
                                                                                                                                                handTemp.m_IsLeftHand ? EHandType.EHandLeft : EHandType.EHandRight,
                                                                                                                                                EEventObjectType.EMove);
                                                Hi5InteractionManager.Instance.GetMessage().DispenseMessage(Hi5_Glove_Interaction_Message.Hi5_MessageMessageKey.messageObjectEvent, (object)data, null);
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                }
                            }
                        }
                    }
                }
            }
        }
 public virtual void setFinger(Hi5_Hand_Visible_Hand hand,
                               Hi5_Hand_Visible_Finger finger,
                               Hi5_Glove_Finger_bone_Type finger_bone_Type,
                               float zMaxAngel,
                               float zMinAngel)
 {
     mHand           = hand;
     mFinger         = finger;
     mFingerBoneType = finger_bone_Type;
     mZMinAngel      = zMinAngel;
     mZMaxAngel      = zMaxAngel;
 }
Ejemplo n.º 3
0
 public virtual void setFinger(Hi5_Hand_Visible_Hand hand,
                               Hi5_Hand_Visible_Finger finger,
                               Hi5_Glove_Finger_bone_Type finger_bone_Type,
                               float zMaxAngel,
                               float zMinAngel)
 {
     mHand = hand;
     //if(finger == null)
     mFinger         = finger;
     mFingerBoneType = finger_bone_Type;
     mZMinAngel      = zMinAngel;
     mZMaxAngel      = zMaxAngel;
     isAttributeSet  = true;
 }
Ejemplo n.º 4
0
        private void AssignPNHandJoints(Transform handBase, string handPrefix, string handIn)
        {
            mFingers.Clear();
            Transform temp = handBase.Search(handPrefix + "Thumb1");

            m_ThumbFingerTransforms.Add(handBase.Search(handPrefix + "Thumb1"));
            m_ThumbFingerTransforms.Add(m_ThumbFingerTransforms[0].Find(handPrefix + "Thumb2"));
            m_ThumbFingerTransforms.Add(m_ThumbFingerTransforms[1].Find(handPrefix + "Thumb3"));
            m_ThumbFingerTransforms.Add(m_ThumbFingerTransforms[2].Find(handPrefix + "Thumb4"));
            Hi5_Hand_Visible_Finger tempFingerinteraction = temp.GetComponent <Hi5_Hand_Visible_Thumb_Finger>() as Hi5_Hand_Visible_Finger;

            if (tempFingerinteraction != null)
            {
                Hi5_Hand_Visible_Finger tempValue = tempFingerinteraction as Hi5_Hand_Visible_Finger;
                mFingers.Add(Hi5_Glove_Interaction_Finger_Type.EThumb, tempValue);
                tempFingerinteraction.AddChildNode(m_ThumbFingerTransforms, this);
                //tempFingerinteraction.SetHi5Message(mMessage);
            }

            temp = handBase.Search(handIn + "Index");
            m_IndexFingerTransforms.Add(handBase.Search(handPrefix + "Index1"));
            m_IndexFingerTransforms.Add(m_IndexFingerTransforms[0].Find(handPrefix + "Index2"));
            m_IndexFingerTransforms.Add(m_IndexFingerTransforms[1].Find(handPrefix + "Index3"));
            m_IndexFingerTransforms.Add(m_IndexFingerTransforms[2].Find(handPrefix + "Index4"));
            tempFingerinteraction = temp.GetComponent <Hi5_Hand_Visible_Finger>();
            if (tempFingerinteraction != null)
            {
                mFingers.Add(Hi5_Glove_Interaction_Finger_Type.EIndex, tempFingerinteraction);
                tempFingerinteraction.AddChildNode(m_IndexFingerTransforms, this);
                //tempFingerinteraction.SetHi5Message(mMessage);
            }

            temp = handBase.Search(handIn + "Middle");
            m_MiddleFingerTransforms.Add(handBase.Search(handPrefix + "Middle1"));
            m_MiddleFingerTransforms.Add(m_MiddleFingerTransforms[0].Find(handPrefix + "Middle2"));
            m_MiddleFingerTransforms.Add(m_MiddleFingerTransforms[1].Find(handPrefix + "Middle3"));
            m_MiddleFingerTransforms.Add(m_MiddleFingerTransforms[2].Find(handPrefix + "Middle4"));
            tempFingerinteraction = temp.GetComponent <Hi5_Hand_Visible_Finger>();
            if (tempFingerinteraction != null)
            {
                mFingers.Add(Hi5_Glove_Interaction_Finger_Type.EMiddle, tempFingerinteraction);
                tempFingerinteraction.AddChildNode(m_MiddleFingerTransforms, this);
                //tempFingerinteraction.SetHi5Message(mMessage);
            }

            temp = handBase.Search(handIn + "Ring");
            m_RingFingerTransforms.Add(handBase.Search(handPrefix + "Ring1"));
            m_RingFingerTransforms.Add(m_RingFingerTransforms[0].Find(handPrefix + "Ring2"));
            m_RingFingerTransforms.Add(m_RingFingerTransforms[1].Find(handPrefix + "Ring3"));
            m_RingFingerTransforms.Add(m_RingFingerTransforms[2].Find(handPrefix + "Ring4"));
            tempFingerinteraction = temp.GetComponent <Hi5_Hand_Visible_Finger>();
            if (tempFingerinteraction != null)
            {
                mFingers.Add(Hi5_Glove_Interaction_Finger_Type.ERing, tempFingerinteraction);
                tempFingerinteraction.AddChildNode(m_RingFingerTransforms, this);
            }

            temp = handBase.Search(handIn + "Pinky");
            m_PinkyFingerTransforms.Add(handBase.Search(handPrefix + "Pinky1"));
            m_PinkyFingerTransforms.Add(m_PinkyFingerTransforms[0].Find(handPrefix + "Pinky2"));
            m_PinkyFingerTransforms.Add(m_PinkyFingerTransforms[1].Find(handPrefix + "Pinky3"));
            m_PinkyFingerTransforms.Add(m_PinkyFingerTransforms[2].Find(handPrefix + "Pinky4"));
            tempFingerinteraction = temp.GetComponent <Hi5_Hand_Visible_Finger>();
            if (tempFingerinteraction != null)
            {
                mFingers.Add(Hi5_Glove_Interaction_Finger_Type.EPinky, tempFingerinteraction);
                tempFingerinteraction.AddChildNode(m_PinkyFingerTransforms, this);
            }
        }