Inheritance: MonoBehaviour
Exemple #1
0
    protected void Start()
    {
        m_Camera = Camera.main;

        m_TouchHandler = new TouchHandler(this);
        m_TouchHandler.KeepTouches = true;
    }
 public void AddHandler(TouchHandler touchHandler)
 {
     if (touchHandler != null && !m_Handlers.Contains(touchHandler))
     {
         m_Handlers.Add(touchHandler);
     }
 }
Exemple #3
0
 void Start()
 {
     //initialization code
     panInput = 0;
     orbitInput = 0;
     zoomInput = 0;
     singleTouch = new TouchHandler();
     multiTouch = new MultitouchHandler(mobile.minimumPinchDelta, mobile.minimumTurnAngle);
 }
        protected override void OnDisable()
        {
            if (_isInitialized)
            {
                _handler.Dispose();
                _handler = null;
            }

            base.OnDisable();
        }
        protected override void OnEnable()
        {
            if (Application.platform != RuntimePlatform.LinuxPlayer &&
                Application.platform != RuntimePlatform.LinuxEditor)
            {
                enabled = false;
                return;
            }

            base.OnEnable();

            _queue.Clear();
            _handler = new TouchHandler();
            _isInitialized = true;
        }
Exemple #6
0
    void Start()
    {
        Debug.Log("start");

        int i = 0;
        foreach (GameObject go in characters)
        {
            GameObject test = GameObject.Instantiate(go, characterPoints[i].transform.position, characterPoints[i].transform.rotation) as GameObject;

            bla[i] = test as GameObject;

            i++;
        }

        handler = GetComponent<TouchHandler>();
    }
        public IEnumerator TestHandInputOnRuntimeAssembled()
        {
            // Load interactable
            Interactable interactable;
            Transform    translateTargetObject;

            AssembleInteractableButton(
                out interactable,
                out translateTargetObject);

            interactable.transform.position    = new Vector3(0.025f, 0.05f, 0.65f);
            interactable.transform.eulerAngles = new Vector3(-90f, 0f, 0f);

            // Subscribe to interactable's on click so we know the click went through
            bool wasClicked = false;

            interactable.OnClick.AddListener(() => { wasClicked = true; });

            Vector3 targetStartPosition = translateTargetObject.transform.localPosition;

            yield return(null);

            // Add a touchable and configure for touch events
            NearInteractionTouchable touchable = interactable.gameObject.AddComponent <NearInteractionTouchable>();

            touchable.EventsToReceive = TouchableEventType.Touch;
            touchable.SetBounds(Vector2.one);
            touchable.SetLocalForward(Vector3.up);
            touchable.SetLocalUp(Vector3.forward);
            touchable.SetLocalCenter(Vector3.up * 2.75f);

            // Add a touch handler and link touch started / touch completed events
            TouchHandler touchHandler = interactable.gameObject.AddComponent <TouchHandler>();

            touchHandler.OnTouchStarted.AddListener((HandTrackingInputEventData e) => interactable.SetInputDown());
            touchHandler.OnTouchCompleted.AddListener((HandTrackingInputEventData e) => interactable.SetInputUp());

            yield return(TestClickPushButton(targetStartPosition, translateTargetObject));

            Assert.True(wasClicked, "Interactable was not clicked.");

            //Cleanup
            GameObject.Destroy(interactable.gameObject);
        }
Exemple #8
0
    private bool OnStopRushCharge(TouchHandler touchHandler)
    {
        if (rushTouch == null || rushTouch != touchHandler)
        {
            return(false);
        }
        float duration = Time.time - rushStartTime;
        bool  rushing  = false;

        if (touchHandler == rushTouch && duration >= rushHoldDuration)
        {
            rushing = true;
            EnableRush();
        }
        rushStartTime     = -1;
        rushTouch         = null;
        rushVisualsPlayed = false;
        return(rushing);
    }
