Nice to see improvement in the camera area.
Is the camera api going to be expanded with coordinate conversion as well?
Is there a request to increase the GUI node pool from 512? I’m working on a game that I keep hitting this limit. Just doubling it would help a lot. With the bigger screen sizes out now, 512 is just a bit too small. Specifically, for my MetroidVania mapping component. Possibly make it a property we can adjust. That way there we take on the risk and we can design a game to a higher end platform.
Can’t you already change the max number of nodes in the root of the outline of a GUI to higher than 512? Or are you referencing something else?
Since 2021 the maximum has been increased to 8192:
Yes. And object picking.
For me changing max nodes doesn’t change anything. I keep hitting a limit which is 512 based on the debug output.
Thank you! Testing it now.
I came here to post this:
ERROR:GUI: Could not create the node since the buffer is full (512).
Teasers time!
Moved the Templates, Samples, and Tutorials sections from a submenu to the root level to improve discoverability and make them easier to access.
Fixes for Orthographic camera in the editor
Oh - that is great.
Thank you very much.
This is brilliant and will save a lot of time when setting up the camera component.
The text layout update is close now.
Here’s a preview of an new example:
- dynamically loading localization info
- text +
.ttffont
- text +
- adding the
.ttfto the label’s.fontc - Showing text in LTR and RTL
Yes, there are more quality of life things we’d like to do, but we are at least at a point where we can give a first preview to our users. I’d say it’s one or two versions away.
This is great! Looking forward to playing with it
New camera API is coming in version 1.11.3:
camera.world_to_screen(world_pos, [camera])camera.screen_xy_to_world(x, y, [camera])camera.screen_to_world(pos, [camera])
-- Place objects at the touch point.
function on_input(self, action_id, action)
if action_id == hash("touch") then
if action.pressed then
local world_position = camera.screen_xy_to_world(action.screen_x, action.screen_y)
go.set_position(world_position, "/go1")
end
end
end
-- Place objects at the touch point with a random Z position, keeping them within the visible view zone.
function on_input(self, action_id, action)
if action_id == hash("touch") then
if action.pressed then
local percpective_camera = msg.url("#perspective_camera")
local random_z = math.random(camera.get_near_z(percpective_camera) + 0.01, camera.get_far_z(percpective_camera) - 0.01)
local world_position = camera.screen_to_world(vmath.vector3(action.screen_x, action.screen_y, random_z), percpective_camera)
go.set_position(world_position, "/go1")
end
end
end
-- Convert go position into screen position
go.update_world_transform("/go1")
local world_pos = go.get_world_position("/go1")
local screen_pos = camera.world_to_screen(world_pos)
This is something everyone has been waiting for a long time, thank you. I already started using screen_xy_to_world ![]()
…![]()



