【问题标题】:Unity + Vuforia: UI elements not showingUnity + Vuforia:UI 元素未显示
【发布时间】:2015-09-24 23:17:50
【问题描述】:

我正在尝试在我的 AR 应用中添加 UI。我是第一次这样做,这个问题可能很愚蠢。对此感到抱歉。

为什么我的 UI 元素不显示?假设我有一个文本框。如果我在我的计算机上运行该项目,我可以看到它,但是当我构建它并在我的 Android 设备上运行它时,它不会出现。我可以看到它不到 2 秒,然后打开相机并隐藏文本。可能 ARCamera 位于 UI 层或其他东西之上,但我对这些东西很陌生,我无法弄清楚。

如何解决这个问题?如何使我的文本字段出现在相机顶部? 提前致谢!

更新

我看到文本位于 UI 层中的 Canvas 中,而 ARCamera 位于默认层中。据我所知,默认层位于 UI 层之上,这就是我看不到文本的原因。但如果是这样,为什么它可以在我的计算机上运行以及如何修复它以在 Android 设备上正常运行?

【问题讨论】:

  • 你为什么投反对票?我在任何地方都找不到解决方案...
  • 您使用的是新 UI 还是旧版 UI?如果是新用户界面,请检查CanvasRender ModeScreen Space - Overlay
  • 您使用的是哪个版本的 Unity? Unity 5 和 Vuforia 存在 UI 错误。这已在 Unity 5.0.1p1 中修复。
  • 我使用的是 5.1.0f3。通过将 Canvas 的 Render Mode 更改为 World Space 解决了该问题。我没有将其添加为正确答案,因为我认为这不是正确的解决方案。

标签: android user-interface unity3d vuforia


【解决方案1】:

在没有更多信息的情况下提出答案有点困难,但我会尽力而为。也许将您的画布“渲染模式”更改为“屏幕空间 - 相机”,然后再次更改为“屏幕空间 - 叠加”。

我不知道为什么,但它似乎对我有用。起初它不显示我的用户界面,但之后它正常显示。

如果这不起作用,您可以尝试像在新的 Unity UI 之前一样通过脚本制作您的 UI;你知道的,比如:

void OnGUI()
{
 if(GUI.Button(new Rect(0,0,100,100),"My Button"))
  {
   //Some code here
  }
}

这样它就永远在你的 ARCamera 之上。

希望你会发现有用。

【讨论】:

  • 非常感谢您的帮助!实际上渲染模式是屏幕空间 - 叠加。我还尝试在 OnGUI() 中添加一个 UI 元素,但它可以在相机出现之前看到片刻,然后它变得隐藏,可能在相机后面。就像文本框...如果我将 Canvas 的渲染模式更改为 World Space 并旋转文本,那么它在 Android 设备上变得可见,但在我的计算机上不可见。如果您需要更多信息,请随时询问。
  • 实际上在世界空间渲染模式下,我可以在我的电脑和 Android 设备上看到 UI 元素,但我认为这不是正确的做法......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-02
  • 2017-08-26
  • 2016-11-12
相关资源
最近更新 更多