/// <inheritdoc />
        protected internal override void OnStart()
        {
            GestureTouchesUtility.LockFingerId(fingerId1);
            GestureTouchesUtility.LockFingerId(fingerId2);

            if (GestureTouchesUtility.RaycastFromCamera(startPosition1, recognizer.arSessionOrigin, out var hit1))
            {
                var gameObject         = hit1.transform.gameObject;
                var interactableObject = gameObject.GetComponentInParent <ARBaseGestureInteractable>();
                if (interactableObject != null)
                {
                    targetObject = interactableObject.gameObject;
                }
            }
            else if (GestureTouchesUtility.RaycastFromCamera(startPosition2, recognizer.arSessionOrigin, out var hit2))
            {
                var gameObject         = hit2.transform.gameObject;
                var interactableObject = gameObject.GetComponentInParent <ARBaseGestureInteractable>();
                if (interactableObject != null)
                {
                    targetObject = interactableObject.gameObject;
                }
            }

            GestureTouchesUtility.TryFindTouch(fingerId1, out var touch1);
            GestureTouchesUtility.TryFindTouch(fingerId2, out var touch2);
            position = (touch1.position + touch2.position) / 2;
        }
        /// <summary>
        /// Action to be performed when this gesture is started.
        /// </summary>
        protected internal override void OnStart()
        {
            GestureTouchesUtility.LockFingerId(FingerId1);
            GestureTouchesUtility.LockFingerId(FingerId2);

            RaycastHit hit1;
            RaycastHit hit2;

            if (GestureTouchesUtility.RaycastFromCamera(StartPosition1, out hit1))
            {
                var gameObject = hit1.transform.gameObject;
                if (gameObject != null && gameObject.GetComponentInParent <ARGestureInteractor>() != null)
                {
                    TargetObject = gameObject.GetComponentInParent <ARGestureInteractor>().gameObject;
                }
            }
            else if (GestureTouchesUtility.RaycastFromCamera(StartPosition2, out hit2))
            {
                var gameObject = hit2.transform.gameObject;
                if (gameObject != null && gameObject.GetComponentInParent <ARGestureInteractor>() != null)
                {
                    TargetObject = gameObject.GetComponentInParent <ARGestureInteractor>().gameObject;
                }
            }

            Touch touch1;

            GestureTouchesUtility.TryFindTouch(FingerId1, out touch1);
            Touch touch2;

            GestureTouchesUtility.TryFindTouch(FingerId2, out touch2);
            Position = (touch1.position + touch2.position) / 2;
        }
예제 #3
0
        /// <inheritdoc />
        protected internal override void OnStart()
        {
            GestureTouchesUtility.LockFingerId(fingerId1);
            GestureTouchesUtility.LockFingerId(fingerId2);

            GestureTouchesUtility.TryFindTouch(fingerId1, out var touch1);
            GestureTouchesUtility.TryFindTouch(fingerId2, out var touch2);
            m_PreviousPosition1 = touch1.position;
            m_PreviousPosition2 = touch2.position;
        }
예제 #4
0
        /// <inheritdoc />
        protected internal override void OnStart()
        {
            GestureTouchesUtility.LockFingerId(fingerId);

            if (GestureTouchesUtility.RaycastFromCamera(startPosition, out var hit))
            {
                var gameObject = hit.transform.gameObject;
                if (gameObject != null)
                {
                    var interactableObject = gameObject.GetComponentInParent <ARBaseGestureInteractable>();
                    if (interactableObject != null)
                    {
                        TargetObject = interactableObject.gameObject;
                    }
                }
            }

            GestureTouchesUtility.TryFindTouch(fingerId, out var touch);
            position = touch.position;
        }
예제 #5
0
 /// <summary>
 /// Action to be performed when this gesture is started.
 /// </summary>
 protected internal override void OnStart()
 {
     GestureTouchesUtility.LockFingerId(FingerId1);
     GestureTouchesUtility.LockFingerId(FingerId2);
 }