Exemple #9
0
    private void OnTouchHandle(TouchHandler touchHandler)
    {
        OnTryJump?.Invoke(this);
        if (CanMove == false)
        {
            return;
        }
        if (lastInput == touchHandler)
        {
            return;
        }
        if (jumpsLeft == 0)
        {
            bufferedTouch     = touchHandler;
            bufferedTouchTime = Time.time;
            return;
        }
        if (lastJumpTime + minJumpInterval > Time.time)
        {
            bufferedTouch     = touchHandler;
            bufferedTouchTime = Time.time;
            return;
        }
        bool rushing = OnStopRushCharge(touchHandler);

        lastJumpTime = Time.time;
        lastInput    = touchHandler;

        float rushScale = rushing ? rushForceMultiplier : 1;

        Vector2 velocity = new Vector2(
            touchHandler.Direction * sidewardVelocity * timeScaller.TimeScale * rushScale,
            upwardVelocity * timeScaller.TimeScale * rushScale);

        rigidbody2D.velocity = velocity;
        if (jumpsLeft > 0)
        {
            jumpsLeft -= 1;
        }
        playerVisuals.PlayJumpParticles(-velocity.normalized);
        MusicPlayer.Instance.PlayJump();
        OnJump?.Invoke(this);
    }
Exemple #10
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);

            // Get our button from the layout resource,
            // and attach an event to it
            _canvasView = FindViewById <SKCanvasView>(Resource.Id.canvasView);

            _canvasView.PaintSurface += OnPaint;
            _touchHandler             = new TouchHandler()
            {
                UseTouchSlop = true
            };
            _touchHandler.RegisterEvents(_canvasView);
            _touchHandler.TouchAction += OnTouch;
        }
Exemple #11
0
    void OnSummon(int index, bool b)
    {
        CancelTp();
        if (TaskAutoTraceManager._instance != null)
        {
            TaskAutoTraceManager._instance.StopTaskAutoFindWay();
        }
        CancelRiding();
        if (b)
        {
            TouchHandler.GetInstance().Touch(GetSkillStatusByIndex(index + 4));
        }
        else
        {
            TouchHandler.GetInstance().Release(GetSkillStatusByIndex(index + 4));
        }

        DoSummon(index, Globe.Heros()[index - 4]);
    }
    void Start()
    {
        VuforiaARController.Instance.RegisterVuforiaStartedCallback(OnVuforiaStarted);
        VuforiaARController.Instance.RegisterOnPauseCallback(OnVuforiaPaused);
        DeviceTrackerARController.Instance.RegisterTrackerStartedCallback(OnTrackerStarted);
        DeviceTrackerARController.Instance.RegisterDevicePoseStatusChangedCallback(OnDevicePoseStatusChanged);

        m_PlaneFinder.HitTestMode = HitTestMode.AUTOMATIC;

        m_ProductPlacement = m_PlacementAugmentation.GetComponentInChildren <ProductPlacement>();
        m_TouchHandler     = m_PlacementAugmentation.GetComponentInChildren <TouchHandler>();
        m_PlacementAnchor  = m_PlacementAugmentation.GetComponentInParent <AnchorBehaviour>();

        m_GroundPlaneUI = FindObjectOfType <GroundPlaneUI>();

        arRCM = GameObject.FindGameObjectWithTag("FXCanvas").GetComponent <ARRenderedCanvasManager>();

        UtilityHelper.EnableRendererColliderCanvas(m_PlacementAugmentation, false);
    }
Exemple #13
0
        public void ResetAnimatorTarget(GameObject target)
        {
            if (target is null)
            {
                throw new ArgumentNullException(nameof(target));
            }

            Animator.ResetTarget(target);
            SpineController = target.GetComponentInChildren <NPCSpineController>();
            if (SpineController is null)
            {
                throw new NotFoundComponentException <NPCSpineController>();
            }

            TouchHandler.SetCollider(
                SpineController.BoxCollider,
                target.transform.localPosition,
                target.transform.localScale);
        }
