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); } }
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(); } }
protected override void OnGrabbed(HVRGrabArgs args) { base.OnGrabbed(args); if (ShotgunMagazine.TryAddBullet()) { StartCoroutine(DropAndDestroy(args.Grabbable)); } else { StartCoroutine(Drop(args.Grabbable)); } }
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); } }