The SUIText class provides tools to work with the SUIText component, which is a component responsible for displaying text
Use the range of glyph geometry to perform horizontal alignment.
Space.Host.ExecutingObject.UIText.AlignByGeometry = true
--the below script will make a UIToggle disable/enable the Align By Geometry feature in the UIText --[Add "toggle" and "text" references to the Scripting Runtime component] thisGameObject = Space.Host.ExecutingObject toggle = Space.Host.GetReference("toggle").UIToggle text = Space.Host.GetReference("text").UIText text.Text = "Align By Geometry" OVC = function() if toggle.IsOn then text.AlignByGeometry = true else text.AlignByGeometry = false end end toggle.OnValueChanged(OVC)
Base color of the Graphic.
--This script dynamically changes the text's color of a GameObject with UIText component. --For example in a text sign over your shop that you want to make more visually stand out --or perhaps text decoration during a celebration or a text element in your User Interface or HUD. thisObject = Space.Host.ExecutingObject --get a reference to our object thisObjectText = thisObject.UIText --get a reference to the SUIText component in our object colors = {Color.Red, Color.Black, Color.White, Color.Blue, Color.Green, Color.Yellow} --here we are holding 6 predefined colors in a Lua Table which we will go through function ColorChanger() while true do --infinite loop for i=1,#colors do --For Loop to cycle through all the table items thisObjectText.color = colors[i] --this will set the color based on which item in the table we are now at coroutine.yield(0.1) --this will pause for a tenth of a second before we change to the next color end end end Space.Host.StartCoroutine(ColorChanger) --this coroutine will now call our ColorChanger() function which is infinitely changing our text colors between a select range.
Whether the UIText component is Enabled or not will decide if it is visually updating or not.
Space.Host.ExecutingObject.Enabled = true
--this below script will make clicking this object disable/enable a UIText component thisGameObject = Space.Host.ExecutingObject text = Space.Host.GetReference("text").UIText OnClick = function() if text.Enabled then text.Enabled = false else text.Enabled = true end end thisGameObject.AddClickable() thisGameObject.Clickable.Tooltip = "click to hide/show text" thisGameObject.Clickable.OnClick(OnClick)
The extra relative height this UIText should be allocated if there is additional available space. (Used by the Layout system.)
FlexibleHeight = Space.Host.ExecutingObject.UIText.FlexibleHeight
The extra relative width this UIText should be allocated if there is additional available space. (Used by the Layout system)
FlexibleWidth = Space.Host.ExecutingObject.UIText.FlexibleWidth
The size that the Font should render at.
Space.Host.ExecutingObject.UIText.FontSize = 54
--the below script will make a slider change the UIText's Font Size --[Add "slider" and "text" references to the Scripting Runtime component] thisGameObject = Space.Host.ExecutingObject slider = Space.Host.GetReference("slider").UISlider text = Space.Host.GetReference("text").UIText text.Text = "Text Size Test" OVC = function() text.FontSize = (slider.Value * 40) + 10 -- from 10 to 50 end slider.OnValueChanged(OVC)
The layout priority of this UIText component.(Used by the Layout system.)
thisObject = Space.Host.ExecutingObject --get a reference to our object thisObjectText = thisObject.UIText --get a reference to the UIText component in our object Space.Log(thisObjectText.LayoutPriority) --Prints the LayoutPriority value of this UIText component to the console
How much space will be in-between lines of text. This is a multiplier. The line spacing value set will be multiplied by the font's internal line spacing. A value of 1 will produce normal line spacing.
thisObject = Space.Host.ExecutingObject.UIText.LineSpacing = 2
--the below script will make a slider change the UIText's Line Spacing --[Add "slider" and "text" references to the Scripting Runtime component] thisGameObject = Space.Host.ExecutingObject slider = Space.Host.GetReference("slider").UISlider text = Space.Host.GetReference("text").UIText text.Text = "Line Spacing Line Spacing Line Spacing Line Spacing Line Spacing" OVC = function() text.LineSpacing = (slider.Value * 2) -- from 0 to 2 end slider.OnValueChanged(OVC)
The minimum height this UIText may be allocated.(Used by the Layout system).
thisObject = Space.Host.ExecutingObject --get a reference to our object thisObjectText = thisObject.UIText --get a reference to the UIText component in our object Space.Log(thisObjectText.MinHeight) --Prints the MinHeight value of this UIText component to the console
The minimum width this UIText may be allocated. (Used by the Layout system).
thisObject = Space.Host.ExecutingObject --get a reference to our object thisObjectText = thisObject.UIText --get a reference to the UIText component in our object Space.Log(thisObjectText.MinWidth) --Prints the MinWidth value of this UIText component to the console
Provides information about how fonts are scale to the screen.
For dynamic fonts, the value is equivalent to the scale factor of the canvas. For non-dynamic fonts, the value is calculated from the requested text size and the size from the font.
thisObject = Space.Host.ExecutingObject --get a reference to our object thisObjectText = thisObject.UIText --get a reference to the UIText component in our object Space.Log(thisObjectText.PixelsPerUnit) --Prints the PixelsPerUnit value of this UIText component to the console
The preferred height this UIText should be allocated if there is sufficient space. (Used by the Layout system)
thisObject = Space.Host.ExecutingObject --get a reference to our object thisObjectText = thisObject.UIText --get a reference to the UIText component in our object Space.Log(thisObjectText.PreferredHeight) --Prints the PreferredHeight value of this UIText component to the console
The preferred width this UIText should be allocated if there is sufficient space. (Used by the Layout system)
thisObject = Space.Host.ExecutingObject thisObjectText = thisObject.UIText Space.Log(thisObjectText.PreferredWidth)
Should the text be allowed to auto resized.
Space.Host.ExecutingObject.UIText.ResizeTextForBestFit = false
--the below script will make a UIToggle disable/enable the Best Fit feature in the UIText --[Add "toggle" and "text" references to the Scripting Runtime component] thisGameObject = Space.Host.ExecutingObject toggle = Space.Host.GetReference("toggle").UIToggle text = Space.Host.GetReference("text").UIText text.Text = "A very long text a very long text a very long text a very long text" OVC = function() if toggle.IsOn then text.ResizeTextForBestFit = true else text.ResizeTextForBestFit = false end end toggle.OnValueChanged(OVC)
The maximum size the text is allowed to be.
Space.Host.ExecutingObject.UIText.ResizeTextMaxSize = 150
--the below script will make a slider change the UIText's Best Fit Max Size --[Add "slider" and "text" references to the Scripting Runtime component] thisGameObject = Space.Host.ExecutingObject slider = Space.Host.GetReference("slider").UISlider text = Space.Host.GetReference("text").UIText text.Text = "Best Fit Max Size" text.ResizeTextForBestFit = true OVC = function() text.ResizeTextMaxSize = (slider.Value * 50) + 20 -- from 50 to 70 end slider.OnValueChanged(OVC)
The minimum size the text is allowed to be.
Space.Host.ExecutingObject.UIText.ResizeTextMinSize = 20
--the below script will make a slider change the UIText's Best Fit Min Size --[Add "slider" and "text" references to the Scripting Runtime component] thisGameObject = Space.Host.ExecutingObject slider = Space.Host.GetReference("slider").UISlider text = Space.Host.GetReference("text").UIText text.Text = "Best Fit Min Size" text.ResizeTextForBestFit = true OVC = function() text.ResizeTextMinSize = (slider.Value * 20) + 10 -- from 10 to 30 end slider.OnValueChanged(OVC)
Whether this Text will support rich text.
Space.Host.ExecutingObject.UIText.SupportRichText = true
--the below script will make a UIToggle disable/enable Rich Text support in the UIText --[Add "toggle" and "text" references to the Scripting Runtime component] thisGameObject = Space.Host.ExecutingObject toggle = Space.Host.GetReference("toggle").UIToggle text = Space.Host.GetReference("text").UIText text.Text = "<b> Bold Test </b>" OVC = function() if toggle.IsOn then text.SupportRichText = true else text.SupportRichText = false end end toggle.OnValueChanged(OVC)
The string value this Text displays.
Space.Host.ExecutingObject.UIText.Text = "Hello World!"
--the below script will make a UIText element with this script --constantly update itself to show the local time --(Example: UI Text element that shows local clock) --[This object needs to be a UI Text object. In Unity, Heirarchy -> Create -> UI -> Text] --<Note: UI Text element could also be in world space if it's canvas is a world space canvas> thisGameObject = Space.Host.ExecutingObject OnUpdate = function() thisGameObject.UIText.Text = Space.LocalTime end thisGameObject.SubscribeToEvents() thisGameObject.OnUpdate(OnUpdate)
|