Exemple #14
0
    void OnAttack(bool b)
    {
        //Debug.Log("ON ATTACK " + b);
        if (!Enabled)
        {
            return;
        }
        if (b)
        {
            TouchHandler.GetInstance().Touch(GetSkillStatusByIndex(0));
        }
        else
        {
            TouchHandler.GetInstance().Release(GetSkillStatusByIndex(0));
        }

        if (!b)
        {
            return;
        }

        FightTouchDelegate(TOUCH_KEY.Attack);

        CharacterManager.instance.shouldMove = false;
        CharacterManager.instance.SwitchAutoMode(false);
        CancelTp();
        CancelRiding();
        if (TaskAutoTraceManager._instance != null)
        {
            TaskAutoTraceManager._instance.StopTaskAutoFindWay();
        }
        attack.Effect.SetActive(true);
        BattleUtil.PlayParticleSystems(attack.Effect);
        if (CharacterManager.playerCS != null && CharacterManager.playerCS.pm != null)
        {
            SkillNode skillNode = GetSkillNodeByIndex(CharacterManager.playerCS.pm.AttackCount - 1);
            if (skillNode.site != 0)
            {
                return;
            }
            CharacterManager.instance.PlayerSkill(skillNode, CharacterManager.playerCS.pm.AttackCount);
        }
    }
Exemple #15
0
    void Start()
    {
        VuforiaARController.Instance.RegisterVuforiaStartedCallback(OnVuforiaStarted);
        VuforiaARController.Instance.RegisterOnPauseCallback(OnVuforiaPaused);
        DeviceTrackerARController.Instance.RegisterTrackerStartedCallback(OnTrackerStarted);
        DeviceTrackerARController.Instance.RegisterDevicePoseStatusChangedCallback(OnDevicePoseStatusChanged);

        this.planeFinder.HitTestMode = HitTestMode.AUTOMATIC;

        this.productPlacement = FindObjectOfType <ProductPlacement>();
        this.touchHandler     = FindObjectOfType <TouchHandler>();
        this.groundPlaneUI    = FindObjectOfType <GroundPlaneUI>();

        this.planeAnchor = this.planeAugmentation.GetComponentInParent <AnchorBehaviour>();

        // Setup a timer to restart the DeviceTracker if tracking does not receive
        // status change from StatusInfo.RELOCALIZATION after 10 seconds.
        this.timer           = new Timer(10000);
        this.timer.Elapsed  += TimerFinished;
        this.timer.AutoReset = false;
    }
    static bool anchorExists; // backs public AnchorExists property
    #endregion                // PRIVATE_MEMBERS


    #region MONOBEHAVIOUR_METHODS

    void Start()
    {
        VuforiaARController.Instance.RegisterVuforiaStartedCallback(OnVuforiaStarted);
        VuforiaARController.Instance.RegisterOnPauseCallback(OnVuforiaPaused);
        DeviceTrackerARController.Instance.RegisterTrackerStartedCallback(OnTrackerStarted);
        DeviceTrackerARController.Instance.RegisterDevicePoseStatusChangedCallback(OnDevicePoseStatusChanged);

        m_ProductPlacement = FindObjectOfType <ProductPlacement>();
        m_TouchHandler     = FindObjectOfType <TouchHandler>();
        m_GroundPlaneUI    = FindObjectOfType <GroundPlaneUI>();

        m_MidAirAnchor = m_MidAirAugmentation.GetComponentInParent <AnchorBehaviour>();
        Debug.Log("MID AIR ANCHOR:   " + m_MidAirAnchor.ToString());

        UtilityHelper.EnableRendererColliderCanvas(m_MidAirAugmentation, false);

        if (planeMode == PlaneMode.MIDAIR)
        {
            m_MidAirPositioner.enabled = true;
        }
    }
    void Start()
    {
        Debug.Log("Start() called.");

        VuforiaARController.Instance.RegisterVuforiaStartedCallback(OnVuforiaStarted);
        VuforiaARController.Instance.RegisterOnPauseCallback(OnVuforiaPaused);
        DeviceTrackerARController.Instance.RegisterTrackerStartedCallback(OnTrackerStarted);
        DeviceTrackerARController.Instance.RegisterDevicePoseStatusChangedCallback(OnDevicePoseStatusChanged);

        m_PlaneFinder.HitTestMode = HitTestMode.AUTOMATIC;

        m_PlacementAugmentationScale = VuforiaRuntimeUtilities.IsPlayMode() ? 0.1f : ProductSize;
        ProductScaleVector           =
            new Vector3(m_PlacementAugmentationScale,
                        m_PlacementAugmentationScale,
                        m_PlacementAugmentationScale);
        m_PlacementPreview.transform.localScale      = ProductScaleVector;
        m_PlacementAugmentation.transform.localScale = ProductScaleVector;

        m_GroundToggle.interactable    = false;
        m_MidAirToggle.interactable    = false;
        m_PlacementToggle.interactable = false;
        m_ResetButton.interactable     = false;

        // Enable floor collider if running on device; Disable if running in PlayMode
        Floor.gameObject.SetActive(!VuforiaRuntimeUtilities.IsPlayMode());

        m_IconGroundMode    = Resources.Load <Sprite>("icon_ground_mode");
        m_IconMidAirMode    = Resources.Load <Sprite>("icon_midair_mode");
        m_IconPlacementMode = Resources.Load <Sprite>("icon_placement_mode");

        m_TitleMode.text       = TITLE_PLACEMENT;
        m_PlaneModeIcon.sprite = m_IconPlacementMode;

        mainCamera = Camera.main;

        m_TouchHandler     = FindObjectOfType <TouchHandler>();
        m_GraphicRayCaster = FindObjectOfType <GraphicRaycaster>();
        m_EventSystem      = FindObjectOfType <EventSystem>();
    }
