Giter Club home page Giter Club logo

com.xrtk.core's Introduction

Welcome to the Mixed Reality Toolkit

The Mixed Reality Toolkit

The Mixed Reality Toolkit's primary focus is to make it extremely easy to get started creating Mixed Reality applications and to accelerate deployment to multiple platforms from the same Unity project.

Discord

Build Status

Modules Build Status OpenUpm
com.xrtk.core main openupm
com.xrtk.sdk main openupm
com.xrtk.lumin main openupm
com.xrtk.oculus main openupm
com.xrtk.ultraleap main openupm
com.xrtk.wmr main openupm

Overview

Developing Mixed Reality Applications in Unity is hard, and we know there are many developers who are frustrated with the current state of both game and general application development within the Mixed Reality ecosystem: a quickly developing market that encompasses the whole spectrum from Mobile Augmented Reality to high-end Virtual Reality.

To improve this situation, the Mixed Reality Toolkit's vision is simple, to provide a complete cross-platform solution for AR/XR/VR development that supports three different developer skill levels:

  • Beginner No Coding Required: Perfect for artists, Hackathons, and Quick Prototyping.

  • Intermediate Customizable: The framework is flexible enough so coders can customize what they need to cover edge cases with ease.

  • Advanced Extensible: The framework is easy to extend and modify to add additional custom services to meet specific criteria and needs.

Our philosophy is to enable developers to focus on building content and structure and not have to worry about the underlying complexities for supporting multiple platforms in order to build it everywhere and on each device as required. In short, built it once and ship it everywhere with as little effort as possible.

We’d like to invite all the major hardware vendors to help guide their platform-specific implementations, from Microsoft’s Windows Mixed Reality and Magic Leap’s Lumin OS to Google’s ARCore and Apple’s ARKit. Including any upcoming Mixed Reality capable devices that would like to be included for adoption.

Chat with the community

We recently moved our main conversations regarding Mixed Reality Toolkit over to Discord, which allows us to do a lot more (and the chat/streaming there is awesome), but we keep a Mixed Reality Toolkit presence on Slack too, in order to retain links to our friends on there.

Discord

Sponsors

The XRTK is an MIT-licensed open source project with its ongoing development made possible entirely by the support of these awesome sponsors and backers.

Sponsors
VIM VIM provides a universal format for fast BIM access for large and complex projects in the AEC industry.

We use the donations for continuous active development by core team members, web hosting, and licensing costs for build tools and infrastructure.

Supported Platforms

A major component of the Mixed Reality Toolkit is the Platform definitions that was employed to both accurately determine what platforms have been added to the scope of the project and also to determine when a platform is active/running.

Current Platforms

In development

Want to add a platform? Check out our new Template Generator!

com.xrtk.core's People

Contributors

azure-pipelines[bot] avatar fejza avatar jshowacre avatar mattetti avatar simondarksidej avatar stephenhodgson avatar wassx avatar xrtk-build-bot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

com.xrtk.core's Issues

Scene content is offset depending on the platform

When building for the HoloLens vs a VR headset, generally the scene content will be offset depending on where the camera starts.

There is a strong need to adjust the user's start position depending on the platform.

Requirements

  • It's generally recommended that the camera start at the scene origin (0,0,0).
  • Give developers the ability to set a custom "Starting Point" or "spawn point" for the scene.
  • Camera positions should start at about the same relative position no matter what platform.

Additional Context

  • HoloLens platform automatically starts at the origin.
  • WMR platforms automatically offset the camera on the Y by the user's height from the floor.
  • Additional platforms should be considered and an easy way to configure their offset be given.

When Teleporting the MixedRealityPlayspace is positioned to ground level

Describe the bug
Upon first teleporting, the viewer(camera) is placed at the position of the Teleport Target. This places the viewer at ground level.

To Reproduce
Steps to reproduce the behavior:
Create a terrain with textures.
Set the Playspace/Camera at 0,0,0 position
Adjust terrain to a -2 Y so that the player is positioned correctly upon start.
Using the WHMD Motion Contorller, move the thumb stick forward to produce the Teleport parabola curve.
manipulate the teleprot cursor to a position and release thumbstick.

Expected behavior
I expect that the player will be teleported to that XZ position but add the cursor Y value to the Player Y value.

Information(please complete the following information):

  • Version: XRTK
  • Release or Commit Latest Release

Additional context
Terrain is a procedural terrain created via GAIA.

Easier ability to copy deep nested profiles

Is your feature request related to a problem? Please describe.

When the need to copy a single nested profile arises, there's no easy way to copy it without first making copies of all the parent profiles.

Describe the solution you'd like

Copying a nested profile should also make copies of the parent profiles.

Profile parent doesn't get set properly on Clone

XRTK - Mixed Reality Toolkit Bug Report

Describe the bug

When cloning a profile, the new profile still has the old profile's parent (even though the profile we're cloning from is obviously different).

We need to set the parent profile when cloning a subprofile.

To Reproduce

Steps to reproduce the behavior:

  1. Clone any profile and try to navigate back a level.

Expected behavior

Should navigate back to the profile we just cloned from.

