问题描述
我目前正在与Hololens 2合作进行一个项目,现在正尝试在用手射线瞄准的位置生成物体。首先,我使用MRTK的空间感知系统创建了一个网格,现在我想在光标位置生成一个对象。
我了解了许多解决方法,例如cursor.transform.position(不起作用,可能是因为我使用了默认光标吗?)和实例化组件“轻按一下”或使用RaycastHit。不幸的是,因为这是我第一次与Hololens合作,所以我不知道哪种解决方案可能是最好的。我认为产卵并不是那么困难,但是也许我只是盲目的。
是否有一种简单的方法可以解决我的问题或从注视光标中获取正确的坐标?
解决方法
在这里,请使用IMixedRealityPointerHandler
。参见documentation。
public void OnPointerClicked(MixedRealityPointerEventData eventData)
{
var result = eventData.Pointer.Result;
var hitPosition = result.Details.Point;
// Check if hitting spatial mapping layer
if (result.CurrentPointerTarget?.layer == 31)
Instantiate(yourPrefab,hitPosition,yourRotation);
else
Debug.Log("Hit surface with layer: " + result.CurrentPointerTarget?.layer.ToString());
}