Exemple #18
0
    void Start()
    {
        VuforiaARController.Instance.RegisterVuforiaStartedCallback(OnVuforiaStarted);
        VuforiaARController.Instance.RegisterOnPauseCallback(OnVuforiaPaused);
        DeviceTrackerARController.Instance.RegisterTrackerStartedCallback(OnTrackerStarted);
        DeviceTrackerARController.Instance.RegisterDevicePoseStatusChangedCallback(OnDevicePoseStatusChanged);

        m_PlaneFinderBehaviour.HitTestMode = HitTestMode.AUTOMATIC;

        m_ProductPlacement = FindObjectOfType <ProductPlacement>();
        m_TouchHandler     = FindObjectOfType <TouchHandler>();
        m_GroundPlaneUI    = FindObjectOfType <GroundPlaneUI>();

        copyShoe.transform.SetParent(m_ProductPlacement.gameObject.transform);
        #if (UNITY_IOS || !UNITY_ANDROID)
        copyShoe.GetComponentInChildren <Transform>().transform.localScale = new Vector3(2.5f, 2.5f, 2.5f);
        #elif UNITY_ANDROID
        copyShoe.GetComponentInChildren <Transform>().transform.localScale = new Vector3(6f, 6f, 6f);
        #endif
        copyShoe.GetComponentsInChildren <Transform>()[1].localRotation = Quaternion.Euler(0, 0, 0);

        m_PlacementAugmentation = copyShoe.transform.parent.gameObject;

        m_PlacementAnchor = m_PlacementAugmentation.GetComponentInParent <AnchorBehaviour>();

        UtilityHelper.EnableRendererColliderCanvas(m_PlacementAugmentation, false);
        m_PlaneFinder.SetActive(false);
        shadowPlane = GameObject.Find("ShadowPlane");
        shadowPlane.transform.SetParent(copyShoe.transform);
        shadowPlane.transform.localPosition = new Vector3(0, 0, 0);
        #if (UNITY_IOS || !UNITY_ANDROID)
        shadowPlane.transform.localScale = new Vector3(0.2f, 0.2f, 0.2f);
        shadowPlane.transform.position  -= Vector3.up * 0.2f;
        #elif UNITY_ANDROID
        shadowPlane.transform.localScale = new Vector3(0.22f, 0.22f, 0.22f);
        shadowPlane.transform.position  -= Vector3.up * 0.4f;
        #endif
        shadowPlane.transform.rotation = Quaternion.Euler(90f, 0f, 0f);
        m_ProductPlacement.SetProductAnchor(null);
    }