Actual behavior

Navigates back to the default profile which is what the clone is derived from.

Screenshots

If applicable, add screenshots to help explain your problem.

Your Setup (please complete the following information)

  • XRTK Version 0.1.10

Target Platform (please complete the following information)

  • WMR immersive
  • OpenVR
  • HoloLens
  • Lumin

Update gesture support

Is your feature request related to a problem? Please describe.

Currently windows gesture settings are in the gestures profile, but ideally they should be part of a platform specific setting.

Requirements

  • Per platform gesture settings should be assignable on the controller data provider's profile.

Add the ability to invert axes on controller mapping window.

XRTK - Mixed Reality Toolkit Feature Request

Is your feature request related to a problem? Please describe

Make it easier to flip the input axes in the controller mapping window.
At the moment it only shows the action, but the generic windows have a lot more granular control over the inversion settings.

How would you classify your suggestion

  • Usability / Configuration

Describe the solution you'd like

When opening the controller mapping window, I'd also like to configure the axis inversion along with the action raised.

Applies to both DualAxis and SingleAxis actions

"Supported Platforms" in readme

The list of supported platforms has a couple of surprising (to me) omissions.

Generally my concern is "how to support all 6DOF headsets". Generally OpenVR will handle everything on PC - but native Oculus support is needed to get in the Oculus Store and I believe native WMR support is needed for the Microsoft stores. I'm generally making stuff for public events so supporting the stores isn't a big priority to me.

What is incredibly useful is being able to build something that will run across PC, 6DOF Android - and hopefully in the next few weeks - the Oculus Quest.

The Lenovo Mirage Solo and the Quest are incredibly well suited to events and exhibitions. I'd be very interested to know if there are any plans for support but at the very least you could add them to your list to make it clear that they currently aren't supported.

(Incidentally - what's the distinction you're making in that list between OpenVR and SteamVR? I'm not aware of one that would effect this framework. They are essentially the same thing in this regard)

Native Oculus Support

XRTK - Mixed Reality Toolkit Feature Request

Is your feature request related to a problem? Please describe

Provide native Oculus support for deploying on Windows and Android.
Currently, OpenVR is supported but consumers need native access to properly publish in the Oculus store.

How would you classify your suggestion

  • New platform support

Describe the solution you'd like

Ability to create/deploy solutions on the following platforms natively:

  • Oculus Go
  • Oculus Rift
  • Oculus Quest

Describe alternatives you've considered

Using the Oculus Asset natively

"Missing profile for Windows Mixed Reality Spatial Mesh Observer" reported in project

Describe the bug

Whether one is configured or not, the following error keeps appearing in an XRTK project
"Missing profile for Windows Mixed Reality Spatial Mesh Observer"

Unknown as to the cause at this time

To Reproduce

Steps to reproduce the behavior:

  1. Open an XRTK project
  2. do "stuff" :S

Expected behavior

No errors from the toolkit being in the project... ever

Information(please complete the following information):

  • Version: [e.g. 2018.3.1f1]
  • Release or Commit sha: [e.g. Latest Release]

Additional context

Unknown if this is related to #57 as the error was showing up mainly there in testing

Stand-up a scoped registry server for upm

Overview

With the xrtk packages having the ability to be loaded via git, we also need to stand up a server to get the right scoped registries.

Requirements

  • XRTK-Core package should be able to add the scoped registries for the toolkit to the project's manifest.json
  • Developers should be able to search and download packages using the scoped registry in the editor's package manager.

Type or namespace name 'ExecuteEvents' could not be found

XRTK - Mixed Reality Toolkit Bug Report

Describe the bug

Reciving the following error in Unity Console:

Failed to register the MixedRealityInputSystem service: System.Exception - The Input system is missing the required GazeProviderType!
  at XRTK.Services.InputSystem.MixedRealityInputSystem..ctor (XRTK.Definitions.InputSystem.MixedRealityInputSystemProfile profile) [0x000da] in O:\Git\Source\Repos\XRTK\XRTK-Core\XRTK-Core\Assets\XRTK\Services\InputSystem\MixedRealityInputSystem.cs:44 

  at (wrapper managed-to-native) System.Reflection.MonoCMethod.InternalInvoke(System.Reflection.MonoCMethod,object,object[],System.Exception&)

  at System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) [0x00002] in <1f0c1ef1ad524c38bbc5536809c46b48>:0 
