我正在使用Unity在Vuforia开展一个项目,我设置了一个VuMark,以便使用ARCamera跟踪一个对象。
我想在虚拟空间中锁定一个对象(在VuMark上设置)的大小,这样当我将VuMark靠近摄像机时,虚拟对象的大小应该保持不变。 / p>
我尝试在Unity Inspector中锁定Y轴,但它无法解决问题。
是否有人知道如何保持对象的大小不变,无论虚拟空间中的特定轴如何,或者对象是否更接近相机?
答案 0 :(得分:0)
显然,你的相机可以在X,Y,和 Z轴上移动,因此冻结Y轴不会影响相机接近vumark的距离。
最重要的是,通过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是一个任意值,可以很好地在屏幕上显示一个简单的立方体。