We have new TUIState.WaitForRenderAndCall utility, especially useful to implement loading inside TUIState descendant.
Our examples/user_interface/zombie_fighter features now a demo showing loading progress (as a descendant of TUIState, which is our advised approach for loading screens now).
Whole examples/user_interface/zombie_fighter was remade to use editor.
We have a new UI control, available from code and in editor: TCastleTouchNavigation.
This shows controls that you can drag to navigate within a viewport. Thus it allows navigation in a TCastleViewport on touch devices. It is a “reboot” of previous TCastleWindowTouch use-case, now expressed as UI control that can have any size, can be attached to any viewport, and in general is consistent with the rest of CGE.
In a typical usage scenario, you just add it as a child of TCastleViewport, set FullSize=true, set Viewport to the parent. Then control the touch interface. It is easiest to call
MyTouchNavigation.AutoTouchInterface := trueto let it be automatically assigned. Set
MyTouchNavigation.AutoTouchInterface := ApplicationProperties.TouchDeviceto let it be automatically assigned, but only on touch devices (that do not have regular keyboard / mouse).