我有一个在Unitation2019.4.9中使用MRTK的应用程序,用于Hololens 2,在该应用程序中,我需要从摄像机到空间网格来创建一个对象的实例。
下面的方法返回与网格冲突点的RaycastHit,并要求参数为视口中的坐标(值介于0和1之间)。
(0,0) =左下角。
(1,1) =右上角。
按照这种方法,当我给出坐标(0.5,0.5)时,对象就会正确地出现。但是当我离开中心的时候,物体就会越来越远离碰撞点。
物体倾向于向中心放置。例如,如果我想把它放在右边,它看起来会移到左边,同样的逻辑会出现在每个方向上。屏幕边缘越靠近,精度就越差。
有人知道会出什么问题吗?我正在使用ViewportPointToRay。
private bool GetWorldPoint(Vector2 p, out RaycastHit hit)
{
hit = default;
Ray ray = Camera.main.ViewportPointToRay(p);
if (Physics.Raycast(ray, out RaycastHit h, Mathf.Infinity, spatialLayer))
{
hit = h;
return true;
}
return false;
}https://stackoverflow.com/questions/68255326
复制相似问题