void Pinch2Object(string messageKey, object param1, object param2, object param3, object param4)
        {
            if (messageKey.CompareTo(Hi5_MessageKey.messagePinchObject2) == 0)
            {
                List <int> objectIds            = param1 as List <int>;
                Hi5_Glove_Interaction_Hand hand = param2 as Hi5_Glove_Interaction_Hand;
                int objectId = (int)param3;
                if (mObjectDic.ContainsKey(objectId))
                {
                    //ruige 加入判断
                    Hi5_Glove_Interaction_Item pinchObject = mObjectDic[objectId];
                    if (pinchObject != null && pinchObject.mObjectType == EObject_Type.ECommon)
                    {
                        hand.AddPinch2Object(pinchObject.transform, hand.mVisibleHand.palm);

                        pinchObject.SetIsKinematic(true);
                        pinchObject.ChangeState(E_Object_State.EPinch);
                        Hi5_Object_State_Base state = pinchObject.mstatemanager.GetState(E_Object_State.EPinch);
                        if (state != null && (state is Hi5_Object_State_Pinch))
                        {
                            Hi5_Object_State_Pinch pinchState = state as Hi5_Object_State_Pinch;
                            if (hand.m_IsLeftHand)
                            {
                                pinchState.SetPinchHand(Hi5_Object_Pinch_Type.ELeft, hand);
                            }
                            else
                            {
                                pinchState.SetPinchHand(Hi5_Object_Pinch_Type.ERight, hand);
                            }
                        }
                    }
                }
            }
        }
        void FlyPinchObject(string messageKey, object param1, object param2, object param3, object param4)
        {
            if (messageKey.CompareTo(Hi5_MessageKey.messageFlyPinchObject) == 0)
            {
                List <int> objectIds            = param1 as List <int>;
                Hi5_Glove_Interaction_Hand hand = param2 as Hi5_Glove_Interaction_Hand;
                int objectId = (int)param3;

                if (mObjectDic.ContainsKey(objectId))
                {
                    // Debug.Log("FlyPinchObject");
                    Hi5_Glove_Interaction_Item pinchObject = mObjectDic[objectId];
                    if (pinchObject != null && pinchObject.mObjectType == EObject_Type.ECommon)
                    {
                        hand.AddPinchObject(pinchObject.transform, hand.mVisibleHand.palm);
                        pinchObject.SetIsKinematic(true);

                        //pinchObject.transform.position = hand.mPalm.transform.position;
                        pinchObject.ChangeState(E_Object_State.EPinch);
                        Hi5_Object_State_Base state = pinchObject.mstatemanager.GetState(E_Object_State.EPinch);
                        if (state != null && (state is Hi5_Object_State_Pinch))
                        {
                            Hi5_Object_State_Pinch pinchState = state as Hi5_Object_State_Pinch;
                            //pinchState.isTestRelease = true;
                            if (hand.m_IsLeftHand)
                            {
                                pinchState.SetPinchHand(Hi5_Object_Pinch_Type.ELeft, hand);
                            }
                            else
                            {
                                pinchState.SetPinchHand(Hi5_Object_Pinch_Type.ERight, hand);
                            }
                        }
                    }
                }
                //if (objectIds != null && objectIds.Count > 0 && mObjectDic.ContainsKey(objectIds[0]))
                //{
                //    Hi5_Glove_Interraction_Item pinchObject = mObjectDic[objectIds[0]];
                //    hand.AddPinchObject(pinchObject.transform);
                //    pinchObject.SetIsKinematic(true);
                //    pinchObject.ChangeState(E_Object_State.EPinch);
                //}
            }
        }
Exemple #3
0
        void PinchObject(string messageKey, object param1, object param2, object param3, object param4)
        {
            if (messageKey.CompareTo(Hi5_MessageKey.messagePinchObject) == 0)
            {
                List <int> objectIds            = param1 as List <int>;
                Hi5_Glove_Interaction_Hand hand = param2 as Hi5_Glove_Interaction_Hand;
                int objectId = (int)param3;
                if (mObjectDic.ContainsKey(objectId))
                {
                    Hi5_Glove_Interaction_Item pinchObject = mObjectDic[objectId];
                    hand.AddPinchObject(pinchObject.transform);
                    pinchObject.SetIsKinematic(true);

                    pinchObject.ChangeState(E_Object_State.EPinch);

                    Hi5_Object_State_Base state = pinchObject.mstatemanager.GetState(E_Object_State.EPinch);
                    if (state != null && (state is Hi5_Object_State_Pinch))
                    {
                        Hi5_Object_State_Pinch pinchState = state as Hi5_Object_State_Pinch;
                        if (hand.m_IsLeftHand)
                        {
                            pinchState.SetPinchHand(Hi5_Object_Pinch_Type.ELeft, hand);
                        }
                        else
                        {
                            pinchState.SetPinchHand(Hi5_Object_Pinch_Type.ERight, hand);
                        }
                    }
                }
                //if (objectIds != null && objectIds.Count > 0 && mObjectDic.ContainsKey(objectIds[0]))
                //{
                //    Hi5_Glove_Interraction_Item pinchObject = mObjectDic[objectIds[0]];
                //    hand.AddPinchObject(pinchObject.transform);
                //    pinchObject.SetIsKinematic(true);
                //    pinchObject.ChangeState(E_Object_State.EPinch);
                //}
            }
        }