我试图在混合现实工具包中的铰接式指针的末尾放置一个预览对象。如何获得指针撞击几何体的位置?
我将DefaultControllerPointer设置为铰接的手,但是我需要获取它的引用,然后获取笔尖的变换位置。
答案 0 :(得分:2)
这是一个示例,该示例说明您如何遍历所有控制器,找到作为射线的铰接手,然后获取终点的位置(以及射线的起点),最后确定射线是否命中几何图形(对象),因为它具有默认长度:
using Microsoft.MixedReality.Toolkit;
using Microsoft.MixedReality.Toolkit.Input;
using UnityEngine;
public class HitPointTest : MonoBehaviour
{
// Update is called once per frame
void Update()
{
foreach(var source in MixedRealityToolkit.InputSystem.DetectedInputSources)
{
// Ignore anything that is not a hand because we want articulated hands
if (source.SourceType == Microsoft.MixedReality.Toolkit.Input.InputSourceType.Hand)
{
foreach (var p in source.Pointers)
{
if (p is IMixedRealityNearPointer)
{
// Ignore near pointers, we only want the rays
continue;
}
if (p.Result != null)
{
var startPoint = p.Position;
var endPoint = p.Result.Details.Point;
var hitObject = p.Result.Details.Object;
if (hitObject)
{
var sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere);
sphere.transform.localScale = Vector3.one * 0.01f;
sphere.transform.position = endPoint;
}
}
}
}
}
}
}
请注意,这是针对最新的mrtk_development代码库,也应从RC1开始使用。
答案 1 :(得分:0)
将其用于实例化的预览对象,并将其放在更新中:
makecert -r -pe -n "CN=MyCertName" -b 01/01/2019 -e 01/01/2039 -eku 1.3.6.1.5.5.7.3.3 -sky signature -a sha256 -len 2048 -ss my -sr LocalMachine