如何获得 WMR 运动控制器的旋转(或变换)
How do you get the rotation (or transform) of WMR motion controllers
有没有办法使用 WMRToolkit 访问控制器的旋转?我知道解算器,但他们似乎专注于使用位置。作为参考,思路很简单,就是把另一个gameobject的rotation设置成和controller的rotation一样,貌似提前一个简单的task.Thanks就可以了!
本文档展示了如何使用Unity API获取运动控制器的位置和旋转:Getting a hand or motion controller's pose
此外,Unity 2019.1中新增了XR输入映射系统,如果您使用的是2019.1或更高版本的unity,可以尝试以下代码:
bool TryGetCenterEyeFeature(out Quaternion rotation)
{
InputDevice device = InputDevices.GetDeviceAtXRNode(XRNode.RightHand);
if (device.isValid)
{
if (device.TryGetFeatureValue(CommonUsages.deviceRotation, out rotation))
return true;
}
rotation = Quaternion.identity;
return false;
}
有没有办法使用 WMRToolkit 访问控制器的旋转?我知道解算器,但他们似乎专注于使用位置。作为参考,思路很简单,就是把另一个gameobject的rotation设置成和controller的rotation一样,貌似提前一个简单的task.Thanks就可以了!
本文档展示了如何使用Unity API获取运动控制器的位置和旋转:Getting a hand or motion controller's pose
此外,Unity 2019.1中新增了XR输入映射系统,如果您使用的是2019.1或更高版本的unity,可以尝试以下代码:
bool TryGetCenterEyeFeature(out Quaternion rotation)
{
InputDevice device = InputDevices.GetDeviceAtXRNode(XRNode.RightHand);
if (device.isValid)
{
if (device.TryGetFeatureValue(CommonUsages.deviceRotation, out rotation))
return true;
}
rotation = Quaternion.identity;
return false;
}