Exemple #19
0
 // Update is called once per frame
 void Update()
 {
     if (m_PlacementAugmentation.activeInHierarchy)
     {
         m_RotationIndicator.SetActive(Input.touchCount == 2);
         m_TranslationIndicator.SetActive(TouchHandler.IsSingleFingerDragging());
         if (TouchHandler.IsSingleFingerDragging() || (VuforiaRuntimeUtilities.IsPlayMode() && Input.GetMouseButton(0)))
         {
             if (!IsCanvasButtonPressed())
             {
                 cameraPlaneRay = mainCamera.ScreenPointToRay(Input.mousePosition);
                 if (Physics.Raycast(cameraPlaneRay, out cameraToPlaneHit))
                 {
                     if (cameraToPlaneHit.collider.gameObject.name == (VuforiaRuntimeUtilities.IsPlayMode() ? EmulatorGroundPlane : m_Floor.name))
                     {
                         m_PlacementAugmentation.PositionAt(cameraToPlaneHit.point);
                     }
                 }
             }
         }
     }
 }
Exemple #20
0
    void Awake()
    {
        if (dontDestroyOnLoad)
        {
            // SINGLETON
            if (currentInstance == null)
            {
                currentInstance = this;
                DontDestroyOnLoad(this.gameObject);
            }
            else
            {
                Destroy(this.gameObject);
            }
        }
#if UNITY_EDITOR
        if (simulateTouchWithMouse)
        {
            Input.simulateMouseWithTouches = false;
        }
#endif
    }
Exemple #21
0
//
//	// use a mini ball prop
//	public void UseMiniBall()
//	{
//		if (GetComponent<GoldController> ().MiniBall <= 0) // prop not enough, do nothing
//			return;
//		if (CurThrowObject == null) // throwing, do nothing
//			return;
//		if (CurThrowObject.tag == "Basket")
//		{
//			Destroy (CurThrowObject); // destroy current ball
//			this.GenerateBall(Role.transform.position.x + 0.5f); // generate a new ball
//		}
//		CurThrowObject.transform.localScale = new Vector3 (0.5f, 0.5f, 1); // half the ball
//		CurThrowObject.GetComponent<CircleCollider2D> ().radius /= 2;
//		GetComponent<GoldController> ().MiniBall--; // change prop num
//		TouchHandler.PlayClickAudio (); // 播放按钮声音
//
//		// umeng
//		GA.Use ("MiniBall", 1, 15);
//	}

    // use a longer line prop
    public void UseLongerLine()
    {
        if (Background.GetComponent <LineCreator> ().LongerLine)        // used one, do nothing
        {
            return;
        }
        if (GetComponent <GoldController> ().LongerLine <= 0)        // 道具不够,显示商店,让玩家购买
        {
            GetComponent <GoldController>().ShowShopCanvas();
            this.PauseGame();
            return;
        }
        Background.GetComponent <LineCreator> ().LongerLine = true; // next line is longer
        GetComponent <GoldController> ().LongerLine--;              // change prop
        var ani = GameCanvas.transform.Find("UILongerLineButton/-1").gameObject;

        ani.SetActive(true);
        GetComponent <AnimatorScript>().AddRising(ani, 0.5f, 1, new AnimatorDelegate(this.PropsCallback));
        TouchHandler.PlayClickAudio();          // 播放按钮声音

        // umeng
        GA.Use("LongerLine", 1, 15);
    }
    // Use this for initialization
    void Start()
    {
        m_planeManagerA = ARContentA.GetComponentInChildren <PlaneManager>();
        m_planeManagerB = ARContentB.GetComponentInChildren <PlaneManager>();

        m_anchorInputListenerBehaviourA = ARContentA.GetComponentInChildren <AnchorInputListenerBehaviour>();
        m_anchorInputListenerBehaviourB = ARContentB.GetComponentInChildren <AnchorInputListenerBehaviour>();

        m_planeFinderBehaviourA = ARContentA.GetComponentInChildren <PlaneFinderBehaviour>();
        m_planeFinderBehaviourB = ARContentB.GetComponentInChildren <PlaneFinderBehaviour>();

        m_contentPositioningBehaviourA = ARContentA.GetComponentInChildren <ContentPositioningBehaviour>();
        m_contentPositioningBehaviourB = ARContentB.GetComponentInChildren <ContentPositioningBehaviour>();

        m_anchorBehaviourA = ARContentA.GetComponentInChildren <AnchorBehaviour>();
        m_anchorBehaviourB = ARContentB.GetComponentInChildren <AnchorBehaviour>();

        m_productPlacementA = ARContentA.GetComponentInChildren <ProductPlacement>();
        m_productPlacementB = ARContentB.GetComponentInChildren <ProductPlacement>();

        m_touchHandlerA = ARContentA.GetComponentInChildren <TouchHandler>();
        m_touchHandlerB = ARContentB.GetComponentInChildren <TouchHandler>();
    }
