xrtk / com.xrtk.sdk Goto Github PK
View Code? Open in Web Editor NEWThe SDK assets for the XRTK
Home Page: https://github.com/XRTK/XRTK-Core
License: MIT License
The SDK assets for the XRTK
Home Page: https://github.com/XRTK/XRTK-Core
License: MIT License
Within the XRTK, we will include the integration to the XRUX project. providing the bridging logic to enable the XRTK to make use of the UX library.
This will also provide extensibility to developers to create their own bridging components by having a frame of reference.
In essence, the integration components will:
This is not an extensive list and it will grow as the integration evolves.
The global input listener component is defined as follows:
public abstract class InputSystemGlobalListener : MonoBehaviour
I'd much prefer to remove the abstract modifier. That allows more flexibility in how it can be used.
Personally I prefer attaching InputSystemGlobalListener
on its own to a game object and then implementing e.g. IMixedRealityInputHandler
in my own components. Since the global listener is attached to the same game object input events will fire. Currently using InputSystemGlobalListener
is only possible using inheritance.
The package should include the dependencies in the package.json
file.
Should be easier to do in 2019.1.0f2
The console warning text color is hard to read on the diagnostics window. It's too light.
One of the smoke tests we should do with the SDK is to ensure that it's not platform dependent.
The pin button on the diagnostics prefab doesn't properly highlight when a pointer hovers over it
In a brand new project, adding the SDK project causes a DirectoryNotFound error to be logged
Steps to reproduce the behavior:
No error
Error stack
DirectoryNotFoundException: Could not find a part of the path 'C:\LocalDevelopment\XRTKTesting\XRTK-020\Assets\XRTK.Generated\SDK\Prefabs'.
System.IO.__Error.WinIOError (System.Int32 errorCode, System.String maybeFullPath) (at <7d97106330684add86d080ecf65bfe69>:0)
System.IO.FileSystemEnumerableIterator`1[TSource].HandleError (System.Int32 hr, System.String path) (at <7d97106330684add86d080ecf65bfe69>:0)
System.IO.FileSystemEnumerableIterator`1[TSource].CommonInit () (at <7d97106330684add86d080ecf65bfe69>:0)
System.IO.FileSystemEnumerableIterator`1[TSource]..ctor (System.String path, System.String originalUserPath, System.String searchPattern, System.IO.SearchOption searchOption, System.IO.SearchResultHandler`1[TSource] resultHandler, System.Boolean checkHost) (at <7d97106330684add86d080ecf65bfe69>:0)
System.IO.FileSystemEnumerableFactory.CreateFileNameIterator (System.String path, System.String originalUserPath, System.String searchPattern, System.Boolean includeFiles, System.Boolean includeDirs, System.IO.SearchOption searchOption, System.Boolean checkHost) (at <7d97106330684add86d080ecf65bfe69>:0)
System.IO.Directory.InternalGetFileDirectoryNames (System.String path, System.String userPathOriginal, System.String searchPattern, System.Boolean includeFiles, System.Boolean includeDirs, System.IO.SearchOption searchOption, System.Boolean checkHost) (at <7d97106330684add86d080ecf65bfe69>:0)
System.IO.Directory.InternalGetFiles (System.String path, System.String searchPattern, System.IO.SearchOption searchOption) (at <7d97106330684add86d080ecf65bfe69>:0)
System.IO.Directory.GetFiles (System.String path, System.String searchPattern, System.IO.SearchOption searchOption) (at <7d97106330684add86d080ecf65bfe69>:0)
XRTK.Editor.Utilities.GuidRegenerator.RegenerateGuidsInternal (System.String assetsRootPath) (at Packages/com.xrtk.core/Editor/Utilities/GuidRegenerator.cs:65)
XRTK.Editor.Utilities.GuidRegenerator.RegenerateGuids (System.String assetsRootPath, System.Boolean refreshAssetDatabase) (at Packages/com.xrtk.core/Editor/Utilities/GuidRegenerator.cs:44)
XRTK.Editor.PackageInstaller.TryInstallAssets (System.String sourcePath, System.String destinationPath, System.Boolean regenerateGuids) (at Packages/com.xrtk.core/Editor/PackageInstaller.cs:76)
XRTK.SDK.Editor.SDKPackageInstaller.CheckPackage () (at Packages/com.xrtk.sdk/Editor/SDKPackageInstaller.cs:47)
UnityEditor.EditorApplication.Internal_CallDelayFunctions () (at C:/buildslave/unity/build/Editor/Mono/EditorApplication.cs:209)
When toggling the diagnostics window on/off on Magic Leap the window is way too close to the user and cannot be seen clearly, and it's hard to pin/unpin it in place.
In a project consuming the 0.1.28 packages, the following error occurs in the Console when building.
Saving Prefab to immutable folder is not allowed: Packages/com.xrtk.sdk/Features/Diagnostics/Prefabs/DefaultDiagnosticsWindow.prefab
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
If you also open the Prefab from the editor, it locks up and spams the console with the following error:
ArgumentException: Saving Prefab to immutable folder is not allowed: 'Packages/com.xrtk.sdk/Features/Diagnostics/Prefabs/DefaultDiagnosticsWindow.prefab'
UnityEditor.PrefabUtility.ValidatePath (UnityEngine.GameObject instanceRoot, System.String path) (at <83a73882c51c4602b3d34743827d03e7>:0)
UnityEditor.PrefabUtility.SaveAsPrefabAssetArgumentCheck (UnityEngine.GameObject instanceRoot, System.String path) (at <83a73882c51c4602b3d34743827d03e7>:0)
UnityEditor.PrefabUtility.SaveAsPrefabAsset (UnityEngine.GameObject instanceRoot, System.String assetPath, System.Boolean& success) (at <83a73882c51c4602b3d34743827d03e7>:0)
UnityEditor.Experimental.SceneManagement.PrefabStage.SavePrefab () (at <83a73882c51c4602b3d34743827d03e7>:0)
UnityEditor.Experimental.SceneManagement.PrefabStage.SavePrefabWithVersionControlDialogAndRenameDialog () (at <83a73882c51c4602b3d34743827d03e7>:0)
UnityEditor.Experimental.SceneManagement.PrefabStage.AutoSave () (at <83a73882c51c4602b3d34743827d03e7>:0)
UnityEditor.Experimental.SceneManagement.PrefabStage.HandleAutoSave () (at <83a73882c51c4602b3d34743827d03e7>:0)
UnityEditor.Experimental.SceneManagement.PrefabStage.Update () (at <83a73882c51c4602b3d34743827d03e7>:0)
UnityEditor.SceneManagement.StageNavigationManager.ValidateAndUpdatePrefabStages (System.Boolean showDialogIfInvalid) (at <83a73882c51c4602b3d34743827d03e7>:0)
UnityEditor.SceneManagement.StageNavigationManager.Update () (at <83a73882c51c4602b3d34743827d03e7>:0)
System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <437ba245d8404784b9fbab9b439ac908>:0)
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <437ba245d8404784b9fbab9b439ac908>:0)
System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <437ba245d8404784b9fbab9b439ac908>:0)
System.Delegate.DynamicInvokeImpl (System.Object[] args) (at <437ba245d8404784b9fbab9b439ac908>:0)
System.MulticastDelegate.DynamicInvokeImpl (System.Object[] args) (at <437ba245d8404784b9fbab9b439ac908>:0)
System.Delegate.DynamicInvoke (System.Object[] args) (at <437ba245d8404784b9fbab9b439ac908>:0)
UnityEditor.EditorApplication.Internal_CallUpdateFunctions () (at <83a73882c51c4602b3d34743827d03e7>:0)
Create a new project and import the XRTK. Any attempt to build or "look" at the "DefaultDiagnosticsWindow" prefab causes the issue.
When I was reviewing my pull request for refactoring the configuration profiles, I noticed that the spatial observer configuration profiles for each of the specific platforms were missing. I went to search for them, and could not find them. Likely we'll need them to auto register themselves much like the way we want to do it for input data providers.
In the default profiles, the WindowsMixedReality Data provider type is incorrect.
Easily fixed by reselecting the WMR type, but needs fixing by default
Steps to reproduce the behavior:
It should work by default?
If applicable, add screenshots to help explain your problem.
For beginners, it would be good to have a simple script that can be used to alter the height or placement of a root Game Object (e.g. Scene Objects GO) based on whether the project was launched in AR (e.g. HoloLens) or VR
Note this is not for an example, it is meant to be a simple SDK component the user can drop in their solution
A simple generic script that provides parameters for:
From these, the current scene, on startup, would be tuned to either an AR or VR mode.
in AR, background would be disabled and the Content Root GO would be set to the Starting Height
In VR, the background would be enabled and the Content Root GO should be at Zero
Additionally, it would also be good if the bottom of the content would be able to react to Floor placement from the spatial awareness system, but not essential
As you can observe in the screenshot below, the SImulation Hands are missing key elements in their mapping configuration
Correct Mapping configuration
After Mixed Reality Toolkit Configure errors appear. Unity Plays but no controllers are visible
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 D:\M\Template\XRTKTemplate12b\Library\PackageCache\[email protected]\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 <7d97106330684add86d080ecf65bfe69>:0
UnityEngine.Debug:LogError(Object)
XRTK.Services.MixedRealityToolkit:CreateAndRegisterService(Type, SupportedPlatforms, Object[]) (at Library/PackageCache/[email protected]/Services/MixedRealityToolkit.cs:870)
XRTK.Services.MixedRealityToolkit:CreateAndRegisterService(Type, Object[]) (at Library/PackageCache/[email protected]/Services/MixedRealityToolkit.cs:820)
XRTK.Services.MixedRealityToolkit:InitializeServiceLocator() (at Library/PackageCache/[email protected]/Services/MixedRealityToolkit.cs:368)
XRTK.Services.MixedRealityToolkit:ResetConfiguration(MixedRealityToolkitConfigurationProfile) (at Library/PackageCache/[email protected]/Services/MixedRealityToolkit.cs:117)
XRTK.Inspectors.MixedRealityToolkitInspector:OnInspectorGUI() (at Library/PackageCache/[email protected]/Inspectors/MixedRealityToolkitInspector.cs:99)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
Failed to start the Input System!
UnityEngine.Debug:LogError(Object)
XRTK.Services.MixedRealityToolkit:InitializeServiceLocator() (at Library/PackageCache/[email protected]/Services/MixedRealityToolkit.cs:403)
XRTK.Services.MixedRealityToolkit:ResetConfiguration(MixedRealityToolkitConfigurationProfile) (at Library/PackageCache/[email protected]/Services/MixedRealityToolkit.cs:117)
XRTK.Inspectors.MixedRealityToolkitInspector:OnInspectorGUI() (at Library/PackageCache/[email protected]/Inspectors/MixedRealityToolkitInspector.cs:99)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
Unable to register a service with a null concrete IMixedRealitySpatialObserverDataProvider type.
UnityEngine.Debug:LogError(Object)
XRTK.Services.MixedRealityToolkit:CreateAndRegisterService(Type, SupportedPlatforms, Object[]) (at Library/PackageCache/[email protected]/Services/MixedRealityToolkit.cs:852)
XRTK.Services.MixedRealityToolkit:InitializeServiceLocator() (at Library/PackageCache/[email protected]/Services/MixedRealityToolkit.cs:434)
XRTK.Services.MixedRealityToolkit:ResetConfiguration(MixedRealityToolkitConfigurationProfile) (at Library/PackageCache/[email protected]/Services/MixedRealityToolkit.cs:117)
XRTK.Inspectors.MixedRealityToolkitInspector:OnInspectorGUI() (at Library/PackageCache/[email protected]/Inspectors/MixedRealityToolkitInspector.cs:99)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
Failed to start Lumin Spatial Observer Data Provider!
UnityEngine.Debug:LogError(Object)
XRTK.Services.MixedRealityToolkit:InitializeServiceLocator() (at Library/PackageCache/[email protected]/Services/MixedRealityToolkit.cs:441)
XRTK.Services.MixedRealityToolkit:ResetConfiguration(MixedRealityToolkitConfigurationProfile) (at Library/PackageCache/[email protected]/Services/MixedRealityToolkit.cs:117)
XRTK.Inspectors.MixedRealityToolkitInspector:OnInspectorGUI() (at Library/PackageCache/[email protected]/Inspectors/MixedRealityToolkitInspector.cs:99)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
Additional error that appearted once Core has been added
SocketException: An attempt was made to access a socket in a way forbidden by its access permissions.
System.Net.Sockets.Socket.Bind (System.Net.EndPoint localEP) (at <0079a30f96a047348857e1cecc6c638a>:0)
SyntaxTree.VisualStudio.Unity.Messaging.UdpSocket.Bind (System.Net.IPAddress address, System.Int32 port) (at <7bfe50ea87ae444bb97944401234ceb7>:0)
SyntaxTree.VisualStudio.Unity.Messaging.Messager..ctor (System.Int32 port) (at <7bfe50ea87ae444bb97944401234ceb7>:0)
SyntaxTree.VisualStudio.Unity.Messaging.Messager.BindTo (System.Int32 port) (at <7bfe50ea87ae444bb97944401234ceb7>:0)
SyntaxTree.VisualStudio.Unity.Bridge.VisualStudioIntegration+<>c__DisplayClass9_0.<.cctor>b__0 () (at <843b7c5ab4d34b2491669c24f4d94522>:0)
SyntaxTree.VisualStudio.Unity.Bridge.Project+<>c__DisplayClass40_0.<RunOnceOnUpdate>b__0 () (at <843b7c5ab4d34b2491669c24f4d94522>:0)
UnityEditor.EditorApplication.Internal_CallUpdateFunctions () (at C:/buildslave/unity/build/Editor/Mono/EditorApplication.cs:200)
An AssetDatabase Refresh is pending after a successful Package Manager request. You should not call AssetDatabase.Refresh at this time because it can lead to import-related errors.
No errors; Motion Controllers registered
WMR Headset, OpenVR
Errors when Right_DefaultControllerPointer(Clone) or Right_ParabolicPointer(Clone) are selected in scene during play mode. UWP or OpenVR mode
"com.xrtk.core": "https://github.com/XRTK/XRTK-Core.git#0.1.18"
,Does not show error. I believe these were rendering a line in previous version of XRTK. I'm not sure what the purpose of these objects are
If I click that Right_DefaultControllerPointer(Clone)
NullReferenceException: Object reference not set to an instance of an object
UnityEditor.PropertyHandler.OnGUILayout (UnityEditor.SerializedProperty property, UnityEngine.GUIContent label, System.Boolean includeChildren, UnityEngine.GUILayoutOption[] options) (at C:/buildslave/unity/build/Editor/Mono/ScriptAttributeGUI/PropertyHandler.cs:203)
UnityEditor.EditorGUILayout.PropertyField (UnityEditor.SerializedProperty property, UnityEngine.GUIContent label, System.Boolean includeChildren, UnityEngine.GUILayoutOption[] options) (at C:/buildslave/unity/build/Editor/Mono/EditorGUI.cs:9341)
UnityEditor.EditorGUILayout.PropertyField (UnityEditor.SerializedProperty property, UnityEngine.GUILayoutOption[] options) (at C:/buildslave/unity/build/Editor/Mono/EditorGUI.cs:9325)
XRTK.SDK.Inspectors.UX.Pointers.BaseControllerPointerInspector.OnInspectorGUI () (at Library/PackageCache/com.xrtk.sdk@2a5ea7c69c675a92e54c82216e78960289cc1bf2/Inspectors/UX/Pointers/BaseControllerPointerInspector.cs:65)
XRTK.SDK.Inspectors.UX.Pointers.LinePointerInspector.OnInspectorGUI () (at Library/PackageCache/com.xrtk.sdk@2a5ea7c69c675a92e54c82216e78960289cc1bf2/Inspectors/UX/Pointers/LinePointerInspector.cs:40)
UnityEditor.UIElements.InspectorElement+<CreateIMGUIInspectorFromEditor>c__AnonStorey1.<>m__0 () (at C:/buildslave/unity/build/Editor/Mono/Inspector/InspectorElement.cs:462)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
If I click Right_ParabolicPointer(Clone)
NullReferenceException: Object reference not set to an instance of an object
UnityEditor.PropertyHandler.OnGUILayout (UnityEditor.SerializedProperty property, UnityEngine.GUIContent label, System.Boolean includeChildren, UnityEngine.GUILayoutOption[] options) (at C:/buildslave/unity/build/Editor/Mono/ScriptAttributeGUI/PropertyHandler.cs:203)
UnityEditor.EditorGUILayout.PropertyField (UnityEditor.SerializedProperty property, UnityEngine.GUIContent label, System.Boolean includeChildren, UnityEngine.GUILayoutOption[] options) (at C:/buildslave/unity/build/Editor/Mono/EditorGUI.cs:9341)
UnityEditor.EditorGUILayout.PropertyField (UnityEditor.SerializedProperty property, UnityEngine.GUILayoutOption[] options) (at C:/buildslave/unity/build/Editor/Mono/EditorGUI.cs:9325)
XRTK.SDK.Inspectors.UX.Pointers.BaseControllerPointerInspector.OnInspectorGUI () (at Library/PackageCache/com.xrtk.sdk@2a5ea7c69c675a92e54c82216e78960289cc1bf2/Inspectors/UX/Pointers/BaseControllerPointerInspector.cs:65)
XRTK.SDK.Inspectors.UX.Pointers.LinePointerInspector.OnInspectorGUI () (at Library/PackageCache/com.xrtk.sdk@2a5ea7c69c675a92e54c82216e78960289cc1bf2/Inspectors/UX/Pointers/LinePointerInspector.cs:40)
XRTK.SDK.Inspectors.UX.Pointers.TeleportPointerInspector.OnInspectorGUI () (at Library/PackageCache/com.xrtk.sdk@2a5ea7c69c675a92e54c82216e78960289cc1bf2/Inspectors/UX/Pointers/TeleportPointerInspector.cs:48)
XRTK.SDK.Inspectors.UX.Pointers.ParabolicTeleportPointerInspector.OnInspectorGUI () (at Library/PackageCache/com.xrtk.sdk@2a5ea7c69c675a92e54c82216e78960289cc1bf2/Inspectors/UX/Pointers/ParabolicTeleportPointerInspector.cs:28)
UnityEditor.UIElements.InspectorElement+<CreateIMGUIInspectorFromEditor>c__AnonStorey1.<>m__0 () (at C:/buildslave/unity/build/Editor/Mono/Inspector/InspectorElement.cs:462)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
thrown at each frame
During build steps we're failing to unload all the profiles located in Assets/XRTK.Generated/SDK/Profiles
Shows up in build task: https://dev.azure.com/xrtk/Mixed%20Reality%20Toolkit/_build/results?buildId=5406&view=results
No errors when validating project assets
Errors when validating project assets
Importing the SDK via UPM by following the testplan descibred in XRTK/com.xrtk.core#684
reveals a bunch of warnings at step 3 of the testplan. Assets that are references by configuration profiles are missing, only their meta-files are available which Unity removed and logs warnings. While this only logs warnings it will cause errors as those files are required for hand controllers to work.
Examples for the warnings:
A meta data file (.meta) exists but its asset Assets/XRTK.Generated/SDK/Profiles/Input/DataProviders/HandControllers/RecordedPoses/FlatHandPoseData.json' can't be found. When moving or deleting files outside of Unity, please ensure that the corresponding .meta file is moved or deleted along with it.
UnityEditor.EditorApplication:Internal_CallDelayFunctions()
Removing Assets/XRTK.Generated/SDK/Profiles/Input/DataProviders/HandControllers/RecordedPoses/FlatHandPoseData.json because the asset does not exist
A meta data file (.meta) exists but its asset 'Assets/XRTK.Generated/SDK/Profiles/Input/DataProviders/HandControllers/RecordedPoses/GrabHandPoseData.json' can't be found. When moving or deleting files outside of Unity, please ensure that the corresponding .meta file is moved or deleted along with it.
UnityEditor.EditorApplication:Internal_CallDelayFunctions()
`Removing Assets/XRTK.Generated/SDK/Profiles/Input/DataProviders/HandControllers/RecordedPoses/GrabHandPoseData.json because the asset does not exist
Follow the testplan at XRTK/com.xrtk.core#684
Assets are imported together with the SDK.
Assets are missing.
When installing the SDK using the Getting Started or recommended new project guidelines, the wrong version of the Core project is installed due to the dependency being wrong in the manifest.
This was finally identified in XRTK/com.xrtk.core#798
This causes no end of issues with running a project.
XRTK.Core should be using the latest version when the SDK is installed first
XRTK.Core 0.2.7 is installed which creates numerous issues and prevent solutions from running
Ideally this needs to be automated as there is no clear indication of issue (e.g. script errors) and the results are varying.
Some of the serialisation parameters in the mapping files missed getting updated, mostly for off hands
e.g
reference: XRTK.Providers.Controllers.OpenVR.ViveWandController, XRTK
should have been changed to
reference: XRTK.Providers.Controllers.OpenVR.ViveWandOpenVRController, XRTK
for BOTH hands.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.