This update focuses on UI. There is now built-in 2D masking support, as well as the ability to import and apply SVG textures. In addition, there are improvements to text rendering and input handling.
Try it live at spiderengine.io
Major Features
- Support 2D masking
- Support SVG textures
- Support TouchEnter / TouchLeave events on UI elements
- Add Http request support
- Engine’s input events are now limited to the target canvas, not the global window
- This prevents input conflicts with externally handled overlays
- Support custom HTML and CSS elements
- Support custom default assets
- Improve font rendering
- Much better text positioning
- Support customizing Text filtering
- Support integer pixel positions on a per Screen basis
Minor
- Improve playAnimation default behavior
- If no startTime is specified, play from the beginning only if the animation is elapsed. Otherwise, continue playing wherever the animation was stopped.
- CharacterCollider improvements
- Now has a gravity vector instead of a single value
- Take entity scale into account
- Avoid serializing matrices by default. All matrix properties currently happen to be transient.
- Added SerializableMatrix44 type to deal with exceptions
- Make Color API more consistent with Vectors
- Make sure Button components always have a TouchInteraction dependent
- Add the ability to initialize an Entity’s name using
Entities.create() - Reduce scene traversals in the renderer
Editor
- Add utilities to convert Button / Image components into each other
- Support customizable texture import settings
- Fix layout warning when initializing the editor
- Fix warning when instantiating a model with null animations
Bug fixes
- Make sure boolean uniforms are initialized with false rather than zero
- Touch position was incorrectly being converted from device to layout space
- Some enum literals didn’t match runtime types
- Make sure disabled buttons are initialized properly
- Clamp acos input to avoid NaN angles
- Fix crash when applying an IK solver to a root entity