UnityEngine.Debug:LogError(Object)
XRTK.Services.MixedRealityToolkit:CreateAndRegisterService(Type, SupportedPlatforms, Object[]) (at Assets/XRTK/Services/MixedRealityToolkit.cs:888)
XRTK.Services.MixedRealityToolkit:CreateAndRegisterService(Type, Object[]) (at Assets/XRTK/Services/MixedRealityToolkit.cs:833)
XRTK.Services.MixedRealityToolkit:InitializeServiceLocator() (at Assets/XRTK/Services/MixedRealityToolkit.cs:383)
XRTK.Services.MixedRealityToolkit:InitializeInstance() (at Assets/XRTK/Services/MixedRealityToolkit.cs:282)
XRTK.Services.MixedRealityToolkit:get_Instance() (at Assets/XRTK/Services/MixedRealityToolkit.cs:206)
XRTK.Services.MixedRealityToolkit:ConfirmInitialized() (at Assets/XRTK/Services/MixedRealityToolkit.cs:319)
XRTK.Inspectors.Utilities.MixedRealityInspectorUtility:CheckMixedRealityConfigured(Boolean) (at Assets/XRTK/Inspectors/Utilities/MixedRealityInspectorUtility.cs:45)
XRTK.Inspectors.Profiles.MixedRealityCameraProfileInspector:OnEnable() (at Assets/XRTK/Inspectors/Profiles/MixedRealityCameraProfileInspector.cs:33)

To Reproduce

  1. New Unity Project. Closed Unity
  2. Manually added XRTK package manager dependency for v. 01.11
  3. Opened Unity and saw the XRTK.Core package added in Project/Packages
  4. Closed and reopened Unity Project
  5. Got prompt to "Apply Mixed Reality Toolkit Default Settings" clicked apply.
  6. Recieved error about the xrtk package cache and did not get the menu for XRTK.
_Library\PackageCache\com.xrtk.core@f6a39a3fce074f7de2e6dc0153839d9ebcfeabf4\Services\InputSystem\MixedRealityInputSystem.cs(1252,33): error CS0246: The type or namespace name 'ExecuteEvents' could not be found (are you missing a using directive or an assembly reference?)
  1. Closed project and deleted cache
  2. Opened project and observed the downloading of the xrtk package again.
  3. Recieved same error.
  4. Insured that the Player settings for XR is set to WMR. This downloaded the Window Mixed Reality package.
  5. Re-started Unity Project
  6. Not able to proceed

Expected behavior

Complete download and install of package with no errors.

Actual behavior

Errors.

Screenshots

XRTK Import settings:
image

image

Your Setup (please complete the following information)

  • Unity Version [e.g. 2019.2.0b1]
  • XRTK Version [e.g. 0.1.11]

Target Platform (please complete the following information)

  • WMR immersive
  • HoloLens

Additional context

Create a seed package that pulls in upm packages

Ideally we don't want to pull in the whole toolkit using the old .unitypackage route, but instead have a package that then installs the upm package.

The reason is that when importing the upm package the old way, the dependencies of the new packages will expect the xrtk to be in the Packages folder and in the editor package registry.

This seed package should also add the xrtk upm server registry per #85

Replace project upm packages with submodules

To ensure we're generating proper documentation without having multiple websites scattered about, we can pull in the upm packages as submodules and then trigger the doc generation here.

This will also ease development bc we can have all the packages in the same project, checkout other people's forks and changes and test them before adding.

Requirements

  • Ensure that our docs are always up to date and showing the latest information on all branches, we may need to ensure that the latest master commits are always checked out on our submodules.
  • When a submodule has new changes in its master branch then we should also trigger a rebuild here.

Controller line ends don't match pointer position

XRTK - Mixed Reality Toolkit Bug Report

Describe the bug

The controller pointer lines don't extend the full length form the tip of the pointer to the end of the raycasted line where the cursor may fall.

Expected behavior

Pointer lines should extend from the tip of the pointer to the cursor position.

Actual behavior

Pointer line ends much sooner than the cursor.

Screenshots

If applicable, add screenshots to help explain your problem.

Your Setup (please complete the following information)

  • XRTK Version 0.1.8

Target Platform (please complete the following information)

  • WMR immersive
  • OpenVR
  • HoloLens
  • Lumin

General Discussion: ARFoundation

XRTK - Mixed Reality Toolkit Request for Information

What are you trying to achieve?

Basically I want XRTK to automagically Setup the ARFoundation session as described in the docs, if I am targeting a compatible platform. I expect to be able to use the same MixedRealityPlayspace object as for any other platform supported by XRTK and not having to Setup Things differently.

My request for Information is: What is the Vision for how XRTK is goind to support this and how I might be able to help Implement it. My approach would be to have a dedicated CameraService e.g. for ARFoundation that will Setup Things as described in the docs etc. I am not familiar enough with XRTK yet to fully understand, how to Implement this without Breaking existing Patterns.

What have you already tried

I am using ARFoundation in my XRTK Project. But currently basically when Building for mobile AR I am using different Scenes and custom Setups.

What material have you referenced that didn't answer your question

ARFoundation docs:
https://docs.unity3d.com/Packages/[email protected]/manual/index.html

Absolute folder path can be incorrect

XRTK - Mixed Reality Toolkit Bug Report

Describe the bug

MixedRealityEditorSettings.MixedRealityToolkit_AbsoluteFolderPath is returning the wrong path if user has built a mpk.

Example return path:

"C:\\Dev\\XRTK.Core\\XRTK-Core\\.out\\.cache\\debug_lumin_clang-3.8_aarch64\\com.xrtk.core-aa2f9e3d7d60278b"

To Reproduce

Steps to reproduce the behavior:

  1. Build for Lumin
  2. Restart the editor
  3. Don't see logo header bc path is wrong.

