Skip to main content

User Interface

This section provides guidance on setting up UI elements. The UI component system allows you to create floating or screen overlay UI.

UI can be added to the entity via the Studio interface or in code. Adding them in Studio is done by adding "New Component" -> UI Element using the Inspector for a selected entity.

NewComponentUI

The UI Element Component features various settings, chiefly allowing you to add, position, configure text and images, along with configuration for background color, opacity, and borders. The UI Element's configuration parameters bring in concepts from CSS (Cascading Style Sheet) and Flexbox - CSS is among the core languages of the open web and is standardized across Web browsers. Learn more about Flexbox styling here. You can also upload a custom font via TTF file that you can use in your UI Element. You can add custom font files to your assets.

UIElementInspector

Properties

Property NameTypeDefaultRequiredDescription
typeoverlay or 3doverlaytrueThe type of UI. Note: only available to root UI component
position'absolute', 'static', ‘relative’staticnoSets how an element is positioned inside a document. The top, left, right, bottom properties determine the final location of positioned elements.
topPercent or Numbernullnovertical position in percent you are from top border
leftPercent or Numbernullno horizontal position in percent you are from left border
rightPercent or Numbernull nohorizontal position in percent you are from right
bottomPercent or Number null no vertical position in percent you are from top border
backgroundHex color#ffffffnocolor of the background
backgroundOpacitynumber0nobackground opacity (equivalent to setting alpha channel on background in CSS)
colorHex color#ffffffnocolor of the foreground object (text)
opacitynumbernothe whole object opacity (almost equivalent to CSS opacity)
textstring''nothe text content of the object.
imageResourcenull norender the image given
widthnumber100 nowidth in px or 1/100 length unit
heightnumber 100noheight in px or 1/100 length unit
fontsstring'nunito'no
FontSizenumber16nocontrol the size of text inside the element
borderWidthnumber0noThe width of the border of the UI Component. Note: border width do not increase the total width/height of the component
borderColorHex color#000000noThe color of the border of the UI Component
borderRadiusnumber0noRounds the corners of an element's outer border edge
direction'LTR', 'RTL''LTR'noSets the direction of text. Use RTL for languages written from right to left (like Hebrew or Arabic), and LTR for those written from left to right (like English and most other languages).
alignContent'Flex Start', 'Flex End', 'Stretch', 'Center', 'Space Between', 'Space Around', 'Space Evenly'Flex StartnoSets the distribution of space between and around content items
alignItems'Flex Start', 'Flex End', 'Stretch', 'Center'Flex StartnoControls the alignment of all items on the cross axis.
justifyContent'Flex Start', 'Flex End', 'Stretch', 'Center', 'Space Between', 'Space Around', 'Space Evenly'Flex StartnoControls the alignment of all items on the main axis.
flexDirection'Row', 'Reverse', 'Row Column', 'Column Reverse'RownoSets how flex items are placed in the flex container defining the main axis and the direction (normal or reversed).
flexWrap'No Wrap', 'Wrap', 'Wrap Reverse'No WrapnoSets whether flex items are forced onto one line or can wrap onto multiple lines. If wrapping is allowed, it sets the direction that lines are stacked.

Example

ecs.Ui.set(world, eid, {background: '#FFFFFF'})