示例#1
0
        private void TriggerUp(stExternalInteractData _externalInteractData)
        {
            //Debug.Log("Trigger Up : " + name + " " + _externalInteractData.HandType);
            if (isRequestedGrabMessage)
            {
                return;
            }

            bool isGrab = VRHandEventHandler.IsGrab(_externalInteractData.HandType, this);

            if (isGrab)
            {
                isRequestedGrabMessage = true;
                Vector3    pos      = Pivot.position;
                Quaternion rot      = Pivot.rotation;
                Vector3    velocity = VRInputManager.GetVelocity(_externalInteractData.HandType, VRInputManager.PositionType.CONTROLLER);

                if (m_bIsOnlyLocalObject)
                {
                    m_GrabData.SetUnGrabData(_externalInteractData.HandType, pos, rot, velocity, Time.time);
                    UnGrabSomething();
                }
                else
                {
                    //Debug.Log("Send UnGrab : " + name + " " + _externalInteractData.HandType);
                    MyNetworkManager.SendToServer_UnGrab(UID, _externalInteractData.HandType, pos, rot, velocity);
                }
            }
        }
示例#2
0
        private void TriggerDown(stExternalInteractData _externalInteractData)
        {
            Debug.Log("Trigger Down : " + name + " " + _externalInteractData.HandType);

            if (isRequestedGrabMessage)
            {
                return;
            }
            isRequestedGrabMessage = true;
            Transform  grabTm = VRHandEventHandler.GetHandGrabPivot(_externalInteractData.HandType);
            Vector3    pos    = grabTm.InverseTransformPoint(Pivot.position);
            Quaternion rot    = Quaternion.Inverse(grabTm.rotation) * Pivot.rotation;

            if (m_GrabData.AmIGrabbing && m_GrabData.HandType != _externalInteractData.HandType)
            {
                VRHandEventHandler.UnGrabInteractObject(m_GrabData.HandType, this);
            }

            if (m_bIsOnlyLocalObject)
            {
                m_GrabData.SetGrabData(MyNetworkManager.MyNetID, _externalInteractData.HandType, pos, rot, Time.time);
                GrabSomething();
            }
            else
            {
                //Debug.Log("Send Grab : " + name + " " + _externalInteractData.HandType);
                MyNetworkManager.SendToServer_Grab(UID, _externalInteractData.HandType, pos, rot);
            }
        }
示例#3
0
 public void SetGrabData(uint _id, VRHand.eHandType _handType, Vector3 _position, Quaternion _rotation, float _receiveTime)
 {
     RecordData();
     grabbedCount++;
     SetDefaultData(_id, _handType, _position, _rotation, _receiveTime);
     if (MyNetworkManager.IsMyID(GrabberID))
     {
         GrabHandTransform = VRHandEventHandler.GetHandGrabPivot(HandType);
     }
     else
     {
         GrabHandTransform = NetCharacterHandler.GetHandGrabPivot(GrabberID, HandType);
     }
 }