为什么我不能更改下拉ui元素的高度?

时间:2019-12-03 16:16:59

标签: unity3d

Dropdown

已禁用灰色高度。

如果我禁用了MainMenuPanel上的垂直布局组(脚本),那么我可以启用它,然后更改宽度和高度;但是当我禁用它并更改高度,然后启用MainMenuPanel再次将ResolutionDropdown高度值恢复为原来的原始值,并且从不保留将其更改为的新值:

Main Menu Panel

1 个答案:

答案 0 :(得分:1)

如果您的UI元素不是动态的,则可能不需要显式的布局组。当UI元素可以在运行时更改时,垂直布局组最有用。网格布局组可以用于创建响应式UI,但这似乎不是您的问题。

话虽如此,按照@ Draco18s的上述评论,可以通过取消布局组的“ Control Child Size”值来实现最快的解决方案。因此,您的UI元素将仅受其位置控制,而不受其大小控制。请注意,您将需要手动设置每个UI元素的高度,而不是依赖于布局组。

如果要做,要让布局组控制大部分元素的高度,并且下拉菜单是例外,则可以向下拉菜单GameObject添加LayoutElement组件,然后修改最小值和首选值(此用例中的高度值)。

摘自Vertical Layout Groups上Unity的文档:

  

“垂直布局组”组件将其子布局元素彼此重叠。它们的高度由各自的最小高度,首选高度和柔性高度决定,具体取决于以下模型:

     
      
  • 所有子布局元素的最小高度相加在一起,并且它们之间的间距也相加。结果是垂直布局组的最小高度。
  •   
  • 所有子布局元素的首选高度被加在一起,并且它们之间的间距也被添加。结果是垂直布局组的首选高度。
  •   
  • 如果“垂直布局”组处于其最小高度或更小,则所有子布局元素也将具有其最小高度。
  •   
  • “垂直布局”组越接近其首选的高度,每个子布局元素也就越接近其首选的高度。
  •   
  • 如果“垂直布局”组的高度高于其首选高度,则会根据子布局元素各自的灵活高度按比例分配额外的可用空间。
  •   

我建议阅读Unity's UI Auto Layout system上的Unity文档