Using GUI.Window, buttons in it don't register as quickly?

So I am drawing about 22 buttons via a for loop. About half these buttons are drawn inside just OnGUI, the other half are drawn inside a GUI.Window

I notice that all the buttons drawn inside GUI.Window are not as responsive. Every button drawn in OnGUI, you just slightly touch it, and it goes. But the buttons inside the GUI.Window, you slightly touch them, sometimes they go, sometimes they don’t. Typically it seems you have to hold your finger on the button for a split millisecond and then release in order for it to go, but even then, sometimes it does not go. It seems like 20% of the time you have to tap it a 2-3 times for it to go.

Is this behavior normal? I have tried placed my GUI.Window call at both the top and the bottom of my OnGUI function to see if maybe draw the window first would help. But it doesn’t. It seems to be something specifically about the buttons just being a GUI.Window. Has anyone else run into this? Is there any solution? OR should I just switch to using only GUI.

Also, does GUILayout work properly on iOS? (read somewhere it had issues)

The short answer is don’t use OnGUI in iOS apps. There are lots of posts discussing why.

Prime31 has a UIKit that works for iPhone and it’s free. I haven’t tried it, but all there stuff is great so I imagine this would be too.

Alternatively you can roll your own using planes/raycasts or GUITextures and bounds checking.

Does UIKit work with webplayer builds and the mouse as well?

No idea mate, it’s not my product, but I imagine it would. I’m sure you can find the link.

If not its pretty trivial to set up a GUI system yourself using the methods mentioned in the previous posts.