Exemple #23
0
    private void Update()
    {
        MySpeed = TouchHandler.GetInstance().RigidBodyBall.velocity.magnitude;


        if (MySpeed < 0.2f)
        {
            BallRigidbody.Sleep();
            if (TouchHandler.GetInstance().HasReleasedShot)
            {
                TurnHandler.GetInstance().CanChangeTurn = true;
                TouchHandler.GetInstance().IsInTouch    = false;

                TurnHandler.GetInstance().ChangeTurn();
            }
        }


//        if (gameObject.GetComponent<CircleCollider2D>().CompareTag("hands"))
//        {
//            BallRigidbody.AddTorque(Pole.GetInstance().Arms.transform.rotation.y);
//        }
    }
    static bool anchorExists; // backs public AnchorExists property
    #endregion                // PRIVATE_MEMBERS


    #region MONOBEHAVIOUR_METHODS

    void Start()
    {
        VuforiaARController.Instance.RegisterVuforiaStartedCallback(OnVuforiaStarted);
        VuforiaARController.Instance.RegisterOnPauseCallback(OnVuforiaPaused);
        DeviceTrackerARController.Instance.RegisterTrackerStartedCallback(OnTrackerStarted);
        DeviceTrackerARController.Instance.RegisterDevicePoseStatusChangedCallback(OnDevicePoseStatusChanged);

        m_PlaneFinder.HitTestMode = HitTestMode.AUTOMATIC;

        m_ProductPlacement = FindObjectOfType <ProductPlacement>();
        m_TouchHandler     = FindObjectOfType <TouchHandler>();
        m_GroundPlaneUI    = FindObjectOfType <GroundPlaneUI>();

        m_PlaneAnchor     = m_PlaneAugmentation.GetComponentInParent <AnchorBehaviour>();
        m_MidAirAnchor    = m_MidAirAugmentation.GetComponentInParent <AnchorBehaviour>();
        m_PlacementAnchor = m_PlacementAugmentation.GetComponentInParent <AnchorBehaviour>();

        UtilityHelper.EnableRendererColliderCanvas(m_PlaneAugmentation, false);
        UtilityHelper.EnableRendererColliderCanvas(m_MidAirAugmentation, false);
        UtilityHelper.EnableRendererColliderCanvas(m_PlacementAugmentation, false);

        SetNoneMode();
    }
