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); //} } }
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); //} } }