/// <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()
 {
     if (GestureTouchesUtility.RaycastFromCamera(startPosition, recognizer.arSessionOrigin, out var hit))
     {
         var gameObject = hit.transform.gameObject;
         if (gameObject != null)
         {
             var interactableObject = gameObject.GetComponentInParent <ARBaseGestureInteractable>();
             if (interactableObject != null)
             {
                 targetObject = interactableObject.gameObject;
             }
         }
     }
 }
示例#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()
        {
            RaycastHit hit;

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