Your Setup (please complete the following information)

  • Unity Version 2019.1.1f1
  • XRTK Version 0.1.10

Target Platform (please complete the following information)

  • WMR immersive
  • OpenVR
  • HoloLens
  • Lumin

XRTK - First time install

XRTK - Mixed Reality Toolkit Bug Report

Describe the bug

When first installing the XRTK via the UPM package manager, everything is installed by default. This creates a bit of a jarring experience with multiple installs running over and over.

To Reproduce

Steps to reproduce the behaviour:

  1. Add XRTK to the manifest.json
  2. Return to Unity

Expected behaviour

XRTK should be installed and it should then be possible to add more platforms as desired.

Actual behaviour

Everything is on, cannot easily through the Confg profile remove platforms and forced to use the UPM manager to remove afterwards.
Unity project is unusable for a few minutes while the packages are imported.

Your Setup (please complete the following information)

  • Unity Version 2019.1.0f2
  • XRTK Version 0.1.10

Target Platform (please complete the following information)

New project, user might not be sure which to start with.

Issues importing 0.1.1 into new project

Describe the bug

  • Getting a NRE on the unity synchronization context
  • Packages menu item doesn't ever get enabled.

To Reproduce

Steps to reproduce the behavior:

  1. Create a new project
  2. Download and import 0.1.1
  3. See errors

Expected behavior

No NREs on import and default pacakges should be autoloaded. (may be related?)

Information(please complete the following information):

  • Version: 2019.1.0f1
  • Release: 0.1.1

XRTK Controllers & Overall Basic Understanding

Hello XRTK cybernauts!!

I am extremely happy with the decentralized and holistic approach that XRTK is proposing for developers out there.

I came across XRTK via a Medium post by Stephen Hodgson who stated in this exciting post the following "Setting up the Mixed Reality Toolkit should be as easy as downloading, importing, and pressing configure"