Exemple #25
0
    public void ShowShopCanvas()
    {
        // basket
        Item basketConfig = ItemConfig.GetItem(2001);
        var  basket       = ShopCanvas.transform.Find("Basket").gameObject;
        var  titleText    = basket.transform.Find("TitleText").gameObject;     // name

        titleText.GetComponent <Text> ().text = basketConfig.name;
        var descText = basket.transform.Find("DescText").gameObject;          // desc

        descText.GetComponent <Text> ().text = basketConfig.desc;

        // longer line
        Item longerLineConfig = ItemConfig.GetItem(2003);
        var  longerLine       = ShopCanvas.transform.Find("LongerLine").gameObject;

        titleText = longerLine.transform.Find("TitleText").gameObject;        // name
        titleText.GetComponent <Text> ().text = longerLineConfig.name;
        descText = longerLine.transform.Find("DescText").gameObject;          // desc
        descText.GetComponent <Text> ().text = longerLineConfig.desc;

        // wind shield
        Item windShieldConfig = ItemConfig.GetItem(2004);
        var  windShield       = ShopCanvas.transform.Find("WindShield").gameObject;

        titleText = windShield.transform.Find("TitleText").gameObject;        // name
        titleText.GetComponent <Text> ().text = windShieldConfig.name;
        descText = windShield.transform.Find("DescText").gameObject;          // desc
        descText.GetComponent <Text> ().text = windShieldConfig.desc;

        this.RefreshButtonStatus();

        GetComponent <SceneController> ().ShowOneUI("Shop");

        TouchHandler.PlayClickAudio();          // 按钮点击音效
    }
        private void OnPointerExited(object sender, MouseEventArgs e)
        {
            var view = (TFrameworkElement)sender;

            TouchHandler.OnPointerExited(view, e);
        }
        public IEnumerator TestSimulatedHandInputOnRuntimeAssembled()
        {
            // Load interactable prefab
            GameObject   interactableObject;
            Interactable interactable;
            Transform    translateTargetObject;

            AssembleInteractableButton(
                out interactableObject,
                out interactable,
                out translateTargetObject);

            interactableObject.transform.position    = new Vector3(0.025f, 0.05f, 0.65f);
            interactableObject.transform.eulerAngles = new Vector3(-90f, 0f, 0f);

            // Subscribe to interactable's on click so we know the click went through
            bool wasClicked = false;

            interactable.OnClick.AddListener(() => { wasClicked = true; });

            Vector3 targetStartPosition = translateTargetObject.transform.localPosition;

            yield return(null);

            // Add a touchable and configure for touch events
            NearInteractionTouchable touchable = interactableObject.AddComponent <NearInteractionTouchable>();

            touchable.EventsToReceive = TouchableEventType.Touch;
            touchable.Bounds          = Vector2.one;
            touchable.SetLocalForward(Vector3.up);
            touchable.SetLocalUp(Vector3.forward);
            touchable.LocalCenter = Vector3.up * 2.75f;

            // Add a touch handler and link touch started / touch completed events
            TouchHandler touchHandler = interactableObject.AddComponent <TouchHandler>();

            touchHandler.OnTouchStarted.AddListener((HandTrackingInputEventData e) => interactable.SetInputDown());
            touchHandler.OnTouchCompleted.AddListener((HandTrackingInputEventData e) => interactable.SetInputUp());

            // Move the hand forward to intersect the interactable
            var     inputSimulationService = PlayModeTestUtilities.GetInputSimulationService();
            int     numSteps = 32;
            Vector3 p1       = new Vector3(0.0f, 0f, 0f);
            Vector3 p2       = new Vector3(0.05f, 0f, 0.51f);
            Vector3 p3       = new Vector3(0.0f, 0f, 0.0f);

            yield return(PlayModeTestUtilities.ShowHand(Handedness.Right, inputSimulationService));

            yield return(PlayModeTestUtilities.MoveHandFromTo(p1, p2, numSteps, ArticulatedHandPose.GestureId.Poke, Handedness.Right, inputSimulationService));

            float pressStartTime = Time.time;
            bool  wasTranslated  = false;

            while (Time.time < pressStartTime + buttonPressAnimationDelay)
            {   // If the transform is moved at any point during this interval, we were successful
                yield return(new WaitForFixedUpdate());

                wasTranslated |= targetStartPosition != translateTargetObject.localPosition;
            }

            // Move the hand back
            yield return(PlayModeTestUtilities.MoveHandFromTo(p2, p3, numSteps, ArticulatedHandPose.GestureId.Poke, Handedness.Right, inputSimulationService));

            yield return(PlayModeTestUtilities.HideHand(Handedness.Right, inputSimulationService));

            yield return(new WaitForSeconds(buttonReleaseAnimationDelay));

            Assert.True(wasClicked, "Interactable was not clicked.");
            Assert.True(wasTranslated, "Transform target object was not translated by action.");
        }
Exemple #28
0
 private void Awake()
 {
     touchHandler = new TouchHandler(layer: 100, checkHit: CheckHit, onPress: Press, onHold: Hold, onRelease: Release, usingWorldPosition: false);
     touchHandler.Enable();
 }
    private int HandlerComparison(TouchHandler x, TouchHandler y)
    {
        int comparison = 0;
        if ((int)x.Priority < (int)y.Priority)
        {
            comparison = -1;
        }
        else if ((int)x.Priority > (int)y.Priority)
        {
            comparison = 1;
        }

        return comparison;
    }
 public void RemoveHandler(TouchHandler touchHandler)
 {
     if (touchHandler != null && m_Handlers.Contains(touchHandler))
     {
         m_Handlers.Remove(touchHandler);
     }
 }
