Search Unity

Unity5 on Windows 8 Touch screen - app become unresponsive when receiving rapid multi touch

Discussion in 'Editor & General Support' started by xLeng, Jun 1, 2015.

  1. xLeng

    xLeng

    Joined:
    Feb 12, 2014
    Posts:
    19
    We have a app running on the touchscreen with Windows 8. The App would go into a unresponsive state if user touches the screen rapidly with multiple finders. There is nothing wrong can be seen in the log. The app also shows normally in the taskmanager ( as in not crashed? )

    Anyone else experiencing similar issues ?

    Thanks
     
  2. MSplitz-PsychoK

    MSplitz-PsychoK

    Joined:
    May 16, 2015
    Posts:
    1,278
    This might not help that much, but it sounds like it could be related. I've found that Unity's handling of touchscreens doesn't work well with Windows at all, and Unity's multitouch doesn't seem to work at all. I'm told it may work fine for Windows 8 Store Apps, but for everything else I've been using TouchScript, a free open-source touchscreen library available on the asset store. Best of luck!
     
  3. valyard

    valyard

    Unity Technologies

    Joined:
    Jun 4, 2010
    Posts:
    291
    Does it happen with just an empty project? Is it a Standalone Windows app? Is it 32bit or 64bit?
    What Unity version are you using?
     
  4. xLeng

    xLeng

    Joined:
    Feb 12, 2014
    Posts:
    19
    Just tested with empty project. few simple Unity UI. both 32bit and 64bit on windows 8. Unity 5 build stops responding soon after rapid multi - touches, Unity4 build dose not have this problem.

    Also. When running on Win 7, due to the fact that Win7 dose not support multi-touch ( more than 2 touches ) so the problem dose not occur.
     
  5. xLeng

    xLeng

    Joined:
    Feb 12, 2014
    Posts:
    19
    I have have just fired a bug report - case number 701404.

    The Win8 TouchScreen spec is attached below ( didn't find a way to attach it to the issue tracker.)
     

    Attached Files:

  6. valyard

    valyard

    Unity Technologies

    Joined:
    Jun 4, 2010
    Posts:
    291
    What touch display are you using?
    What is "CoolTouchÆ USB Interface 1" exactly?

    When running on Win 7, due to the fact that Win7 dose not support multi-touch ( more than 2 touches ) so the problem dose not occur.​

    Windows 7 does support multi-touch. In fact Unity uses old Windows 7 WM_TOUCH API so it should work there just fine. Maybe it's Windows 7 drivers issue with your touch display?
     
  7. xLeng

    xLeng

    Joined:
    Feb 12, 2014
    Posts:
    19
    It's a iiyama ProLite T2236MSC-B1 22" LED Touchscreen Monitor.

    It's worth mentioning that when the app stops responding, the touch screen works fine with the rest of the windows system.

    I have just done a test on the Surface pro 3, the touch issue did not happen. We currently don't have other type of touch screen to test with the stand alone PC. Will update when we do.
     
    Last edited: Jun 8, 2015
  8. valyard

    valyard

    Unity Technologies

    Joined:
    Jun 4, 2010
    Posts:
    291
    The problem is that I can't reproduce it with Surface Pro either.
    And I don't have any other touch-capable hardware.
     
  9. xLeng

    xLeng

    Joined:
    Feb 12, 2014
    Posts:
    19
    We have just tested on another Acer touchscreen, problem also occurs. It could be happening to all external touch screens monitors ( that uses CoolTouch interface, which surface pro dose not use ).

    They quite easy to source. Can't your engineers get your hands on one?

    ps. I have attached another system info of the acer touchscreen pc.
     

    Attached Files:

  10. Spi

    Spi

    Joined:
    Oct 4, 2011
    Posts:
    21
    Hi,

    We have identified the same issue, long time before Unity 5 handles the Windows 7 and 8 touches.

    So far, here is what we found :
    - The problem occurs when using the WM_Touch to handle the Windows form touches on Windows 8, 8.1 (10?)
    - The problem doesn't occur when using WM_Pointers to handle the touches on Windows 8, 8.1 (10?)

    It seems that this is related to TOUCHEVENTF_UP that is not received in certain cases and touches are stacking and stay in the event list. In a simple Unity 5 test case, we observed that after multiple and quick touches on the screen, Input.touchCount returned points even without touching screen and that this number was growing...

    So far we didn't observed the problem on all touchscreens... We could see that on Asus ET2701INTI for example.

    This is a strong issue because now that Unity handles touch points on Windows 7 and 8, we can't bypass the problem implementing our own WM_Pointers based touch solution. Moreover, when the problem occurs, mouse input becomes unusable because the coordinates are calculated based on all the points stuck in memory.

    We would really like to see Unity use WM_Pointers for Windows 8 and more recent environments because WM_Touch is really deprecated since Windows 8.

    We would be glad to help you testing new implementations for Windows 8.
    Our teams won't be able to go with Unity 5 unless this issue is fixed or some workarounds disabling Unity Windows touch support.

    Thanks,
    Best Regards,
    Rudy
     
  11. xLeng

    xLeng

    Joined:
    Feb 12, 2014
    Posts:
    19
    same here, Only work around for us is to use win 7, Or we stuck with unity 4, 32bit sucks.
     
  12. madpoet0204

    madpoet0204

    Joined:
    Sep 10, 2012
    Posts:
    98
    Input.multiTouchEnabled = false ;

    might help.
     
  13. Spi

    Spi

    Joined:
    Oct 4, 2011
    Posts:
    21
    Hi,

    We found a temporary but crappy workaround with the help of "Input.multiTouchEnabled = false" (thanks to madpoet0204)

    We really think this whole solution is kind of a temporary fix and we really are hoping that Unity will take this issue seriously and fix the issue with our recommandations concerning the use of WM_Pointers to handle touches on Windows 8 and sup.

    To have all of the following working with Unity 5.1.2 :
    - no touch accumulations
    - no mouse stuck
    - Legacy GUI event working
    - uGUI event working

    Here what we did in details :

    For Windows 7 :
    - Input.multiTouchEnabled = true
    - We use Input.GetTouch() instead of custom WM_Touch to handle the touches. Because with custom WM_Touch, legacy GUI won't work anymore...

    For Windows 8 :
    - Input.multiTouchEnabled = false (to avoid the touch accumulation Unity issue)
    - We use custom windows hook with WM_Pointers to handle the touches

    In order to have both mouse and touch working together, without having two events for one interaction, you can use Input.simulateMouseWithTouches = false

    Thx,
    Rudy