Ejemplo n.º 1
0
        protected override void OnGrabbed(HVRGrabArgs args)
        {
            //Debug.Log($"force grabbed!");
            base.OnGrabbed(args);

            if (_additionalGrabRoutine != null)
            {
                StopCoroutine(_additionalGrabRoutine);
            }

            IsForceGrabbing = true;
            if (GrabStyle == HVRForceGrabMode.GravityGloves)
            {
                StartCoroutine(ForceGrab(args.Grabbable));
            }
            else
            {
                CheckForceAnchor();
                StartCoroutine(ForcePull(args.Grabbable));
            }

            Grabbed.Invoke(this, args.Grabbable);
            args.Grabbable.Collided.AddListener(OnGrabbableCollided);
            args.Grabbable.Grabbed.AddListener(OnGrabbableGrabbed);

            if (SFXGrab)
            {
                SFXPlayer.Instance.PlaySFX(SFXGrab, transform.position);
            }
        }
Ejemplo n.º 2
0
 protected override void OnGrabbed(HVRGrabArgs args)
 {
     Debug.Log($"nocked");
     args.Cancel = true;
     Grabbed.Invoke(this, args.Grabbable);
     ForceRelease();
 }
 protected override void OnGrabbed(HVRGrabArgs args)
 {
     //Debug.Log($"OnGrabbed");
     if (!SocketContainer.TryAddGrabbable(args.Grabbable))
     {
         ForceRelease();
     }
 }
Ejemplo n.º 4
0
 protected override void OnGrabbed(HVRGrabArgs args)
 {
     base.OnGrabbed(args);
     if (ShotgunMagazine.TryAddBullet())
     {
         StartCoroutine(DropAndDestroy(args.Grabbable));
     }
     else
     {
         StartCoroutine(Drop(args.Grabbable));
     }
 }
Ejemplo n.º 5
0
        protected override void OnGrabbed(HVRGrabArgs args)
        {
            base.OnGrabbed(args);

            var grabbable = args.Grabbable;

            _previousParent            = grabbable.transform.parent;
            _previousScale             = grabbable.transform.localScale;
            grabbable.transform.parent = transform;

            grabbable.transform.localPosition = Vector3.zero;
            grabbable.transform.localRotation = Quaternion.identity;



            var socketable = grabbable.Socketable;

            _modelBounds = grabbable.ModelBounds;

            UpdateScale(grabbable);

            Vector3 offSet = Vector3.zero;

            if (socketable.SocketOrientation)
            {
                offSet = -GetPositionOffset(grabbable);
                var rotationOffset = GetRotationOffset(grabbable);
                var delta          = grabbable.transform.localRotation * Quaternion.Inverse(rotationOffset);
                grabbable.transform.localRotation *= delta;
                offSet = delta * offSet;
            }

            offSet.x *= grabbable.transform.localScale.x;
            offSet.y *= grabbable.transform.localScale.y;
            offSet.z *= grabbable.transform.localScale.z;

            grabbable.transform.localPosition += offSet;

            HandleRigidBodyGrab(grabbable);

            PlaySFX(socketable);

            if (args.RaiseEvents)
            {
                Grabbed.Invoke(this, grabbable);
            }
        }