【问题标题】:Unity adding to transform moves too far统一添加到变换移动太远
【发布时间】:2019-03-31 01:12:37
【问题描述】:

我有一个表单,我想在需要时将表单的输入/子项向下移动以显示错误消息。

我可以遍历孩子,然后我只想向下移动 20 个像素,这大约是错误文本的高度,但输入沿 x 轴向下移动约 3000。我确信我做错了什么是显而易见的。

foreach (Transform child in Form.transform)
{
    Vector3 p = child.position;
    Debug.Log(child.name);
    p.x += 20f;
    child.position = p;
}

【问题讨论】:

  • 请记住,基于默认相机设置,每个统一单位是 100 像素,所以到 20f 时,您实际上将它们移动了 2000 像素

标签: c# unity3d


【解决方案1】:

这是另一种方法:

  • 在您的界面中,创建一个面板或滚动视图或任何容器来保存您的 UI
  • 添加一个垂直布局组,说明是否要以垂直方式布置项目
  • 添加您的占位符控件禁用,例如Text 或其他任何东西
  • 只要您想显示错误,请使用适当的内容启用此控件

布局系统会为您处理所有元素位置的移动。

【讨论】:

  • 确实尝试过,但垂直布局破坏了我拥有的特定布局,因为它想强制输入和文本空间。
  • 有时很难做到正确,不要忘记您可以将布局元素添加到您的预制件中,这样它就不会受到父布局组的影响。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-10
  • 1970-01-01
相关资源
最近更新 更多