Unity3D-“父类具有布局组的类型”错误

sis*_*del 3 layout user-interface unity-game-engine

我在Canvas中有这个简单的结构:

  • GameObject(垂直布局组)
    • UI图像(垂直布局组)
      • TMP UGUI文本(水平布局组,内容大小适合)

现在,它可以很好地工作,当文本超出边界时,UI图像将展开。但是由于我有一个布局组作为我的TMP文本的父级,因此我在文本的内容大小拟合器中收到一个错误,说“父级有一种布局组组件...”。结果,当文本更改时,图像高度有时不会更新(不会增大或缩小,只有在刷新或保存项目之后才可以)。

在此处输入图片说明 在此处输入图片说明

我在这里做错什么了吗?

Art*_*rtS 6

我被这个问题困扰了一年多,终于以正确的方式完成了。

解决方法很简单:

  1. 在父对象的布局组组件上选中“控制子大小宽度/高度”。
  2. 删除任何子对象的内容大小适配器。


Tri*_*cko 5

由于要附加图像,因此我将其转换为答案。我为聊天功能做了类似的事情。

  1. 使父项具有合适的内容大小,然后将水平或垂直大小设置为首选大小。 父项中的ContentSizeFitter

  2. 让其直接子级作为背景,并向其添加一个layout元素以控制其最小尺寸。还要向其中添加一个布局组,以控制将其作为子级放置的文本。 BackgroundMinSize

  3. 将文本添加为​​背景的子级 当前文本

  4. 更改文本以检查背景。 ExpandedChild

[编辑] 1.我将父级的布局组更改为VerticalLayoutGroup。2.我复制了游戏对象“背景”,但是使用了不同的文本,您可以看到ContentSizeFitterVerticalLayoutGroup控制子代的大小。 DuplicateGameObjects 结果

在上面的屏幕截图中,我从未在rect变换上进行任何调整。我只是更改了文本,如您所见,每个文本/对话框/消息的背景也进行了调整。