因此包含网格对象的对象始终具有相同的大小,但是网格对象具有不同的形状和大小。
我希望您看到我的照片并了解它。实际上,蓝色区域是透明的。
我目前正在使用移动相机在地板上拍摄Ray,我想将物体放置在Ray撞击的位置。
我认为我们应该首先使用除对象中心坐标以外的其他坐标。 而且我认为我们应该将物体放置在碰撞点上方一点。网格对象的一半大小,
所以我尝试了这个,但是失败了。我该怎么解决?
下面是我的源代码。
Vector3 hitPositon = hit.Pose.position;
Vector3 meshObjectCenter = ObjectPrefab.GetComponent<Renderer>().bounds.center;
Vector3 meshObjectSize = ObjectPrefab.GetComponent<Renderer>().bounds.size;
Vector3 CenterPointRevision = meshObjectCenter - hitPositon;
Vector3 YAxisRevision = new Vector3(0, meshObjectSize.y / 2, 0);
Vector3 NewPoint = ARObjectPrefab.transform.position - CenterPointRevision + YAxisRevision;
ObjectPrefab.transform.position = NewPoint;
对象是这种格式,上面的图片看起来成功但失败了。
答案 0 :(得分:1)
位置就是命中位置减去中心偏移量和y轴偏移量
Vector3 hitPositon = hit.Pose.position;
Vector3 meshObjectCenter = ObjectPrefab.GetComponent<Renderer>().bounds.center;
Vector3 meshObjectSize = ObjectPrefab.GetComponent<Renderer>().bounds.size;
Vector3 YAxisRevision = new Vector3(0, meshObjectSize.y / 2, 0);
ObjectPrefab.transform.position = hitPositon - meshObjectCenter + YAxisRevision;