【问题标题】:Vuforia: Move object without scalingVuforia:移动对象而不缩放
【发布时间】:2018-01-09 01:52:05
【问题描述】:

我正在使用 Unity 在 Vuforia 中开展一个项目,我设置了一个 VuMark 以便使用 ARCamera 跟踪对象。

我想在虚拟空间中锁定一个对象(在 VuMark 上设置)的大小,这样当我将 VuMark 靠近相机时,虚拟对象的大小应该保持不变。

我尝试在 Unity Inspector 中锁定 Y 轴,但并没有解决问题。

有没有人知道如何保持对象的大小不变,无论虚拟空间中的特定轴如何,或者对象是否更靠近相机?

【问题讨论】:

    标签: unity3d vuforia


    【解决方案1】:

    显然,您的摄像头可以在 X、Y、 和 Z 轴上移动,因此冻结 Y 轴不会影响摄像头与 vumark 的距离。 p>

    最重要的是,根据 Vuforia 的工作方式,该插件将在世界空间中移动相机或移动 VuMark 对象。您的项目设置为使用哪一个未包含在您的问题中(或者您尝试锁定轴的两个中的哪一个)。

    解决这个问题的方法是实际计算与相机的距离(无论哪个物体在移动,这个计算都是准确的),然后将该值提供回 3D 物体的比例(使用一些乘数)。

    这是我用来测试的脚本:

    public class KeepSize : MonoBehaviour {
        void Update () {
            float dist = (Camera.main.transform.position - transform.position).magnitude / 3f;
    
            transform.localScale = new Vector3(dist, dist, dist);
        }
    }
    

    除以 3 是一个任意值,可以使简单的立方体很好地适应屏幕。

    【讨论】:

    • 距离也可以使用Vector3.Distance(Vector3, Vector3).magnitude
    猜你喜欢
    • 2019-02-24
    • 1970-01-01
    • 1970-01-01
    • 2014-11-17
    • 1970-01-01
    • 2018-09-30
    • 1970-01-01
    • 2019-02-28
    相关资源
    最近更新 更多