I put this one : Replacing GUI with GO
Basically, the screen and world coordinates are so different (particularly when Zoom enter the fray) is a pain in the most intelligent part of me.
The fact trying to make an object stuck on the same Screen coordinate when the camera pan and zoom (and sometimes simply zoom) is so hard, with elements following the camera THEN jumping back (moving an object is VISIBLY slower than moving the camera), and sometimes even disapearing at some zoom level for reason of their own is horrible.
And you can’t replace it with Gui because Gui and Go communicate very badly (why ? Is there any reason for Gui and Go to not be able to Set and Get each other ?), and you can’t make Collision shapes in Gui (why ? It’s litteraly the simplest mean to make cascading UI).
There has to be a reason why dev refuse to make Screen and World have simple “World_to_Screen“ and “Screen_to_World” function. If that’s a coding problem, why not simply say it and let the community try to help you to resolve it ?
A mean to have an Object at fixed coordinate and zoom (as if it was simply attached to the Camera Object…) would help much : We could then make complex UI made of sprites with all the possibilities of the Game Objects (like Collisions). I’m trying that actually, but Defold is SO SLOW at moving my “UI object” when I move/zoom the camera…
And it’s so complicated it’s always buggy…
For example : I’m building an UI with Objects. That part is no problem. Objects works like a dream if you read the trigger in the good order in the script).
But The UI only appears if you click on some other object (As intended) with enable/disable.
With the camera in ortho mode, I have to take into account not only the world position, but the zoom for the UI appears and keep its “apparent” screen position with the good zoom level.
It’s laggy, but it’s work.
BUT : If I zoom past some point BEFORE (and only before) I enable the UI, some elements of the UI simply don’t show anymore. Ever. whatever I do after that.
I mean, come on ! It’s so complicated !
Please, of please, make at least ONE the those works :
- GUI and GO can fully communicate by GET/SET (and functions like that).
- Let us attach objects to the camera so some objects are ALWAYS at the same position and zoom level
- Let us put some “fixed screen position/zoom” as stats for objects.
- Let us simply just attach a second camera to an object, and the two images are just in front of each other
If GUI could use collision objects, it could be cool.