Exemple #31
0
 // Use this for initialization
 void Start()
 {
     instance = this;
 }
 private void enableTouch()
 {
     touchHandler = new TouchHandler(addPointer, updatePointer, pressPointer, releasePointer, removePointer, cancelPointer);
 }
Exemple #33
0
 private void Awake()
 {
     touchHandler = FindObjectOfType <TouchHandler>();
     previewPool  = FindObjectOfType <RectanglePreviewPool>();
 }
Exemple #34
0
 public void OpenFormationSetterPanel(bool open)
 {
     TouchHandler.GetInstance().Ball.GetComponent <CircleCollider2D>().isTrigger = true;
     _formationPanelAnimator.Play(open == true? "PanelOpenClose":"PanelOpenClose 0");
 }
        private void OnPointerEntered(object sender, PointerRoutedEventArgs e)
        {
            var view = (TFrameworkElement)sender;

            TouchHandler.OnPointerEntered(view, e);
        }
Exemple #36
0
 private void enableTouch()
 {
     touchHandler = new TouchHandler(addPointer, updatePointer, pressPointer, releasePointer, removePointer, cancelPointer);
     Debug.Log("[TouchScript] Initialized Unity touch input.");
 }
Exemple #37
0
    void LateUpdate()
    {
        if (Input.touchCount >= 3)
        {
            // Don't do anything  :)  This is here as a stub, and to block operation if too many touches
        }
        if (Input.touchCount == 2)
        {
            // TWO-FINGER TOUCH CONTROLS
            // PINCH = Zoom in and out, as mousewheel
            // TWIST = Rotate entire camera assembly around the base (in the Y axis)
            // VERTICAL SWEEP = Rotate camera pitch up and down
            //
            // All of these functions can happen at once, using a helper function that needs to be in
            // Standard Assets: 'TouchHandler'

            float      pinchAmount     = 0;
            Quaternion desiredRotation = transform.rotation;
            // Run the TouchHandler
            TouchHandler.Calculate();
            // get pitch sweep distance
            float rotX = TouchHandler.sweepDistanceDelta;
            // clamp it so it doesn't go too fast
            Mathf.Clamp(rotX, -.05f, .05f);
            if ((CamFocus.transform.localEulerAngles.x >= PitchMax))
            {
                rotX = -1f;
            }
            if ((CamFocus.transform.localEulerAngles.x <= PitchMin))
            {
                rotX = 1f;
            }
            // apply it
            CamFocus.transform.Rotate(new Vector3(rotX, 0f, 0f), Space.Self);
            // zoom
            if (Mathf.Abs(TouchHandler.pinchDistanceDelta) > 0)
            {
                pinchAmount = TouchHandler.pinchDistanceDelta * .5f;
            }
            //rotate
            if (Mathf.Abs(TouchHandler.turnAngleDelta) > 0)
            {
                Vector3 rotationDeg = Vector3.zero;
                rotationDeg.z    = -TouchHandler.turnAngleDelta * .5f;
                desiredRotation *= Quaternion.Euler(rotationDeg);
            }
            // apply pitch
            gameObject.transform.root.transform.Rotate(0f, TouchHandler.turnAngleDelta, 0f);
            // clamp zoom
            float temp = transform.localPosition.z;
            temp += pinchAmount;
            if (temp < -ZoomMax)
            {
                temp = -ZoomMax;
            }
            if (temp > -ZoomMin)
            {
                temp = -ZoomMin;
            }
            transform.localPosition = new Vector3(0f, 0f, temp);
        }
    }
 /// <summary>
 /// Instantiates the <see cref="ReactRootView"/>.
 /// </summary>
 public ReactRootView()
 {
     TouchHandler = new TouchHandler(this);
 }
Exemple #39
0
 protected virtual void Start()
 {
     m_TouchHandler = new TouchHandler(this);
     m_TouchHandler.KeepTouches = true;
 }