Beispiel #1
0
        public IEnumerator TestGrabEvents()
        {
            var grabReceiver = interactable.AddReceiver <InteractableOnGrabReceiver>();

            interactable.gameObject.AddComponent <NearInteractionGrabbable>();
            bool didGrab = false;

            grabReceiver.OnGrab.AddListener(() => didGrab = true);
            bool didRelease = false;

            grabReceiver.OnRelease.AddListener(() => didRelease = true);

            var testHand = new TestHand(Handedness.Right);

            yield return(testHand.Show(interactable.transform.position));

            yield return(testHand.SetGesture(ArticulatedHandPose.GestureId.Pinch));

            yield return(testHand.SetGesture(ArticulatedHandPose.GestureId.Open));

            yield return(testHand.Hide());

            Assert.True(didGrab, "Did not receive grab event");
            Assert.True(didRelease, "Did not receive release event");
            GameObject.Destroy(cube);
            yield return(null);
        }
Beispiel #2
0
    private void Start()
    {
        // Get variables
        TTP          = GetComponent <TapToPlace>();
        interactable = GetComponent <Interactable>();
        focusSelect  = GetComponent <FocusSelect>();

        // When placing ends disable TapToPlace to avoid user being able to move object by clicking it
        TTP.OnPlacingStopped.AddListener(() => TTP.enabled = false);

        // Link focusSelect interaction to interactable.onFocuseReceiver
        // Enable/Disable loading bar on focus
        InteractableOnFocusReceiver focusRec = interactable.AddReceiver <InteractableOnFocusReceiver>();

        focusRec.OnFocusOn.AddListener(focusSelect.StartFocusInteraction);
        focusRec.OnFocusOn.AddListener(() => {
            if (!detailsAnim.gameObject.activeSelf)
            {
                circularLoading.SetActive(true);
            }
        });

        focusRec.OnFocusOff.AddListener(focusSelect.StopFocusInteraction);
        focusRec.OnFocusOff.AddListener(() => circularLoading.SetActive(false));

        // Open details and disable loading bar when focus interaction is complete
        focusSelect.OnHoldFocus.AddListener(OpenDetails);
        focusSelect.OnHoldFocus.AddListener(() => circularLoading.SetActive(false));
    }