( https://medium.com/@stephen_hodgson/getting-to-know-the-new-mixed-reality-toolkit-for-unity-ad21b0e331b1)

However, I must say, despite the amazing job and dedication that has been put to create these tools, at the moment I have found various problems just trying to set up my controllers and almost no documentation or tutorial to get this going smoothly.

I have read all the documentation in this link: ( https://github.com/Microsoft/MixedRealityToolkit-Unity/tree/mrtk_release/Documentation ).... and yes, it's all great, however, these really didn't give any specific understanding on how to set up my controllers or how to use the scripts in the XRTK to control objects or buttons or any sort of basic event system implementation.

In comparison with the with HoloToolkit-Unity-Preview-2017.4.3.0 , this was much more straight forward to set up, with a shorter learning curve, as just exploring the different example scenes gave me an understanding of how to implement the controllers and the scripts provided in the package. As well as this great video which really helped me out: https://youtu.be/FrZbmFPiD-E

The downside to it is that is dependent on Unity 2017.4.3.0 and for the VR I am developing I am really looking forward to getting the most of the Shader Graph and the VFX Graph only available in later versions.

I am using Unity 2018.3.0f2 and after setting up a basic scene, my Samsung Odessey gets recognized by the configuration of XRTK, however, my controllers are not appearing in the scene and I notice that my controller input name does not appear in the input manager.

So, I really hope the developers of XRTK could help me and also any future developer that stumbles upon this post to get more information on the basic setup of the Motion Controllers, and any overall basic understanding of how to use this promising Toolkit.

Best Wishes

Port MRTK DiagnosticsSystem over to XRTK

XRTK - Mixed Reality Toolkit Feature Request

Is your feature request related to a problem? Please describe

I'm always frustrated when my application does not run smooth or has bugs. So porting over the DiagnosticsSystem from the MRTK to the XRTK-Core will bring powerful diagnostic Tools for XRTK users to use.

How would you classify your suggestion

It's not a new feature but enhances the existing solution.

Describe the solution you'd like

Verify changes in MRTK DiagnosticsSystem and accordingly refactor XRTK's own one.

Enable WMR motion controller visualization in editor playmode

Currently the WMR motion controller visualization is only availible after building the app. It would be beneficial to also be able to load the controller's visualization while playing in the editor as well. This implementation would ideally not use an external library imported into the editor.

Unity crashes on a new project with first time XRTK import

XRTK - Mixed Reality Toolkit Bug Report

Describe the bug

Unity crashwhollops (technical term) on a brand new project and we setup XRTK.

To Reproduce

Steps to reproduce the behavior:

  1. Create new project
  2. Import XRTK
  3. Click Mixed Reality Toolkit -> Configure
  4. Boom

Expected behavior

Unity should not crash (and we should have world peace while we are at it)

Actual behavior

BadabingBadaboom. Because... Unity

Your Setup (please complete the following information)

  • Unity Version 2019.1.1
  • XRTK Version 0.1.10

Target Platform (please complete the following information)

Any

Latest release doesn't work with package seed

XRTK - Mixed Reality Toolkit Bug Report

Describe the bug

Latest release version is incompatible with the release mechanisms we're using to get the latest tag.

Expected behavior

Package seed should download the latest tag no matter the number.

Actual behavior

Package seed is installing 0.1.9 instead of 0.1.10

Screenshots

If applicable, add screenshots to help explain your problem.

Your Setup (please complete the following information)

  • XRTK Version 0.1.10

Target Platform (please complete the following information)

  • WMR immersive
  • OpenVR
  • HoloLens
  • Lumin

Additional Context

Seems like the sort we're doing shows it as:
image

Ideally we want to sort by date not tag number alone.

Errors when using default controller profiles

When testing Teleport cursor and Line Pointer using the Default Gizmo via a Samsung HMD, the pointer, gizmo and parabolic line will have excessive jittering and episodes of not rendering or complete an action. No additional scritps have been added.

To Reproduce
Steps to reproduce the behavior:

  1. Create a new project.
  2. Add latest version of XRTK master(02/13/2019)
    2.a On default scene, configure from Mixed Reality menu.
  3. Add a Unity Terrain object with gound texture
  4. Run using Odyssey+

Expected behavior
Same navigation ability as before with teleport and strafe

20190213_152506_mixedreality_moment

Information(please complete the following information):

  • Version: current
    Latest Release]

Update Input Actions to reference their profile parent

Currently there's no way to distinguish actions from one input action mapping from another.

We should add a reference to the input action profile they're created from to enable easier swap-ability, editing, and customization.

Requirements

  • Minimal changes to profile creation workflow
  • Minimal code changes
  • No noticeable performance differences between struct vs scriptable object
  • InputActions can be assigned by object reference or guid.
  • Provide a way to convert already established /created InputAction profiles with structs to updated scriptable object references

Acceptance Criteria

  • Users can create new Input Actions via profile inspector
  • Devs can utilize Input Actions in code to validate input actions from event data
  • Users can assign Input Actions in Input Handler components from multiple profiles

Notes

Care needs to be given in to Action Configuration and Design, to ensure it's not over-complicated, especially if we are merging Actions and Rules. Ideally, if we are chaining events it should be node based, similar to what is used in Animation for transitions.

Consideration also needs to be given towards inheritance and its role in the new Input Actions extensibility and what that would look like.

Motion Controllers parity with STEAMVR / UnReal Engine

XRTK - Mixed Reality Toolkit Feature Request

Is your feature request related to a problem? Please describe

VR ONLY
When writing an application that consumes Motion Controller input, navigation in the application envirionment does not translate well between platforms.
This causes the user to become confused on how to navigate or teleport when the hardware is different. With the popularity of Steam VR parity between conrtollers would be nice to have.

How would you classify your suggestion

  • New platform support
  • Usability / Configuration
  • Architecture / Services

Describe the solution you'd like

Working in the Unreal Engine, Motion Controllers are available with the STEM plugin. This said, one of the most divers differences is the functional use of the Thumb Stick for teleportation/navigation.

In the world of Windows MR the pressing the tumbstick forward and holding produces a parabolic line and target indicator where the user will be positioned after releasing the thumbstick.

In the world of STEAMVR and Unreal, teleporting behavior is accomplished by pressing down on the thumbstick to see the parabolic line and target with the release press prositioning the user to the tageted position. Pressing forward on the thumbstick once will only move the user forward a 'step' while pressing and holding moves the player in a walking/running in the Motion Controllers forward vector.

With that said, we should have the Motion Controller Navigation and Teleportation be in parity with the STEAMVR implimentation?

To be cross platform, I think that the different motion controllers should respond in familiar and predictable manners.
Maybe allowing for the application to switch between behaviors.

Describe alternatives you've considered

Leaving the XRTK implimentation as-is

Additional context

MixedRealityToolkitInspector freezes the editor

Describe the bug

XRTK's MixedRealityToolkitInspector will freeze the editor when the GameObject with the MixedRealityToolkit component attached to it is selected and active in hierarchy.

To Reproduce

Steps to reproduce the behavior:

  1. Edit the project manifest.json and add the XRTK
  2. Launch the editor and wait for it to import XRTK via package manager
  3. Configure the XRTK via context menu
  4. Select the MixedRealityToolkit GameObject in hierarchy

Expected behavior

The editor does not freeze and I can inspect the MixedRealityToolkit component in the inspector.

Information:

  • Unity 2018.3.11f1
  • UPM v0.1.0 release of XRTK

Additional context

NullReferenceException: Object reference not set to an instance of an object
XRTK.Services.MixedRealityToolkit.EnsureMixedRealityRequirements () (at Library/PackageCache/com.xrtk.core@792b32d81829ba6b3f7327366f70ea787e06b841/Services/MixedRealityToolkit.cs:643)
XRTK.Services.MixedRealityToolkit.InitializeServiceLocator () (at Library/PackageCache/com.xrtk.core@792b32d81829ba6b3f7327366f70ea787e06b841/Services/MixedRealityToolkit.cs:352)
XRTK.Services.MixedRealityToolkit.ResetConfiguration (XRTK.Definitions.MixedRealityToolkitConfigurationProfile profile) (at Library/PackageCache/com.xrtk.core@792b32d81829ba6b3f7327366f70ea787e06b841/Services/MixedRealityToolkit.cs:115)
XRTK.Inspectors.MixedRealityToolkitInspector.OnInspectorGUI () (at Library/PackageCache/com.xrtk.core@792b32d81829ba6b3f7327366f70ea787e06b841/Inspectors/MixedRealityToolkitInspector.cs:91)
UnityEditor.InspectorWindow.DoOnInspectorGUI (System.Boolean rebuildOptimizedGUIBlock, UnityEditor.Editor editor, System.Boolean wasVisible, UnityEngine.Rect& contentRect) (at C:/buildslave/unity/build/Editor/Mono/Inspector/InspectorWindow.cs:1625)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

manifest.json
{
  "dependencies": {
    "com.unity.package-manager-ui": "2.0.7",
    "com.unity.probuilder": "4.0.4",
    "com.unity.textmeshpro": "1.3.0",
    "com.unity.xr.arcore": "1.0.0-preview.24",
    "com.unity.xr.arfoundation": "1.0.0-preview.22",
    "com.unity.xr.arkit": "1.0.0-preview.27",
    "com.unity.xr.oculus.standalone": "1.29.1",
    "com.unity.xr.windowsmr.metro": "1.0.8",
    "com.xrtk.core": "https://github.com/XRTK/XRTK-Core.git#0.1.0",
    "com.xrtk.upm-git-extension": "https://github.com/XRTK/UpmGitExtension.git#0.9.1",
    "com.unity.modules.ai": "1.0.0",
    "com.unity.modules.animation": "1.0.0",
    "com.unity.modules.assetbundle": "1.0.0",
    "com.unity.modules.audio": "1.0.0",
    "com.unity.modules.cloth": "1.0.0",
    "com.unity.modules.director": "1.0.0",
    "com.unity.modules.imageconversion": "1.0.0",
    "com.unity.modules.imgui": "1.0.0",
    "com.unity.modules.jsonserialize": "1.0.0",
    "com.unity.modules.particlesystem": "1.0.0",
    "com.unity.modules.physics": "1.0.0",
    "com.unity.modules.physics2d": "1.0.0",
    "com.unity.modules.screencapture": "1.0.0",
    "com.unity.modules.terrain": "1.0.0",
    "com.unity.modules.terrainphysics": "1.0.0",
    "com.unity.modules.tilemap": "1.0.0",
    "com.unity.modules.ui": "1.0.0",
    "com.unity.modules.uielements": "1.0.0",
    "com.unity.modules.umbra": "1.0.0",
    "com.unity.modules.unityanalytics": "1.0.0",
    "com.unity.modules.unitywebrequest": "1.0.0",
    "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
    "com.unity.modules.unitywebrequestaudio": "1.0.0",
    "com.unity.modules.unitywebrequesttexture": "1.0.0",
    "com.unity.modules.unitywebrequestwww": "1.0.0",
    "com.unity.modules.vehicles": "1.0.0",
    "com.unity.modules.video": "1.0.0",
    "com.unity.modules.vr": "1.0.0",
    "com.unity.modules.wind": "1.0.0",
    "com.unity.modules.xr": "1.0.0"
  },
  "lock": {
    "com.xrtk.core": {
      "hash": "792b32d81829ba6b3f7327366f70ea787e06b841",
      "revision": "0.1.0"
    },
    "com.xrtk.upm-git-extension": {
      "hash": "9cdc5a92ad0d1f3606026765a29d458555e54251",
      "revision": "0.9.1"
    }
  }
}```

Update package profile to be editable

Overview

Currently the list of packages is kept in an editor only profile and is used by the mixed reality package utilities to install the default packages.

Expected Behavior

When user 1 removes a default package, user 2 shouldn't reimport that package on their machine.

Actual Behaviour

When a user 2 pulls the repository, they get all of the default projects imported, even though
user 1 may have explicitly removed that package from the project.

Initialize ARFoundation session

XRTK - Mixed Reality Toolkit Feature Request

Is your feature request related to a problem? Please describe

Opening a new feature request as part of the general Arfoundation support discussed in #170. The first step to have ARFoundatin working is to properly Setup the session.

How would you classify your suggestion

  • New platform support

Describe the solution you'd like

For ARFoundation to work, the following steps Need to be implemtend:

  • Create ARSession component when running with ARFoundation enabled. It can be added to any GameObject. Fort XRTK preferably to the playspace GO
  • Create ARSessionOrigin component, probably also best added to the playspace GO
  • Add TrackedPoseDriver to main camera
  • Implement to optionally add ARCameraBackground to the main camrea GO so the video feed is rendered to the background

Additional context

https://docs.unity3d.com/Packages/[email protected]/manual/index.html

Mixed Reality package settings don't properly get saved to disk

XRTK - Mixed Reality Toolkit Bug Report

Describe the bug

When editing the XRTK packages in the package window the MixedRealityPackageSettings.asset doesn't properly get saved to disk.

To Reproduce

  1. Open the XRTK Packages window
  2. Remove one or two of the default packages.
  3. Save Project
  4. Verify MixedRealityPackageSettings.asset data matches what's seen in the inspector.

Expected behavior

MixedRealityPackageSettings.asset's raw data should match what's shown in the inspector

Actual behavior

Changes are not saved to disk

Your Setup (please complete the following information)

  • Unity Version: 2019.1.1f1
  • XRTK Version: 0.1.11

Add Android and iOS to SupportedPlatforms enum

XRTK - Mixed Reality Toolkit Feature Request

Is your feature request related to a problem? Please describe

The feature request solves the problem that user's currently can't set whether specific XRTK components and Features should be available on Android or iOS. By adding those two to the Enumeration, user's can disable e.g. the UnityTouchDataProvider when executing on Android or iOS.

How would you classify your suggestion

  • New platform support
  • Usability / Configuration

Describe the solution you'd like

Add Android and iOS to SupportedPlatforms in a backwards compatible way.

Review adoption patterns for XRTK - Full vs Individual components

Is your feature request related to a problem? Please describe.

In discussions with adopters we are seeing multiple patterns for consuming the XRTK, from:

  1. Brand new project
  2. Existing project and upgrading (inc HTK)
  3. Transferring from MRTK to XRTK
  4. Isolating individual components to adopt in to another projects framework

(List is not exhaustive and will likely increase with time)

Describe the solution you'd like

Ultimately this proposal demands the need for multiple deployment options to address each of the above environments with several documented / supported deployment patterns, including:

  1. Base deployment (already supported)
  2. Existing project install (supported but needs better documentation)
  3. Requires helpers to migrate the configuration utilised by an existing MRTK solution
  4. Requires SDK components to be able to externalise services / components

Additional context

This proposal marks the start of the discussion and prompts open discussion by all for any patterns we may have missed.

Package seed should only download the packages that are compatible

XRTK - Mixed Reality Toolkit Bug Report

Describe the bug

When the package seed imports the latest releases from each xrtk package there may not have been an update to dependencies that will end up causing compiler errors.

Ideally the seed package should only download the latest confirmed working configuration.

This should go away with #85 but in the mean time is an issue we need to be aware of.

Easiest workaround, is to just move the xrtk.core to the previous version.

Expected behavior

Seed .unitypackge should only download the validated configuration.

Actual behavior

Seed is downloading the latest tags from each package even though the lastest might not support each others dependencies.

Remove the requirement for the main toolkit GameObject to be present in the scene to configure profiles

Overview

Currently the MixedRealityToolkit GameObject is required in the scene to configure the various profiles. Ideally this should be done in a way that doesn't check or enforce the presence of the service locator in any scene. This may also unlock the ability to copy deeply nested profiles easier as well (#35).

Describe the solution you'd like

If the user selects a profile in the project window, then it should work without the need to instantiate the service locator in the scene. To do this we may need to keep references to the guids of any connected profiles.

Describe alternatives you've considered

UnityEngine.Object references could work here as well.

Canvas Utility can not be added to canvas

XRTK - Mixed Reality Toolkit Bug Report

Describe the bug

After finding all missing scripts on my canvases after porting from mrtk, I try to re-add the canvas utility to make my ui buttons work. But when trying to add the util, it appears in the inspector for a fraction of a second and is removed immediately.

To Reproduce

Steps to reproduce the behavior:

  1. Create empty object in scene
  2. Add ui canvas as a child
  3. try to add canvas utility to canvas

Expected behavior

1 canvas utility ensured on a canvas. If the utility is added automatically on runtime for objects in scene, how should I build prefabs with ui which are added dynamically?

Actual behavior

It seems that the [DisallowMultipleComponent] in CanvasUtility.cs does not work as expected

Your Setup (please complete the following information)

  • Unity Version 2019.1.1f1
  • XRTK Version 0.1.9

Target Platform (please complete the following information)

  • WMR immersive
  • HoloLens

Additional info (workaround)

When porting prefabs from mrtk to xrtk and adding the new canvas utility, commenting the [DisallowMultipleComponent] in canvasutility.cs allowed me (sometimes) to add the util.

No readme info in upm default branch

Currently to support upm we had to update the default branches to the upm specific one, unfortunately this also caused us to lose the nice readme landing page from dev/master.

Is there a place for dev discussion / planning for the future of XRTK?

I know there's a Project Setup project as well as a Roadmap in the README but is there another place for devs to discuss the state of current / future development of this project?

If not I propose we use Issues as a way to do this publicly. If we do use Issue then I think it would be a good idea to add new Labels such as Discussion, Proposal, Feature, WIP, as well as labels for each platform (WMR, OpenVR, Lumin, etc.)

Add Focus Testing

Port some of the initial HTK focus tests to ensure focusing works properly

Move project folders from Assets to Packages

In order to take full advantage of the upm system, our projects assets should be embedded in the Packages folder, not the assets folder.

Requirements

  • Move the ProjectRoot/XRTK-Core/Assets/XRTK folder into to ProjectRoot/XRTK-Core/Packages/XRTK/
    • Move all sub-projects to the same pattern
  • Update the CI git split-tree command to use the updated path.
  • Ensure that docfx builds correctly.

Add WMR motion controller animations

Currently the Windows Mixed Reality motion controllers are loaded from the driver, but are not animated with the current input values from the device.

The WindowsMixedRealityControllerVisualizer implementation needs to be finished.

Provide Unreal Engine plugin

Currently there is very minimal support for HoloLens and virtually no support for windows Mixed Reality Headsets in Unreal Engine. The MRTK and XRTK have been focusing onn support for Unity only.

I would like to propose that an Unreal Plugin be developed that can be imported into the Unreal Engine, to extend the same functionality that is used by the XRTK for Unity. I am not sure if this would be a seperate project or an inclusion to the existing project.

I don't know that this would be a C++ project and because some IDEs do not support multiple project langauges, a seperate project would make sense.
Blueprint code can be used to create examples and tests.

I would like to open this for discussion if possible.

Wireframe shader causes error on Android player build

XRTK - Mixed Reality Toolkit Bug Report

Describe the bug

When targeting the Android platform and XR Setting is enabled building the Player will fail because of the Mixed Reality Toolkit/Wireframe shader.

Shader error in 'Mixed Reality Toolkit/Wireframe': unrecognized identifier 'DEFAULT_UNITY_VERTEX_OUTPUT_STEREO_EYE_INDEX' at line 47 (on gles3)

Compiling Vertex program with STEREO_MULTIVIEW_ON
Platform defines: UNITY_NO_DXT5nm UNITY_NO_RGBM UNITY_ENABLE_REFLECTION_BUFFERS UNITY_FRAMEBUFFER_FETCH_AVAILABLE UNITY_NO_CUBEMAP_ARRAY UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 SHADER_API_MOBILE UNITY_HARDWARE_TIER3 UNITY_COLORSPACE_GAMMA UNITY_LIGHTMAP_DLDR_ENCODING

To Reproduce

  • Create Unity Project
  • Import XRTK
  • Switch to Android platform
  • Build

Expected behavior

The Android Player can be built.

Actual behavior

Build Fails.

Your Setup (please complete the following information)

  • Unity 2019.1.2f1
  • XRTK development branch

Target Platform (please complete the following information)

  • Android

Provide a clear story for working with multiple scenes

When working with multiple scenes in the XRTK it's assumed that you have a base scene that starts with the service locator, and each additional scene is additively loaded in.

We should modify the editor scripts to load in the base scene, if it's set in the XRTK preferences window. If no base scene is setup then we could prompt the user if they wanted to make the current scene the base scene and set it in the preferences.

MixedRealityPlayspace->Main Camera does not have an audio listener

XRTK - Mixed Reality Toolkit Bug Report

Describe the bug

If there is no Camera already existing in the scene and the Toolkit is not configured in the scene a modal asks whether to configure it. It will create the MixedRealityToolkit GO and the MixedRealityPlayspace GO with a camera inside. The camera GO does not have an audio listener.

People are used to have an audio listener on the main camera since it must exist only once in the scene and camera is usually the place where it lives.

To Reproduce

  1. Create empty scene
  2. Anwer yes when asked to configure XRTK or use the menu
  3. Press play
  4. Inspect warning -> There is no audio listener in the scene

Expected behavior

If an audio listener does not exist yet in the scene, the toolkit adds it to the main camera created.

Actual behavior

There is no audio listener attached.

Your Setup (please complete the following information)

  • Unity Version: 2019.1.1f1
  • XRTK Version: 0.1.9

Target Platform (please complete the following information)

  • WMR immersive
  • OpenVR
  • HoloLens
  • Lumin

Mouse input needs to be updated to better support 2d vs 3d

Describe the bug
The Mouse needs to better support 2d screens. There's been a lot of feedback that the spatial mouse doesn't make sense in the editor and in a 2d app environment. The default mouse implementation should be smart enough to handle transitioning between traditional 2d mode vs 3d spatial mode.

Expected behavior

  • In editor and standalone 2d apps the mouse should not be spatialized.
  • In VR/AR applications the mouse is spatialized.

Assert error every frame demanding "Near plane must be zero for raycast distances to be correct"

XRTK - Mixed Reality Toolkit Bug Report

Describe the bug

Focus provider expects near plane to be zero on UIRaycastCamera, when that makes no sense.
It pops an assert every frame because of this.

To Reproduce

Open up and configure a blank scene with Lumin setup. Hit play

Debug.Assert(UIRaycastCamera.nearClipPlane.Equals(0f), "Near plane must be zero for raycast distances to be correct"); will pop from method private void RaycastGraphics(IMixedRealityPointer pointer, PointerEventData graphicEventData, LayerMask[] prioritizedLayerMasks, PointerHitResult hitResult) in the FocusProvider.

Expected behavior

No assert error every frame.

Actual behavior

Assert error every frame

Your Setup (please complete the following information)

  • Unity Version 2019.1.0f2
  • XRTK Version 0.1.8
  • XRTK Lumin configured

Target Platform (please complete the following information)

  • WMR immersive
  • OpenVR
  • HoloLens
  • Lumin

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.