Search Unity

[RELEASED] Easy Touch

Discussion in 'Assets and Asset Store' started by Hedgehog-Team, May 8, 2012.

  1. Hedgehog-Team

    Hedgehog-Team

    Joined:
    Feb 27, 2011
    Posts:
    1,155
    Yes off course, Easytouch manage multitouch ...
     
  2. Hedgehog-Team

    Hedgehog-Team

    Joined:
    Feb 27, 2011
    Posts:
    1,155
  3. chaneya

    chaneya

    Joined:
    Jan 12, 2010
    Posts:
    416
    I've been using Easytouch in my current project and just recently decided to add DoubleTap. I can't find a way to set the speed of the doubletap or put another way, the delay interval between taps for a doubletap to be detected/fired. I saw this issue mentioned earlier in this forum and you indicated that your solution is based upon Unity's Touch detection system and Touch Count. I thought your response was odd because the only way to separate a Tap and a Double Tap is based on the speed of tapping. Determining how quickly someone taps is a pretty big deal in a lot of games. I researched other touch solutions on the Asset store and the first two I looked at had variables in the Inspector that allowed you to set the speed or interval for double tap detection and thus isolate that from a single tap.

    I really like EasyTouch but there should be some way to speed up the double tap interval. (Right now, 2 slow taps will cause a DoubleTap to be fired).

    As far as I can tell, Stationary Tolerance and Long Tap Time have no noticeable effect on Double Tap interval.

    If you can think of a quick code solution, that would be great.

    Allan
     
  4. DarkAnvil

    DarkAnvil

    Joined:
    Jun 7, 2014
    Posts:
    102
    Hi,

    On version 3, I don't prefer. For cons, I'll see what I can do on the 4t.

    But, with version 3, you could just handle this, with a count on touchup and an area on the Touch.

    touch_start
    if counter == 0
    Save position
    Save realtime

    touch_up
    if (realtime - savetime <doubleTapTime AND position in your range relative saveposition)
    counter = counter + 1
    else
    counter <= 0

    If counter = 2
    Double tap
    count <= 0
     
  5. chaneya

    chaneya

    Joined:
    Jan 12, 2010
    Posts:
    416
    Thanks for such a quick response. Unfortunately I'm really bad at using pseudo code. I get your general idea but implementing that into your code base would be very difficult. I've switched to TouchScript from the Asset store but will come back to EasyTouch if you decide to provide more control by adjusting the tap interval with Double Tap in the future. EasyTouch has a much more elegant implementation than TouchScript but I need Double Tap.

    On another note, you may want to check out TouchScript since it's OpenSource. You may be able to get an idea of how they implement Double Tap. They also have a very nice feature which allows you to have gestures "friendly" with other gestures so they can occur at the same time without conflicting or disabling each other.

    I look forward to checking out 4.0 when you release it.

    Allan
     
  6. chaneya

    chaneya

    Joined:
    Jan 12, 2010
    Posts:
    416
    I switched back to EasyTouch. It turns out TouchScript has some kind of crossover firing problem when swipe/flick and TouchPress is called. I was unable to isolate the two. Additionally I found it impossible to get object data out of the event in the case of Touch Press and Release. Tap worked fine but I received errors trying to get the object info when pressing. Oh well if I end up using Double Tap, I'll implement a separate solution outside of the event system.

    But for now EasyTouch is clearly the best for ease of use, lack of crossover and conflict between events and easily getting the object information from the gesture pickobject that returns in touch event.

    Allan
     
  7. DarkAnvil

    DarkAnvil

    Joined:
    Jun 7, 2014
    Posts:
    102
    Hi,

    Can you give more detail on that you call "events conflict" , Touch_Down message is always sent even for a swipe.

    Generic messages: Start, Down, Up are always sent regardless of the gesture underway. So you will receive a touch up during a tap etc...

    If you want to get the current object under touch, you must use the static method EasyTouch.GetCurrentPickedObject(int fingerIndex ). But can you me your error, and your script
     
  8. Hedgehog-Team

    Hedgehog-Team

    Joined:
    Feb 27, 2011
    Posts:
    1,155
    Hi,

    I look for some users to test the EasyTouch 4 beta.

    Only EasyTouch is ready to be tested, EasyJoystick & EasyButton are underway.

    If you wish to participate, please send me your invoice number by email
     
  9. inakiktp

    inakiktp

    Joined:
    Nov 6, 2014
    Posts:
    35
    Hi,

    I am wondering if you have a date for the release of the EasyTouch 4. The reason I am asking is because my coworker recommended me to get EasyTouch ASAP. I went to the Asset Store to get it and read about the next version being released soon.

    Paying for it it is not the problem, but I am not sure if getting the current EasyTouch will give me access to the next version or not, what is your plan about it? If it is going to take "long" (a few weeks, I will pay for the current one and then for the new one, not a problem, but if it is being released soon (next week? xD) and I pay just one of them would be nice.

    Thanks. :)

    Inaki.
     
  10. Hedgehog-Team

    Hedgehog-Team

    Joined:
    Feb 27, 2011
    Posts:
    1,155
    Hi,

    If you buy Easy Touch 3.x, you will automatically have 4.X. All updates are free. And this is the moment we off sale at $20 on December before the 4.X release.

    3.x license gives you access to the 4.X beta.
     
  11. inakiktp

    inakiktp

    Joined:
    Nov 6, 2014
    Posts:
    35
    Hi,

    Thanks for the info, it is much more of what I expected. I will go get it ASAP. :D

    Inaki.
     
  12. Sadaan

    Sadaan

    Joined:
    Dec 10, 2014
    Posts:
    15
    Hi,

    I have created playmaker actions for the awesome EasyTouch 3.1 which have been posted to the unity Asset store for approval, it can take a few days for the process. Hope you all are as excited as I am about connecting these two awesome assets :) You can email me at sadaan@gmail.com if you have any questions or want to request some additional actions.

    EasyTouch Touch Action.png EasyTouch Swipe Action.png EasyTouch Drag Action.png EasyTouch Pinch Action.png EasyTouch Twist Action.png


    EasyTouch Touch Action.png EasyTouch Touch Action.png EasyTouch Swipe Action.png

    Regards,
    Sadaan
     
  13. Hedgehog-Team

    Hedgehog-Team

    Joined:
    Feb 27, 2011
    Posts:
    1,155
    awesome, Good luck for the launch and welcome among the publisher
     
  14. Sadaan

    Sadaan

    Joined:
    Dec 10, 2014
    Posts:
    15
    Oh you remember me :).. Thankyou so much for your help in making this package a reality. I just love easyTouch, it has made my life so much easier, I just had to help out others who werent able to use it because of scripting constraints.

    Regards,
    Sadaan
     
  15. Hedgehog-Team

    Hedgehog-Team

    Joined:
    Feb 27, 2011
    Posts:
    1,155
    You don't ask you acces for Beta 4.X ?
     
  16. Sadaan

    Sadaan

    Joined:
    Dec 10, 2014
    Posts:
    15
    I would love that, I'll be able to test the actions on 4.x and even prepare anything new in 4.x for playmaker too, so that there is no delay for any of your current customers either. My email id is sadaan@gmail.com. How do i access Beta 4.x?
     
  17. Hedgehog-Team

    Hedgehog-Team

    Joined:
    Feb 27, 2011
    Posts:
    1,155
  18. mthicke2

    mthicke2

    Joined:
    Aug 23, 2012
    Posts:
    15
    Hi - just bought this and I cant get multitouch to work in the examples provided! Only one joystick will work at a time!
     
  19. Hedgehog-Team

    Hedgehog-Team

    Joined:
    Feb 27, 2011
    Posts:
    1,155
    Hi

    Can you tell me more ? Which device do you have android, ios ?

    All examples don't works ?

    Regards
     
  20. mthicke2

    mthicke2

    Joined:
    Aug 23, 2012
    Posts:
    15
    I'm using an iPhone 5 and none of the examples work. Am I missing a setting or something or is it supposed to work by default?
     
  21. mthicke2

    mthicke2

    Joined:
    Aug 23, 2012
    Posts:
    15
    I'm also getting a bug where after I change the size of the joystick it keeps snapping back to the center (doesnt have the full range of motion)
    ie:
    my initial settings are - Area Radius: 90 Touch Zone Radius: 40 Dead Zone Radius: 50
    I change Area to 70 and the joystick becomes unusable. I change it back to 90 and the same problem.

    I just restarted Unity and it seems to work on restart - this problem has been reoccurring.
     
  22. Hedgehog-Team

    Hedgehog-Team

    Joined:
    Feb 27, 2011
    Posts:
    1,155
    Hi mthicke2

    It works by default, have change something in XCODE ?
    Have you tried with Unity Remote ?

    For the joystick it is a little a bug ,when the joystick is selected on hierarchy and you launch playmode. You have just to select an other object in the hierearchy
     
  23. Hedgehog-Team

    Hedgehog-Team

    Joined:
    Feb 27, 2011
    Posts:
    1,155
    Can you give me your Unity Version, and you EasyTouch version ? thank you
     
  24. Hedgehog-Team

    Hedgehog-Team

    Joined:
    Feb 27, 2011
    Posts:
    1,155
    OnePxl likes this.
  25. mthicke2

    mthicke2

    Joined:
    Aug 23, 2012
    Posts:
    15
    Thanks for your support with this issue. I just updated Unity to the most recent version 4.6.1.f1 and I'm using the most recent version of Easy Touch 3.1
    I started a new project and imported easyTouch - it still doesn't work.

    Scenes tried (Using Unity Remote 4):
    FirstPerson-DirectMode-DoubleJoystick
    ThirdPerson-DirectEventMode-DoubleJoystick
    ButtonExample

    All scenes have the same bug. If I am using the left joystick and click on the right joystick with my finger still engaging the left joystick - the right joystick does not respond. The left joystick responds to my second finger and veers to the right. Same thing with the button example.

    I have also tried this with Unity Remote 3 and get the same bug where the remote doesn't recognize multitouch.

    The other issue where I resize the joystick and then it wont work is still a problem after upgrading as well. I'm using a Mac OSX 10.9.5
     
  26. Unib0t

    Unib0t

    Joined:
    Jan 4, 2013
    Posts:
    15
    Hi Hedgehog Team,

    I purchased EasyTouch from your store, which I noticed is now closed. How will we get the 4.0 update when it's released? Can you still update the package on the downloads section of the account page?

    Thanks
     
  27. Hedgehog-Team

    Hedgehog-Team

    Joined:
    Feb 27, 2011
    Posts:
    1,155
    Hi all,

    mthicke2
    You must set to true "Enable Unity Remote" in the EasyTouch inspector (General properties chapter), when you do your tests with Unity Remote, otherwis multi-touches doesn't work

    Because there is an automatic detection of the platform to determine whether EasyTouch should use simulation or real touches. But with the unity remote is always identified as PC or MAC, this flag force the use of real touches.

    Do not forget to set this flag to false when your build your project for final device.

    I don't have any issue if I resize my joystick with the sizes you give. Don't forget to unselect the joystick when you do your test.

    Unib0t
    Yes , you will have acces to the update from your account page.
     
  28. Sadaan

    Sadaan

    Joined:
    Dec 10, 2014
    Posts:
    15
  29. Vilhelmus

    Vilhelmus

    Joined:
    Dec 18, 2014
    Posts:
    20
    When is 4.0 projected for release? I assumed it would work with uGUI already. At the moment, I must disable my uGUI canvas when ET is enabled, and re-enable, etc. but this is using a lot of resources. Although using the NGUI setting does work when not using a Panel. The only issue I see is that the ReservedArea isn't functioning when a Canvas is in the scene. Specifically buttons; ET will overrule the uGUI button. And PickableLayers is being ignored; it will activate on all layers.

    Edit: Actually, dynamic joystick will work if the Restrict to Area checkbox is unselected. So the only issue is with Restrict to Area. Otherwise, joystick, swipe, and buttons all work with a uGUI Canvas, Text and Buttons (uGUI and ET) in the scene.
     
    Last edited: Dec 18, 2014
  30. Hedgehog-Team

    Hedgehog-Team

    Joined:
    Feb 27, 2011
    Posts:
    1,155
    Hi,

    You can donwload EasyTouch4 Beta here:
    https://www.dropbox.com/sh/cfh6fgyxd4ccb4r/AADgULOcIvNK3-c8RmKHwzsDa?dl=0
    You must send me an email with your order number to have the password.

    You will be able to have some information about EasyTouch 4 here:
    http://www.blitz3dfr.com/teamtalk/index.php?topic=223.0

    What new's in EasyTouch 4
    * Unity UI support : WebPlayer 1 et WebPlayer 2
    * A new option allow you to choose priority between slided actions and tap & Long Tap
    * Double tap can now be parametrable.
    * 4 new Swipe direction : UpLeft, UpRight, DownLeft , DownRight
    * New event : On_Pinch
    * Auto update option, that allow you to automaticaly update the current picked object or UI element
    * tmpArray of touches is now cahced to prevent garbage collector.
    * two fingers gesture : new algorithm
    * two fingers gesture : Automatic selection of the object is performed based on the average position of the two fingers.
    * Reserved area are remove, no longer need with the new UI
    We hope to release early in January with in EasyTouch 3.1. package, or may be a RC1 for christmas

    EasyJoystick & EasyButton be completely reviewed for operation exclusively with the new UI. There will be no continuity worked with current versions that use the old GUI ( very resource consuming). But we don't have realse date for EasyJoystick & EasyButton
     
  31. Vilhelmus

    Vilhelmus

    Joined:
    Dec 18, 2014
    Posts:
    20
    Well, it's harder to find your email than it is to find the invoice number. How about sharing your email address with those who don't know it? :p
     
  32. Hedgehog-Team

    Hedgehog-Team

    Joined:
    Feb 27, 2011
    Posts:
    1,155
  33. Jiraiya

    Jiraiya

    Joined:
    May 16, 2013
    Posts:
    12
    hello,
    how would I get the twist angle from a twist gesture with easy touch and the playmaker actions?
     
  34. Hedgehog-Team

    Hedgehog-Team

    Joined:
    Feb 27, 2011
    Posts:
    1,155
    Hi,

    The support for playmaker must be ask to Studio6, I transfer requests it
     
  35. Sadaan

    Sadaan

    Joined:
    Dec 10, 2014
    Posts:
    15
    Hi Jiraiya,

    At the moment we offer simple actions for the twist gesture, it detects clockwise or counter clockwise motions and fires an event based on it. If you require the twist angle, I can write an action to return the twist angle as a float, if that is what you prefer. Please email me your invoice number at email.studio6@gmail.com and I will send you the custom action that you require.

    Best Regards,
    Sadaan

     
  36. Jiraiya

    Jiraiya

    Joined:
    May 16, 2013
    Posts:
    12
    Thank you both for the speedy reply! I also had a question regarding the touch info action. I cant get any data from it, so even though the touch registers and fires an event, no data shows up from the touch info action itself.
    Also, for some reason the clamp option on the joystick shears the transform that is inheriting the joystick action.
     
  37. Jiraiya

    Jiraiya

    Joined:
    May 16, 2013
    Posts:
    12
    it would also be great to have an option to constrain a dragged obj to an axis of choice
     
  38. Hedgehog-Team

    Hedgehog-Team

    Joined:
    Feb 27, 2011
    Posts:
    1,155
    Hi,

    For Playmaker Action, please writte to Studio 6
     
  39. Sadaan

    Sadaan

    Joined:
    Dec 10, 2014
    Posts:
    15
    Hi Jiraya, Could you email me a screenshot of how you set up the touch action.

    About your other request of having an option to constrain a dragged obj to an axis of choice, we have started working on it and it will be included in v1.03. we have already submitted v1.02 so I cant include these in that package.
     
  40. ViCoX

    ViCoX

    Joined:
    Nov 22, 2013
    Posts:
    37
    Hi Hedgehog Team,

    I would like to test if the player is spinning the joystick. I noticed there is no gesture for that (or I could not find it).
    Can you tell me the best way to implement it with Easy Touch? : ) I noticed theres some other gesture systems like https://www.assetstore.unity3d.com/en/#!/content/1044 has something like that.
    Otherwise everything is working great.

    Thanks a lot,
    - Juhani
     
  41. Hedgehog-Team

    Hedgehog-Team

    Joined:
    Feb 27, 2011
    Posts:
    1,155
    Hi,

    If I understand you want to know if the player do circle with a joystick ?

    I'm sorry but there isn't gesture for that.

    But you can compute the joystick delta angle, and if the sum of delta angle is equal to 360, it's mean that you have done a circle.
     
  42. Hedgehog-Team

    Hedgehog-Team

    Joined:
    Feb 27, 2011
    Posts:
    1,155
    Look at button example, I use joystick angle
     
  43. mog-mog-mog

    mog-mog-mog

    Joined:
    Feb 12, 2014
    Posts:
    266
    What's the release timeline for v4.0 compatible with 4.6UI. my project is working perfect with v3.1 easytouch. Only problem I've is - that touches pass through UI layer to easytouch layer. I am using Easytouch at photoeditor for zoom/twist/move. Do I expect performance improvement for easytouch v4.0?
     
  44. Hedgehog-Team

    Hedgehog-Team

    Joined:
    Feb 27, 2011
    Posts:
    1,155
    Hi,

    We hope a release in early January, and availability of RC1 before the end of the year. First EasyTouch 4 will be included with the 3.X package (Not to penalize users who are still in 4.5). EasyJoystick & EasyButton be fully reviewed to be 100% done with the new UI (lavailable at the end of january)

    You expect a performance improvement, you have problems about it?

    Meanwhile you can easily implement a small feature to not receive events from EasyTouch if the touch is on top of a UI element :

    Modify the script EasyTouch :
    - Add reference to EventSystems
    Code (CSharp):
    1. using UnityEngine.EventSystems;
    - Add this code
    Code (CSharp):
    1.     private EventSystem uiEventSystem;
    2.     private PointerEventData uiPointerEventData;
    3.  
    4.     private bool IsScreenPositionOverUI( ){
    5.      
    6.         uiEventSystem = EventSystem.current;
    7.         if (uiEventSystem != null){
    8.             return uiEventSystem.IsPointerOverGameObject();
    9.         }
    10.         else{
    11.             return false;
    12.         }
    13.     }
    - Replace IsTouchHoverNGui method by this one
    Code (CSharp):
    1.     private bool IsTouchHoverNGui(int touchIndex){
    2.      
    3.         bool returnValue = false;
    4.      
    5.         if (enabledNGuiMode){
    6.          
    7.             LayerMask mask= nGUILayers;
    8.             RaycastHit hit;
    9.                              
    10.             int i=0;
    11.             while (!returnValue && i<nGUICameras.Count){
    12.                 Ray ray = nGUICameras[i].ScreenPointToRay( fingers[touchIndex].position );
    13.  
    14.                 returnValue =  Physics.Raycast( ray, out hit,float.MaxValue,mask );
    15.                 i++;
    16.             }
    17.  
    18.         }
    19.         return returnValue || IsScreenPositionOverUI();
    20.     }

    Enable NGUI compatibility mode, and you no longer will receive EasyTouch events whe the touch is over UI Element
     
  45. mog-mog-mog

    mog-mog-mog

    Joined:
    Feb 12, 2014
    Posts:
    266
    No, I am happy with Easytouch performance. I do feel that photoeditor example does not work super smooth like I've seen in other photo apps, so there is a scope for improvement.

    Thanks, this code should solve my problem. Should I wait for 4x or just launch with existing 3x version?
     
  46. Hedgehog-Team

    Hedgehog-Team

    Joined:
    Feb 27, 2011
    Posts:
    1,155
    I do feel that photoeditor example does not work super smooth like I've seen in other photo apps, so there is a scope for improvement.
    it can come from several points, for example the final platform, or how I'm doing the example that manages any smooth.
    It's just an example of use, it is necessarily upgradable by adding more smooth or other effects.

    But it is true that I have tested my examples on recent tablet Nexus 7 and iPad 2 or there is no problem.

    It shouldn't be forgotten that the management of the touch screen depends on the FPS with Unity. There is no break, you have to read the entries on each loop.


    Should I wait for 4x or just launch with existing 3x version?
    This code is for EasyTouch 3.X, with EasyTouch 4.x you will have more features..
     
  47. ViCoX

    ViCoX

    Joined:
    Nov 22, 2013
    Posts:
    37
    Thanks Hedgehog,
    I will try the delta angle. Yes I'm trying to register many circles with the joystick. Something like 1080 degrees.
    I will let you know how it goes. : )
    - J
     
  48. Vilhelmus

    Vilhelmus

    Joined:
    Dec 18, 2014
    Posts:
    20
    Is it possible to use Gesture inside an Update or another class besides On_Swipe?

    protected override Vector2 GetMouseLook()
    {
    MouseLook.x = gesture.deltaPosition.x;
    MouseLook.y = gesture.deltaPosition.y;

    return MouseLook;
    }

    instead of

    void On_Swipe (Gesture gesture)
    {
    MouseLook.x = gesture.deltaPosition.x;
    MouseLook.y = gesture.deltaPosition.y;
    }

    I need to use Update and override in several classes so the On_Swipe that overrides Update and other classes won't work for me unless I use it throughout dozens of classes since I can't return a Vector from On_Swipe
     
  49. Hedgehog-Team

    Hedgehog-Team

    Joined:
    Feb 27, 2011
    Posts:
    1,155
    Hi Vilhelmus,

    The class Gesture is sent as a parameter of each event, so you can't use it outside the reception of an event.

    However, you can store the data at reception, for use in your own methods.

    Code (CSharp):
    1.  
    2. private Vector2 touchDeltaPosition = Vector.zero;
    3.  
    4. protected override Vector2 GetMouseLook(){
    5.    return touchDeltaPosition.;
    6. }
    7.  
    8. void On_Swipe (Gesture gesture){
    9.      touchDeltaPosition = gesture.deltaPosition;
    10. }
     
  50. wahyuway

    wahyuway

    Joined:
    Oct 7, 2013
    Posts:
    84
    Hi, i have trouble using EasyTouch, EasyButton, EasyJoystick.
    I want to use EasyTouch as my camera view rotation. When i enabled it, my joystick and button didnt work, because easy touch detect touch on whole screen.
    How can i set EasyTouch to only detect half-to top area of my screen?
    Thanks.

    Btw: i registered to your forum but not yet activated.