MRTK Unity 获取 WMR 控制器位置和旋转
MRTK Unity getting WMR Controller position and rotation
我想知道如何在 Unity 上使用 MRTK 获取 WMR 控制器位置和旋转。
场景:物体被其中一个控制器(Left/Right)拾取,物体将跟随控制器的位置和旋转。
当前状态
我可以触发 grab/pick 事件并验证用手习惯 (R/L)。
这是我的基本代码示例:
public class WeaponControl : MonoBehaviour, IMixedRealityInputHandler
{
private Handedness pickedHand;
private bool isPickedUp = false;
public void OnInputDown(InputEventData eventData)
{
if(eventData.InputSource.SourceType == InputSourceType.Controller && isPickedUp == false)
{
Debug.Log("Left Hand");
isPickedUp = true;
pickedHand = eventData.Handedness;
}
}
public void OnInputUp(InputEventData eventData)
{
//throw new System.NotImplementedException();
}
/// Method on tracking controller below
///
}
目标
跟踪所选控制器的位置和旋转
根据你的描述,我建议使用MRTKv2提供的Solver来实现物体跟随控制器,而不是手动获取控制器的Position和Rotation。在求解器系统中,可以在SolverHandler组件中设置引用对象,根据不同的需要选择不同的求解器。
更多信息请查看:https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/README_Solver.html
我想知道如何在 Unity 上使用 MRTK 获取 WMR 控制器位置和旋转。
场景:物体被其中一个控制器(Left/Right)拾取,物体将跟随控制器的位置和旋转。
当前状态
我可以触发 grab/pick 事件并验证用手习惯 (R/L)。 这是我的基本代码示例:
public class WeaponControl : MonoBehaviour, IMixedRealityInputHandler
{
private Handedness pickedHand;
private bool isPickedUp = false;
public void OnInputDown(InputEventData eventData)
{
if(eventData.InputSource.SourceType == InputSourceType.Controller && isPickedUp == false)
{
Debug.Log("Left Hand");
isPickedUp = true;
pickedHand = eventData.Handedness;
}
}
public void OnInputUp(InputEventData eventData)
{
//throw new System.NotImplementedException();
}
/// Method on tracking controller below
///
}
目标
跟踪所选控制器的位置和旋转
根据你的描述,我建议使用MRTKv2提供的Solver来实现物体跟随控制器,而不是手动获取控制器的Position和Rotation。在求解器系统中,可以在SolverHandler组件中设置引用对象,根据不同的需要选择不同的求解器。 更多信息请查看:https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/README_Solver.html