gpt4 book ai didi

unity3d - 将内容缩放到最大的 UI 元素(Unity)

转载 作者:行者123 更新时间:2023-12-05 06:06:21 26 4
gpt4 key购买 nike

我有一个面板,其中包含一个 TextMeshPro (TMP) 对象和一些垂直对齐的其他对象(例如按钮)。我想要以下行为:

  1. 随着向 TMP 添加更多文本或添加更多元素(例如按钮和子图像),面板尺寸会垂直扩展。

  2. 随着更多文本被添加到 TMP,我们停止扩展面板的大小,而是使用溢出(省略号或其他)。

所以它应该看起来是like this当文本很长时,this当文本很短时。

我当前的设置在 Panel 对象中有 Vertical Layout Group 和 Content Size Fitter 组件。

垂直布局组勾选了“控制子尺寸”,但没有勾选“使用子尺寸”或“强制子尺寸展开”。

Content Size Fitter 具有垂直适合的“首选大小”。

TMP 对象有一个布局元素组件。如果我将此组件设置为特定的首选大小,它会固定为该大小,因此可以很好地处理溢出,但是当文本内容较短时,会出现 tons of extra space。 .

如果我取消选中 TMP 中的首选大小,TMP 对象会缩小以紧贴少量文本(如我所愿)。但是,当我添加大量文本时,它会不断增长而没有上限,最终 taking over the entire screen and more .

是否有任何方法可以通过调整布局元素/内容大小装配器/垂直布局组的设置来实现我想要的行为?或者我是否必须编写一个新组件来打开首选大小以在文本达到特定长度时限制高度?

谢谢!

最佳答案

我找到的最佳解决方案是使用 Content Size Fitter 强制执行最大值,将新组件添加到父对象。

新组件需要实现接口(interface)ILayoutSelfController,实现方法SetLayoutHorizo​​ntalSetLayoutVertical。在这些方法中,检查当前的 X 和 Y 维度是否大于您在检查器中设置的序列化最大值。

完整的解决方案来自名为 Democide(又名 Democritus)的 Unity 用户,可在此处获得 https://forum.unity.com/threads/purpose-of-uibehaviour.289666/

关于unity3d - 将内容缩放到最大的 UI 元素(Unity),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65768333/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com