Search Unity

EZ GUI - Powerful, Low draw call GUI solution

Discussion in 'iOS and tvOS' started by Brady, Jun 3, 2010.

  1. Brady

    Brady

    Joined:
    Sep 25, 2008
    Posts:
    2,474
    Check the actual transform positions. I doubt they're actually moving. What I suspect is happening is when you hit Play, the game view is changing resolution, and thus the sizing is winding up different, so that the relative sizes are different from what they are at another resolution. I think if you make sure your game view is a full 1024x768 (make sure you drag the window out so that it is the full size, otherwise, it will be sized down, regardless of what you've selected in the drop-down box), then it won't change at runtime.
     
  2. renman3000

    renman3000

    Joined:
    Nov 7, 2011
    Posts:
    6,697
    Ok.
    Will do, but then why would no other objet parent, child, non ui, be unaffected?
     
  3. renman3000

    renman3000

    Joined:
    Nov 7, 2011
    Posts:
    6,697
    I will check more again, in the morning.

    Thanks!!
     
  4. Brady

    Brady

    Joined:
    Sep 25, 2008
    Posts:
    2,474
    Without seeing exactly what's happening, it's really hard to say for sure what is going on. But my guess is that it's not affecting other objects because they aren't set to be pixel-perfect.
     
  5. renman3000

    renman3000

    Joined:
    Nov 7, 2011
    Posts:
    6,697
    Ok.
    My system is acting up now and i am too zonked. Hopefully it was just something wierd. If it pops up again i will post pics.

    Cheers
     
  6. renman3000

    renman3000

    Joined:
    Nov 7, 2011
    Posts:
    6,697
    Hi Brady,
    I got the problem resolved however, it is perplexing why it was happening and, indeed not now.

    As you know I had a
    pauseSceneBkg->attached(UIButton: only for Pixel Perfect)
    btns1-4->(attached: UIButton each)

    each btn is a child of pauseSceneBkg.

    The pictures show what was happening. The solution however was to remove the UIButton from the pauseSceneBkg. Now, the btns, no longer are "pushed out of place". I am not sure if your last answer adresses this and if I am a. reporting a bug you should know about and b. if I am choosing the best solution.


    Anyhow, if it is anything substantial, please report back.

    Best
    Ren








    before game run. all btns selected (thin blue lines). all btns in place.


    at run time. btns now out of place.


    image of game screen.
     
    Last edited: May 7, 2012
  7. Brady

    Brady

    Joined:
    Sep 25, 2008
    Posts:
    2,474
    I think it is due to the difference in resolutions at runtime, as explained earlier.
     
  8. renman3000

    renman3000

    Joined:
    Nov 7, 2011
    Posts:
    6,697
    Yes,
    you were correct.
    Thanks.
     
  9. Foxxis

    Foxxis

    Joined:
    Jun 27, 2006
    Posts:
    1,108
    I have been using EZGUI for quite a while now (including for a successful title for the iPad). Just want to briefly share my opinion on EZGUI for those considering a purchase.

    - The intentions and capabilities of the library are very good. Brady has the heart in the right place.

    - If you want to create a UI without doing much scripting, this could be the right choice for you.

    - However, if you know you have specific needs and want something that is easy to interact with through code, or find that you need to augment the existing functionality, I would *not* recommend EZGUI. In my humble opinion the library is relatively poorly documented from a scripting point of view (the automatically generated class documentation is not very helpful). Also, the desire to cram lots of functionality into the product results in the classes being relatively bloated both from an editor UI standpoint and when dealing with it in code.

    Just doing a relatively trivial operation such as changing a panel transition through code is really quite convoluted and much more complex than it would have been coding it yourself in the first place.

    So, depending on your needs and planned usage, EZGUI is either really great...or a bit too complex for its own need.
    Check the documentation any example projects carefully before using this in a live project would be my recommendation.

    Cheers,
    Dan
     
  10. hxx2010

    hxx2010

    Joined:
    Aug 31, 2009
    Posts:
    155
    how to change the pos date of ezanimatior in scrips
     
  11. renman3000

    renman3000

    Joined:
    Nov 7, 2011
    Posts:
    6,697
    Hi Brady, I am using Hiero to create a font atlas for use in EZGUI. However the editor of Hiero is not showing the the rendering of the font (bottom left panel). It shows it for none of the fonts I have. When I saved it regardless, no file was actually saved. Scratching my head as the font appears in name and in the Sample Text panel.


    Also,
    I am using Sprite, and SimpleSprite to create a simple sprite with no luck. Despite having giving the sprite dimensions, and assigning a material, I am not sure what else to do. The mesh is there. When I make it managed it becomes pink. Change the material shader is becomes white. I hot play and nothing. If I set my dimensions, lower left corner, even make it pixel perfect, I do not understand why it does not show.

    As a result, I have just added a packed sprite. It works as I would expect the simpleSprite or sprite component to work, but I only am using one sprite for this object, so it seems a bit of waste.
     
    Last edited: May 18, 2012
  12. Brady

    Brady

    Joined:
    Sep 25, 2008
    Posts:
    2,474
    @hxx2010
    I'm not sure what you're asking. Can you provide more details?


    @renman3000
    Regarding Hiero, I've not heard of that problem with Hiero before. Unfortunately, there's not much I can do with Hiero bugs. If you have access to Windows (or have it in a VM on a Mac) Angel Code's BMFont tool is more reliable. But if you're on a Mac, the absolute best tool is Glyph Designer.

    Regarding your second question, when you say you set dimensions, make sure you are setting both the width and height (which determines the sprite's world size) as well as the "Pixel Dimensions" which is the width and height, in pixels, of the image as it appears on the atlas. Also specify a lower-left pixel on the atlas.
     
  13. Ringbo

    Ringbo

    Joined:
    Nov 3, 2011
    Posts:
    1
    Hi,

    I have a problem with loading panels. I have a level select screen that uses UIBtnLoadScene. On the UIBtnLoadScene I have set a loading panel. It seems to work fine in the way that it uses that panels bring in transition. However the panel is never removed once the scene is done loading even though it does have a dismiss transition. Do I have to take care of this myself?

    I tried Dismissing the panel in OnLevelWasLoaded, but if I use PanelManager.Dismiss nothing happens. If I use PanelManager.CurrentPanel.Dismiss the panel disapears, but without any transition.
    How can I get the panel to dismiss again with a dismiss transition?
     
  14. renman3000

    renman3000

    Joined:
    Nov 7, 2011
    Posts:
    6,697
    is there a way to create a cyclable scroll list? So that when I scroll up, the items, unseen are passed to the bottom, so I can scroll infinitely in circles.

    Also, how is it again that EZGUI can free itself from timeScale?
     
    Last edited: May 24, 2012
  15. renman3000

    renman3000

    Joined:
    Nov 7, 2011
    Posts:
    6,697
    Hi Brady,
    I am wondering if I can limit a Interactive Panels drag ability. I set the min and max bounds to identical x values so that the panel only travels on y, but it seems that is not the case.
     
  16. Brady

    Brady

    Joined:
    Sep 25, 2008
    Posts:
    2,474
    @Ringbo
    UIBtnLoadScene assumes that the loading panel is not persistent and will be destroyed when the new scene is loaded (since this is the most common case). But if for some reason the panel must be persistent, then you should be able to call the panel's dismiss transition directly using the panel component's own .Dismiss() method.


    @renman3000
    A cycling scroll list is not currently part of the built-in behavior. See the forum, however, as I believe others have found ways to implement this kind of functionality creatively.

    EZ GUI is unaffected by timeScale by default because it uses Time.realtimeSinceStartup and does its own delta time calculation.

    You're only wanting the panel to be draggable vertically? Hmm... try setting some really small difference in the X values, like 1.0 and 1.0001. I'm not where I can try that at the moment, but that's what comes to mind.
     
  17. cryoknight

    cryoknight

    Joined:
    May 2, 2012
    Posts:
    3
    In an earlier post, I was asking for some advice on automatic atlas generation, so that I could hit a button and create prefabs and their associated atlases without needing to do it by hand anymore. Thanks for pointing me to the necessary code files! Got that going.
    Last week, I got the atlases batching automagically as well (multiple sprites per atlas, autogenerated).

    Put up the FPS counter, and found something quite strange.
    Had about 45 unique sprites / prefabs, ~700 instantiated.

    Tested 3 ways:
    A) 1 atlas per prefab. 256 max size for the atlas setting (iOS), PVRTC argb 4-bit "Best" compression.
    B) 9 prefabs per atlas, 1024 max size for atlas setting, PVRTC argb 4-bit "Best" compression.
    C) max of 49 prefabs per atlas, 2048 max size, etc
    Developer Build / Symlink libaries are unchecked.

    With 9 prefabs per atlas (plus 3 more atlases to cover different categories), I got a min of ~11 fps, max of 16 fps on an iTouch 3.
    With all prefabs in one atlas (per each of 4 categories -- 1 atlas of 28, 2 of 7, 1 of 4), the performance was the same as 9 per atlas with 6 atlases total.

    With 1 atlas per prefab, I got a min of 16 fps, max of 21 fps on the same iTouch 3. 25% improvement.

    This is quite unexpected... Might be a hardware issue with iOS devices using larger texture sizes. Just a heads up.

    Update:
    Ran the tests again today with an iPad1 and iPad2 - iPad1 had around 6 fps for batched sprites, 12 fps for 1 sprite per atlas. iPad2 was 29-30 fps either way, so it's probably frame-limited.

    Looks like iOS devices have issues with larger texture sizes, based on these results.
     
    Last edited: Jun 5, 2012
  18. renman3000

    renman3000

    Joined:
    Nov 7, 2011
    Posts:
    6,697
    HI Brady,
    Working with a ScrollList. My fist item, Plane1, a ListItem, is positioned by default at Vector3(50, 0, 0), with in the Mover. I am wondering why is it not 0.0.0?

    Also, I just noticed, while it is at x= 50 at start, after I drag in another panel, the drag back to the panel I started with, this panel is now in a position slightly to the left. So all elements with in, btns, are all out of line to the left about 5-10 units.
     
    Last edited: Jun 6, 2012
  19. Poupi

    Poupi

    Joined:
    Jan 11, 2012
    Posts:
    111
    Hi Brady,

    I have an UIButton and i'm trying to change the texture of the over state on an Android phone and it doesn't work, so Is there any way to catch the over event on a touch device ?
     
  20. Sim-Jeanny

    Sim-Jeanny

    Joined:
    Mar 6, 2012
    Posts:
    1
    Hi all! I never use ezgui and I start to use it.
    I have a problem in object movement. I have created two button(move left and move right) but it's not good like "Max the magic marker" game.How can ezgui do it?
     
  21. liszto

    liszto

    Joined:
    Dec 22, 2011
    Posts:
    135
    Hi,
    there is a possibility to get the previous state of a button ?
     
  22. unisip

    unisip

    Joined:
    Sep 15, 2010
    Posts:
    340
    One issue that remains with pixel perfect 2d text in ezgui is that even if the text mesh is pixel perfect, it might not be properly aligned with screen pixels, thus causing text to slightly blur and look bad, compared to text rendered with ongui. I have written a modified version of the text shader that fixes this issue directly in the vertex shader. If anyone is interested, i can post it...
     
  23. bpritchard

    bpritchard

    Joined:
    Jan 29, 2009
    Posts:
    444
    i'd be very interested... we're constantly fighting against texture issues with text and pixel perfect fonts.
     
  24. unisip

    unisip

    Joined:
    Sep 15, 2010
    Posts:
    340
    Ok, here it is:

    The shader code (this version doesn't support vertex colors, but it can be easily added):

    Shader "Custom/PixelAlignedText" {
    Properties {
    _MainTex ("Font Texture", 2D) = "white" {}
    _Color ("Text Color", Color) = (1,1,1,1)
    }

    SubShader {

    Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }
    Lighting Off Cull Off ZTest Always ZWrite Off Fog { Mode Off }
    Blend SrcAlpha OneMinusSrcAlpha

    Pass {
    CGPROGRAM
    #pragma vertex vert
    #pragma fragment frag
    #pragma fragmentoption ARB_precision_hint_fastest

    #include "UnityCG.cginc"

    struct appdata_t {
    float4 vertex : POSITION;
    float2 texcoord : TEXCOORD0;
    };



    struct v2f {
    float4 vertex : POSITION;
    float2 texcoord : TEXCOORD0;
    };

    sampler2D _MainTex;
    uniform float4 _MainTex_ST;
    uniform float4 _Color;

    float _HalfScreenWidth=400;
    float _HalfScreenHeight=300;
    float _PixelCenterOffsetX = 0.5;
    float _PixelCenterOffsetY = 0.5;

    v2f vert (appdata_t v)
    {
    v2f o;


    o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
    o.texcoord = TRANSFORM_TEX(v.texcoord,_MainTex);

    //we want vertices snapped on nearest pixel
    float pos = floor((o.vertex.x/o.vertex.w)*_HalfScreenWidth)+_PixelCenterOffsetX;
    o.vertex.x = pos/_HalfScreenWidth*o.vertex.w;

    pos = floor((o.vertex.y/o.vertex.w)*_HalfScreenHeight)+_PixelCenterOffsetY;
    o.vertex.y = pos/_HalfScreenHeight*o.vertex.w;

    return o;
    }

    half4 frag (v2f i) : COLOR
    {
    float4 col = _Color;
    col.a *= tex2D(_MainTex, i.texcoord).a;
    return col;
    }
    ENDCG
    }
    }

    SubShader {
    Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }
    Lighting Off Cull Off ZTest Always ZWrite Off Fog { Mode Off }
    Blend SrcAlpha OneMinusSrcAlpha
    Pass {
    Color [_Color]
    SetTexture [_MainTex] {
    combine primary, texture * primary
    }
    }
    }
    }


    And here is a c# script that should be attached to a gameObject in the scene:

    using UnityEngine;
    using System.Collections;

    /// <summary>
    /// This script should be attached to any object in your scene
    /// Its purpose is to monitor screen size, and ensure the Text shader receives adequate information to snap text to screen pixels
    /// </summary>

    [ExecuteInEditMode]
    public class EnsurePixelTextAlignment : MonoBehaviour
    {
    // Update text shader settings to ensure pixel perfect
    void OnGUI ()
    {
    int _openGl = (SystemInfo.graphicsDeviceVersion.ToLower().StartsWith("direct")?0:1); //set to 1 if OpenGL, 0 if directx

    //read screen size inside OnGUI as it is also called in edit mode when user clicks inside the game view
    int screenWidth = Screen.width;
    int screenHeight = Screen.height;

    Shader.SetGlobalFloat("_HalfScreenWidth", Screen.width * 0.5f);
    Shader.SetGlobalFloat("_HalfScreenHeight", Screen.height * 0.5f);

    //if size is even, use pixel offset, otherwise, use zero (on DirectX, the opposite on OpenGL);
    Shader.SetGlobalFloat("_PixelCenterOffsetX", (screenWidth % 2) == _openGl ? 0.5f : 0);
    Shader.SetGlobalFloat("_PixelCenterOffsetY", (screenHeight % 2) == _openGl ? 0.5f : 0);
    }
    }


    Let me know if you have any issue with it. I tested it on pc/mac but not ios, but it should work just fine on mobile too.
     
  25. Immi

    Immi

    Joined:
    Jun 2, 2011
    Posts:
    81
    I have been using EZGui and SM2 for a project.

    This project is a universal iOS app, that should run at iphone,ipad and retina display.
    I am creating all gui stuff in 1024 * 768 resolution.
    i want to use this stuff in all ios devices.

    so how can i use this stuff in all device?

    please help me i am new to ez gui tool.
     
  26. Brady

    Brady

    Joined:
    Sep 25, 2008
    Posts:
    2,474
    First, everyone, sorry for the silence. I've been having a nightmare of a time claiming my forum ID since the change-over to the new ID system (long story).

    @cryoknight
    Are you certain your sprites were batched? Also, consider that depending on how you did the tests, fillrate can be a major issue on these devices as well.


    @renman3000
    Did you check the alignment setting in your scroll list?


    @Poupi
    Not really. When you think about it, there is no such thing as "over" on a touchpad device. "Over" only has meaning for a cursor-based device since it means the pointing device is over the object, but is not active. With a touch device, if the pointer is over the object, it is also active by virtue of its existence, and therefore isn't merely "over", but is "active".


    @Sim-Jeanny
    If you mean buttons that move your character left and right, perhaps you need to check the "Repeating" box on your buttons so that while they are held down, they continue to invoke your code every frame they are held down?


    @listzo
    Not from the button itself, no. You would need to use an input delegate and store the state in a variable, and then you would be able to look at that variable to tell the previous state.


    @unisip
    Thanks for sharing! I'll have to give that a try! BTW, another approach can be to use EZScreenPlacement, which allows you to specify a specific pixel position (including half-pixels) of an object. However, I like your shader approach very much.


    @ImrozMansuri
    That depends on the behavior you want things to have at varying resolutions. The most straight-forward approach is simply to design everything to look correct at your main target resolution (1024x768)a and then simply leave pixel-perfect disabled so that everything scales proportionately at other resolutions.
     
  27. unisip

    unisip

    Joined:
    Sep 15, 2010
    Posts:
    340
    @Brady
    I had tried the EasyScreenPlacement, plus another placement approach that I developed on top of EZGui, but I found it cumbersome to maintain. The apps I use EZGUI for have all sorts of complex control hierarchies (I'm creating dynamic windows with scroll views, button toolbars, etc, pretty much like window forms) and I found that the screen placement via script ended up being a nightmare, compared to the super easy pixel snapping that the shader does.

    I haven't checked EZGUI updates lately, but I remember people were asking for "sliced sprites" (or sprites with corners or whatever you call that). Dunno if you ever got down to implementing that. I hacked it in EZGUI, modifying just a couple of your base classes, so if you're interested in looking into that two, I can send it too (not super clean code, but it works well enough for rendering resizable UI windows)
     
  28. Brady

    Brady

    Joined:
    Sep 25, 2008
    Posts:
    2,474
    Yes, I like the shader approach as well as a solution for that particular problem. Much more flexible if you don't actually need screen-space positioning capability.

    Regarding your sliced mod, sure, there are one or two of these on the Add-ons forum currently, but if you'd like to add yours to the mix, that'd be great!
     
  29. renman3000

    renman3000

    Joined:
    Nov 7, 2011
    Posts:
    6,697
    Hi Brady, for some reason UI items, are scaling up when I run the game.

    Any ideas?
     
    Last edited: Aug 1, 2012
  30. Brady

    Brady

    Joined:
    Sep 25, 2008
    Posts:
    2,474
    Do you have pixel-perfect enabled? It could be scaling up due to a change in resolution (when entering play mode).
     
  31. renman3000

    renman3000

    Joined:
    Nov 7, 2011
    Posts:
    6,697
    Change in resolution is governed by???


    And yes, pp is enabled.
     
  32. Brady

    Brady

    Joined:
    Sep 25, 2008
    Posts:
    2,474
    If it is happening in-editor, it is governed either by the size of your game view, and can happen when the game view is hidden and is then shown when you hit Play, or if you have "Maximize on Play" enabled. At runtime, it is obviously governed by the player settings.
     
  33. renman3000

    renman3000

    Joined:
    Nov 7, 2011
    Posts:
    6,697
    So related to our email conversation, EZGUI. Will "scale" or more accurately ( a term I can not think of) depending on what the device resolution is? If yes, does this mean Universal builds are ideal with EZGUI as adjustments are taken care of by the software.
     
  34. Brady

    Brady

    Joined:
    Sep 25, 2008
    Posts:
    2,474
    That all depends on the desired behavior. If you want images/controls to always occupy the same number of pixels regardless of resolution, then turning on pixel-perfect is ideal. If, however, you want the images/controls to always occupy the same *proportion* of screen area regardless of resolution, then it is ideal to leave pixel-perfect disabled. In either case, you get what you want without having to do any additional work.
     
  35. renman3000

    renman3000

    Joined:
    Nov 7, 2011
    Posts:
    6,697
    Thank you.
     
  36. renman3000

    renman3000

    Joined:
    Nov 7, 2011
    Posts:
    6,697
    Hi Brady,
    I have a UIScroll list, among many, that does not allow me to scroll its contents. I am wondering, what must my touch have contact with? The UIScrollList, the UIListItem? If a mesh is in front of either, will it cause problems?

    It is very wierd since, in my game I use this system frequently, but this one is not working.

    Thanks.
     
  37. Brady

    Brady

    Joined:
    Sep 25, 2008
    Posts:
    2,474
    The touch needs to contact either the collider of one of the list items, or the "background" collider of the scroll list itself. If another collider is in front of both of these, then it will occlude the touches, unless it is in a layer that is masked out.
     
  38. renman3000

    renman3000

    Joined:
    Nov 7, 2011
    Posts:
    6,697
    Thanks Brady, on first go it was not working but I think I will just scap it and start it out new. Its the credits so they need scroll. Nobody is going to eat popcorn and sit thru them... think of the butter and salt on the touch screen!!! eeewww!


    Anyhow,
    I have a question, regarding UIButton sounds, can I have a sound play on touch then another on release?
     
  39. Brady

    Brady

    Joined:
    Sep 25, 2008
    Posts:
    2,474
    To rig that up, you'll need to use an input delegate and fire the sounds in-script. As-is, there is only one sound you setup to fire on the invoke event.
     
  40. renman3000

    renman3000

    Joined:
    Nov 7, 2011
    Posts:
    6,697
    Hi Brady,
    I noticed that UIButtons add a collider, trigger at run time to themselves. Some of my colliders were too small, as they were not picking up taps as well as I would like. So, I just added the trigger, collider myself and sized it. Now, however, the reception is even worse.

    Any ideas?
    Thanks
     
  41. rakesh12

    rakesh12

    Joined:
    Aug 11, 2012
    Posts:
    3
    Hi,peter,would u help me how can i familiar with EZGUI,any document ,i am realy upset how we do.?
     
    Last edited: Aug 28, 2012
  42. Brady

    Brady

    Joined:
    Sep 25, 2008
    Posts:
    2,474
    @renman2000

    Actually, this sounds like a drag threshold setting rather than a collider issue. Go into your UIManager and raise the drag threshold up to something like 50 and see how that does. Then dial it down until you have the right threshold for drag-cancelling.
     
  43. renman3000

    renman3000

    Joined:
    Nov 7, 2011
    Posts:
    6,697
    Thanks.
    I solved that sometime ago. I think it was a collider interferring with the UI's reception.

    this question is still relevant. Any idea? Is it even possible what I am suggesting?
     
  44. Brady

    Brady

    Joined:
    Sep 25, 2008
    Posts:
    2,474
    I'm not sure what you're asking. If you're asking if you can add your own arbitrarily-sized collider to a UIButton, yes. Just add the collider component to the same GO that has the UIButton component attached in edit-mode. Size it to what you like, and then at runtime it will use the collider you added instead of generating a new one.
     
  45. renman3000

    renman3000

    Joined:
    Nov 7, 2011
    Posts:
    6,697
  46. Immi

    Immi

    Joined:
    Jun 2, 2011
    Posts:
    81
    Hello
    I am using EZScreenPlacement for my gui alignment for ipad and iphone.
    At the first time when running the game at that time gui alignment not proper display but at the second time its display proper.
    This type of problem arise when i change the resolution and run the project.
    Please help me...
    Thanks
     
  47. Brady

    Brady

    Joined:
    Sep 25, 2008
    Posts:
    2,474
    EZScreenPlacement components evaluate their settings at scene start. So they will position the attached GameObject according to the camera settings at the time the scene is started. If the resolution changes, then they need to be told to update. They don't constantly monitor for changes because this would impose runtime overhead. So at the point your resolution changes, you can put a line in a script that is attached to a common parent of your EZScreenPlacement scripts that reads like so:

    Code (csharp):
    1.  
    2. BroadcastMessage("UpdateCamera", SendMessageOptions.DontRequireReceiver);
    3.  
    That will call the UpdateCamera() methods of all components beneath that object in the hierarchy.
     
  48. Immi

    Immi

    Joined:
    Jun 2, 2011
    Posts:
    81
    Thanks brady...
     
  49. Imroz Mansuri

    Imroz Mansuri

    Joined:
    Sep 21, 2011
    Posts:
    1
    Hi,
    I am using EZGui and SM2 for a game menu.

    In my game there are 2 scene,
    first one is menu scene and then game play scene.
    First scene (menu scene) work properly but when switch the second scene that time my game is crash.
    All properly work on pc but this problem arise in ipad and iphone.
    I am removing ez gui controlls into second scene and than work properly in ipad and iphone also.
    Please help me....
     
  50. Brady

    Brady

    Joined:
    Sep 25, 2008
    Posts:
    2,474
    Without more detailed knowledge of your setup, it's very difficult to say what might be the cause. Normally a crash on iOS would indicate either some kind of invalid access exception (such as a null reference or an array out-of-bounds) or perhaps an out-of-memory issue. Regarding the former, there are no known issues in EZ GUI itself that would fit that description, so it could be related to one or more of your scripts that interface with EZ GUI. Regarding the latter (memory problem), you may want to try the latest version just released today (1.0792) that has a fix for some cases where memory could be held over during a scene load. See if that helps. Thanks!