Esempio n. 1
0
    static void GetCurrentTarget()
    {
        //we cache the current targets for each finger, useful for drag, non-hover
        for (int i = 0; i < currentTargets.Length; i++)
        {
            currentTargets[i] = null;

            for (int j = 0; j < recognizers.Count; j++)
            {
                UIGestureRecognizer r = recognizers[j];

                if (i < InputHandling.PrimaryInputCount)
                {
                    r.inputInsideTarget[i] = r.uiTransformNode.HitTest(InputHandling.inputs[i].InputPosition);
                    if (r.inputInsideTarget[i])
                    {
                        // Debug.Log(r + ":" + r.uiTransformNode.WorldDepth);
                        if (currentTargets[i] == null || r.uiTransformNode.WorldDepth > currentTargets[i].uiTransformNode.WorldDepth)
                        {
                            currentTargets[i] = r;
                        }
                    }
                }
                else
                {
                    r.inputInsideTarget[i] = false;
                }
            }
        }

        // Debug.Log(currentTargets[0]);
        //for desktop, we get the hover
        if (!InputHandling.AnyMouseHeld)
        {
            if (currentHover != currentTargets[0])
            {
                if (currentHover != null)
                {
                    currentHover.HoverExit();
                }

                currentHover = currentTargets[0];
                if (currentHover != null)
                {
                    currentHover.lastHoverFrame = Time.frameCount;
                }

                if (currentHover != null)
                {
                    currentHover.HoverEnter();
                }
            }
        }
        else if (currentHover != null)
        {
            currentHover.HoverExit();
            currentHover = null;
        }
    }
Esempio n. 2
0
	 static void GetCurrentTarget(){



	 	//we cache the current targets for each finger, useful for drag, non-hover
		for(int i=0; i<currentTargets.Length; i++){

			currentTargets[i] = null;
			
				for(int j=0; j<recognizers.Count; j++){
					UIGestureRecognizer r = recognizers[j];
					
					if(i < InputHandling.PrimaryInputCount ){

						r.inputInsideTarget[i] = r.uiTransformNode.HitTest(InputHandling.inputs[i].InputPosition);
						if(r.inputInsideTarget[i]){
							// Debug.Log(r + ":" + r.uiTransformNode.WorldDepth);
							if( currentTargets[i] == null || r.uiTransformNode.WorldDepth > currentTargets[i].uiTransformNode.WorldDepth) {
								currentTargets[i] = r;
							}

						} 

					}
					else{
						r.inputInsideTarget[i] = false;
					}
				}
			


		}

		 // Debug.Log(currentTargets[0]);
		//for desktop, we get the hover
		if(!InputHandling.AnyMouseHeld){
			if(currentHover != currentTargets[0]){
				if(currentHover != null){
					currentHover.HoverExit();
				}

				currentHover = currentTargets[0];
				if(currentHover != null){
					currentHover.lastHoverFrame = Time.frameCount;
				}

				if(currentHover != null){
					currentHover.HoverEnter();
				}
			}
		}
		else if(currentHover != null){
			currentHover.HoverExit();
			currentHover = null;
		}
 	}