示例#1
0
	/// <summary>
	/// Check for touch count changes
	/// </summary>
	void CheckTouchCounts()
	{
		#if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WEBPLAYER
		if (itsEmulateTouchWithMouse)
		{
			if (Input.GetMouseButtonDown(0))
			{
				TouchCountChangedArgs anArgs = new TouchCountChangedArgs(AreaIDFullScreen,itsTouchCountFullScreen,Input.touchCount);
				itsTouchCountFullScreen = 1;
				OnEventTouchCountChanged(anArgs);
			}
			
			if (Input.GetMouseButtonUp(0))
			{
				TouchCountChangedArgs anArgs = new TouchCountChangedArgs(AreaIDFullScreen,itsTouchCountFullScreen,Input.touchCount);
				itsTouchCountFullScreen = 0;
				OnEventTouchCountChanged(anArgs);
			}
		}
		#endif
		
		// check for whole screen
		if (itsTouchCountFullScreen != Input.touchCount)
		{
			TouchCountChangedArgs anArgs = new TouchCountChangedArgs(AreaIDFullScreen,itsTouchCountFullScreen,Input.touchCount);
			itsTouchCountFullScreen = Input.touchCount;
			OnEventTouchCountChanged(anArgs);
		}
		
		// check for each registered area
		foreach (int anAreaKey in itsTouchAreas.Keys)
		{
			int aCountNew = 0;
			if (!itsTouchAreas[anAreaKey].itsActive)
				continue;
			
			#if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WEBPLAYER
			if (itsEmulateTouchWithMouse)
			{
				if (Input.GetMouseButton(0))
				{
					if (itsFingerToAreaID.ContainsKey(0))
					{
						if (itsFingerToAreaID[0] == anAreaKey)
						{
							aCountNew++;
						}
					}
				}
			}
			#endif
			
			for (int i=0;i<Input.touchCount;i++)
			{
				Touch aTouch = Input.GetTouch(i);
//				if (anArea.Contains(aTouch.position))
				if (itsFingerToAreaID.ContainsKey(aTouch.fingerId))
				{
					if (itsFingerToAreaID[aTouch.fingerId] == anAreaKey)
						aCountNew++;
				}
			}
			
			if (aCountNew != itsTouchAreas[anAreaKey].itsTouchCount)
			{
				TouchCountChangedArgs anArgs = new TouchCountChangedArgs(anAreaKey,itsTouchAreas[anAreaKey].itsTouchCount,aCountNew);
				itsTouchAreas[anAreaKey].itsTouchCount = aCountNew;
				OnEventTouchCountChanged(anArgs);
			}
		}
	}
示例#2
0
    /// <summary>
    /// Check for touch count changes
    /// </summary>
    void CheckTouchCounts()
    {
                #if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WEBPLAYER
        if (itsEmulateTouchWithMouse)
        {
            if (Input.GetMouseButtonDown(0))
            {
                TouchCountChangedArgs anArgs = new TouchCountChangedArgs(AreaIDFullScreen, itsTouchCountFullScreen, Input.touchCount);
                itsTouchCountFullScreen = 1;
                OnEventTouchCountChanged(anArgs);
            }

            if (Input.GetMouseButtonUp(0))
            {
                TouchCountChangedArgs anArgs = new TouchCountChangedArgs(AreaIDFullScreen, itsTouchCountFullScreen, Input.touchCount);
                itsTouchCountFullScreen = 0;
                OnEventTouchCountChanged(anArgs);
            }
        }
                #endif

        // check for whole screen
        if (itsTouchCountFullScreen != Input.touchCount)
        {
            TouchCountChangedArgs anArgs = new TouchCountChangedArgs(AreaIDFullScreen, itsTouchCountFullScreen, Input.touchCount);
            itsTouchCountFullScreen = Input.touchCount;
            OnEventTouchCountChanged(anArgs);
        }

        // check for each registered area
        foreach (int anAreaKey in itsTouchAreas.Keys)
        {
            int aCountNew = 0;
            if (!itsTouchAreas[anAreaKey].itsActive)
            {
                continue;
            }

                        #if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WEBPLAYER
            if (itsEmulateTouchWithMouse)
            {
                if (Input.GetMouseButton(0))
                {
                    if (itsFingerToAreaID.ContainsKey(0))
                    {
                        if (itsFingerToAreaID[0] == anAreaKey)
                        {
                            aCountNew++;
                        }
                    }
                }
            }
                        #endif

            for (int i = 0; i < Input.touchCount; i++)
            {
                Touch aTouch = Input.GetTouch(i);
//				if (anArea.Contains(aTouch.position))
                if (itsFingerToAreaID.ContainsKey(aTouch.fingerId))
                {
                    if (itsFingerToAreaID[aTouch.fingerId] == anAreaKey)
                    {
                        aCountNew++;
                    }
                }
            }

            if (aCountNew != itsTouchAreas[anAreaKey].itsTouchCount)
            {
                TouchCountChangedArgs anArgs = new TouchCountChangedArgs(anAreaKey, itsTouchAreas[anAreaKey].itsTouchCount, aCountNew);
                itsTouchAreas[anAreaKey].itsTouchCount = aCountNew;
                OnEventTouchCountChanged(anArgs);
            }
        }
    }