c# - 如何修复对象旋转并使其在 Vuforia 中垂直?

标签 c# ios unity-game-engine vuforia

我正在 Unity 中开发 Vuforia 应用程序。

如何使附加到 ImageTarget 的 3D 对象 在标记识别期间始终垂直

这样一来,如果我旋转标记,模型就不会上下颠倒,而是保持垂直。它应该以某种方式“理解”世界的 z 轴,也许使用 iPhone 的传感器。

这是我的意思的一个例子(灰色方 block 是一个标记,一个绿色的人是一个 3D 对象,附加到它上面)。

目前,如果我旋转标记,模型也会旋转:

enter image description here

我需要修复模型沿 z 轴的旋转,使其始终保持垂直:

enter image description here

最佳答案

您可以使用 Transfrom.LookAt () 确保对象始终面向相机,并使用 Vector.Up 作为第二个参数:

using UnityEngine;
using System.Collections;

public class CameraFacing : MonoBehaviour
{
    public Camera m_Camera;

    void Update()
    {
        transform.LookAt(transform.position + m_Camera.transform.rotation * Vector3.forward,
        m_Camera.transform.rotation * Vector3.up);
    }
}

将此脚本附加到图像目标的子级(将在找到跟踪时显示)。该相机是您在场景中添加的 AR 相机。

关于c# - 如何修复对象旋转并使其在 Vuforia 中垂直?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46918052/

相关文章:

c# - 如果未写入时间,如何在日期时间控件中添加当前时间

ios - 如何使用 OCMockito stub CocoaLumberjack 或 NSLog

ios - Unity3D child 应用程序中的家长门问题如何解决?

c# - 在单个循环中循环多维数组

c# - Entity Framework : dynamically change model based on plugins found with MEF

c# - 在 nil xml 元素上指定属性

ios - WatchOS 从 iPhone 获取数据

ios - 在 ios swift 的新表格 View 中添加表格 View 的收藏项

design-patterns - Unity MonoBehaviour 单例

c# - 如何在Unity C#脚本中使用System.Xml.Linq?