microsoft / MixedRealityToolkit-Unity

This repository is for the legacy Mixed Reality Toolkit (MRTK) v2. For the latest version of the MRTK please visit https://github.com/MixedRealityToolkit/MixedRealityToolkit-Unity
https://aka.ms/mrtkdocs
MIT License
6k stars 2.12k forks source link

Integrating Leap Motion Unity Modules causes compile errors #11338

Closed znebby closed 9 months ago

znebby commented 1 year ago

Describe the bug

After integrating the Leap Motion Unity Modules, I get the following errors:

Library\PackageCache\com.microsoft.mixedreality.toolkit.foundation@321dd3d08b64\Providers\LeapMotion\LeapMotionArticulatedHand.cs(163,40): error CS1929: 'Vector3' does not contain a definition for 'ToVector3' and the best extension method overload 'Utils.ToVector3(Vector4)' requires a receiver of type 'Vector4'

Library\PackageCache\com.microsoft.mixedreality.toolkit.foundation@321dd3d08b64\Providers\LeapMotion\LeapMotionArticulatedHand.cs(164,99): error CS1061: 'Quaternion' does not contain a definition for 'ToQuaternion' and no accessible extension method 'ToQuaternion' accepting a first argument of type 'Quaternion' could be found (are you missing a using directive or an assembly reference?)

These bugs happen because the variables referenced are already Vector3 and Quaternion. Presumably in a previous version of UltraLeap, they were not.

To reproduce

Steps to reproduce the behavior:

Expected behavior

There should be no compile errors

Your setup

RogPodge commented 1 year ago

Will be looking at this, it's probable that our code was designed to work with earlier versions of the Leap Motion Unity Modules, and the new ones updated the API in a breaking way.

stgrosshh commented 1 year ago

Just remove the ToQuaternion() and ToVector3() calls, since Bone is now defined to use Quaternion and Vector3: Vector3 position = hand.Fingers[metacarpalIndex].bones[boneIndex].PrevJoint; Quaternion rotation = hand.Fingers[metacarpalIndex].bones[boneIndex].Rotation;

Another issue is in LeapMotionDeviceManager. There is no MainCameraProvider any more.

if LEAPMOTIONPLUGIN_PRESENT

// from plugin version 6 on, there is no MainCameraProvider, but camera can be configured on Leap(XR)ServiceProvider // MainCameraProvider.mainCamera = CameraCache.Main;

endif

IssueSyncBot commented 9 months ago

We appreciate your feedback and thank you for reporting this issue.

Microsoft Mixed Reality Toolkit version 2 (MRTK2) is currently in limited support. This means that Microsoft is only fixing high priority security issues. Unfortunately, this issue does not meet the necessary priority and will be closed. If you strongly feel that this issue deserves more attention, please open a new issue and explain why it is important.

Microsoft recommends that all new HoloLens 2 Unity applications use MRTK3 instead of MRTK2.

Please note that MRTK3 was released in August 2023. It features an all-new architecture for developing rich mixed reality experiences and has a minimum requirement of Unity 2021.3 LTS. For more information about MRTK3, please visit https://www.mixedrealitytoolkit.org.

Thank you for your continued support of the Mixed Reality Toolkit!