예제 #1
0
 protected void internalRemoveTouchPointer(TouchPointer pointer)
 {
     pointer.Buttons &= ~Pointer.PointerButtonState.FirstButtonPressed;
     pointer.Buttons |= Pointer.PointerButtonState.FirstButtonUp;
     releasePointer(pointer);
     removePointer(pointer);
 }
예제 #2
0
 public TouchState( params TouchPointer [] pointers )
     : this()
 {
     Pointers = new TouchPointer [ pointers.Length ];
     for ( int i = 0; i < pointers.Length; i++ )
         Pointers [ i ] = pointers [ i ];
 }
 public override void OnPokeUpdated(TouchPointer touchPointer, SCPointEventData eventData)
 {
     base.OnPokeUpdated(touchPointer, eventData);
     if (targetObjectTransform != null)
     {
         targetObjectTransform.Rotate(Vector3.up * (rotateSpeed * Time.deltaTime));
     }
 }
예제 #4
0
 private void OnSessionEnd()
 {
     if (_disabledTouchPointer)
     {
         _disabledTouchPointer.enabled = true;
         _disabledTouchPointer         = null;
     }
 }
예제 #5
0
        private void OnSessionStart()
        {
            var touchPointer = CoreServices.InputSystem.DetectedInputSources.SelectMany((x) => x.Pointers).FirstOrDefault((x) => x.Controller is Microsoft.MixedReality.Toolkit.Input.UnityInput.UnityTouchController) as TouchPointer;

            if (touchPointer && touchPointer.enabled)
            {
                touchPointer.enabled  = false;
                _disabledTouchPointer = touchPointer;
            }
        }
예제 #6
0
        private TouchPointer internalReturnTouch(TouchPointer pointer)
        {
            var newPointer = touchPool.Get();

            newPointer.CopyFrom(pointer);
            pointer.Buttons  |= Pointer.PointerButtonState.FirstButtonDown | Pointer.PointerButtonState.FirstButtonPressed;
            newPointer.Flags |= Pointer.FLAG_RETURNED;
            addPointer(newPointer);
            pressPointer(newPointer);
            return(newPointer);
        }
    //Constructor////////////////////////////////////////////////////////////////
    public TouchableButton()
    {
        //Grab a pointer reference.
        if (pointer == null)
        {
            pointer = TouchPointer.getInstance();
        }

        //Setup the stopwatch.
        hoverTime = new System.Diagnostics.Stopwatch();
    }
        /// <summary>
        /// Searches through the list of active touches for the input with the matching  Pointer Id.
        /// </summary>
        /// <param name="pointerId">T</param>
        /// <param name="touch"></param>
        /// <returns><see cref="TouchPointer"/></returns>
        private bool TryGetTouchPointer(uint pointerId, out TouchPointer touch)
        {
            foreach (var activeTouch in activeTouches)
            {
                if (activeTouch.PointerId == pointerId)
                {
                    touch = activeTouch;
                    return(true);
                }
            }

            touch = null;
            return(false);
        }
        private void AddOrUpdateTouch(Touch touch, Ray ray)
        {
            foreach (var knownTouch in activeTouches)
            {
                if (knownTouch.TouchData.fingerId == touch.fingerId)
                {
                    knownTouch.Lifetime += Time.deltaTime;
                    return;
                }
            }

            if (activeTouches.Count == 0)
            {
                InputSystem.RaiseSourceDetected(this);
            }

            var newTouch = new TouchPointer($"Touch {touch.fingerId}", touch, ray, this);

            activeTouches.Add(newTouch);
            InputSystem.RaisePointerDown(newTouch, PointerAction);
            InputSystem.RaiseHoldStarted(this, HoldAction);
        }
예제 #10
0
 void Start()
 {
     touchPointer = GetComponent <TouchPointer>();
 }
예제 #11
0
 public virtual void OnPokeUp(TouchPointer touchPointer, SCPointEventData eventData)
 {
     AudioSystem.getInstance.PlayAudioOneShot(gameObject, PokeUpAudio);
     PokeUp.Invoke(touchPointer, eventData);
 }
예제 #12
0
 public virtual void OnPokeUpdated(TouchPointer touchPointer, SCPointEventData eventData)
 {
     PokeUpdated.Invoke(touchPointer, eventData);
 }