Fix #242 Text component metrics zero width issue

This commit is contained in:
Insality 2023-08-25 11:07:33 +03:00
parent 2d8d3cffbb
commit 73ed0c8cd0

View File

@ -95,6 +95,7 @@ end
--- Reset initial scale for text --- Reset initial scale for text
local function reset_default_scale(self) local function reset_default_scale(self)
self.scale = self.start_scale
gui.set_scale(self.node, self.start_scale) gui.set_scale(self.node, self.start_scale)
gui.set_size(self.node, self.start_size) gui.set_size(self.node, self.start_size)
end end
@ -109,6 +110,12 @@ local function update_text_area_size(self)
local metrics = helper.get_text_metrics_from_node(self.node) local metrics = helper.get_text_metrics_from_node(self.node)
if metrics.width == 0 then
reset_default_scale(self)
self.on_update_text_scale:trigger(self:get_context(), self.start_scale, metrics)
return
end
local scale_modifier = max_width / metrics.width local scale_modifier = max_width / metrics.width
scale_modifier = math.min(scale_modifier, self.start_scale.x) scale_modifier = math.min(scale_modifier, self.start_scale.x)
@ -128,7 +135,6 @@ local function update_text_area_size(self)
local new_scale = vmath.vector3(scale_modifier, scale_modifier, self.start_scale.z) local new_scale = vmath.vector3(scale_modifier, scale_modifier, self.start_scale.z)
gui.set_scale(self.node, new_scale) gui.set_scale(self.node, new_scale)
self.scale = new_scale self.scale = new_scale
update_text_size(self) update_text_size(self)
self.on_update_text_scale:trigger(self:get_context(), new_scale, metrics) self.on_update_text_scale:trigger(self:get_context(), new_scale, metrics)