Code Monkey home page Code Monkey logo

mrdesignlabs_unity_tools's Introduction

MRDL Unity Tools

This repo is where Microsoft's Windows Mixed Reality Design team publishes the Unity tools we use in examples and explorations. These set of tools have been separated into this repo for easy inclusion in your project or repo. This tools repository is now used as a submodule throughout our MRDesignLabs examples.

Including as a SubModule

The simplest way to add the tools to your project is via a submodule. This will create and internal link within your repo to the MRDesignLab set of tools.

To do this simply navigate to your Assets folder in your project and use:

This will create the submodule for Mixed Reality Design Labs Unity tools and allow you to stay up to date with changes to the base toolset or decide not to integrate newer changes.

Upgrading the Submodule

To upgrade the submodule you'll want to do the following to sync to head, pull and commit:

  • git submodule foreach git checkout HEAD
  • git submodule foreach git pull
  • git add .

This should checkout the individual submodules to the latest revision and pull the content. You will see that they have new changes if you do git status in the main repository. Then you simply add the submodule directories and commit. Note that you can also decide to sycn a submodule to a specific commit based on your projects dependencies.

Contributing

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

mrdesignlabs_unity_tools's People

Contributors

ei2kpi avatar hattmarris1 avatar microsoft-github-policy-service[bot] avatar microsoftopensource avatar msftgits avatar paseb avatar peted70 avatar railboy avatar robertmccoy 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

Watchers

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

mrdesignlabs_unity_tools's Issues

InteractionManager.SourcePressed is obsolete while InteractionManager.InteractionSourcePressed doesn't work as well

What does this effect?
MRDesignLabs_Unity_Tools(master)/HUX

Unity editor version:
Unity 2018.1.6f1

Describe the bug
While using HUX toolkit in Unity project, I have faced an error in InteractionManager.cs:

Assets/Extern/MRDesignLab/HUX/Scripts/Interaction/InteractionManager.cs(131,57): error CS0619: `UnityEngine.XR.WSA.Input.InteractionManager.SourcePressed' is obsolete: `SourcePressed is deprecated, and will be removed in a future release. Use InteractionSourcePressed instead. (UnityUpgradable) -> InteractionSourcePressedLegacy'

As I change from 'SourcePressed' to 'InteractionSourcePressed' it gives me:

Assets/Extern/MRDesignLab/HUX/Scripts/Interaction/InteractionManager.cs(131,57): error CS0123: A method or delegate HUX.Interaction.InteractionManager.InteractionManager_SourcePressedCallback(UnityEngine.XR.WSA.Input.InteractionSourceState)' parameters do not match delegate `System.Action<UnityEngine.XR.WSA.Input.InteractionSourcePressedEventArgs>(UnityEngine.XR.WSA.Input.InteractionSourcePressedEventArgs)' parameters

Also, even it says (UnityUpgradable) -> InteractionSourceReleasedLegacy, API Updater doen't provide any possible solution/fix.

InteractionManager using the wrong event data for IMoveHandler

In the ManipulationUpdatedEvent the interaction manager tries to fire a OnMove event but uses the wrong event data. OnMove requires AxisEventData and not PointerEventData which leads to errors when it tries to validate the event data.

https://github.com/Microsoft/MRDesignLabs_Unity_Tools/blob/a129550db5cd215cbc819ac205c29a5e642934f8/HUX/Scripts/Interaction/InteractionManager.cs#L764

https://docs.unity3d.com/ScriptReference/EventSystems.IMoveHandler.OnMove.html

Axis Scaling

I'm wondering, is the scaling in x,y and z axis implemented or is it missing from the BoundingBoxShell? I haven't found anything referencing it directly so I started implementing it on my own but there're quite a lot of classes it has to be added.

Old project Could not copy the file "*\Plugins\ARM\SpatialUnderstanding.dll" because it was not found

An older project from Unity 2017 gives me this error while trying to deploy on the Hololens 2.

How do I fix this or how do i disable the SpatialUndestanding, there does not seem to be an ARM version present of this DLL.

Severity Code Description Project File Line Suppression State Error MSB3030 Could not copy the file "D:\Builds\ShoeConfiguratorARM\Shoes Configurator\Plugins\ARM\SpatialUnderstanding.dll" because it was not found. Shoes Configurator D:\Builds\ShoeConfiguratorARM\Shoes Configurator\Unity Data.vcxitems 217

Using Fluent Design controls outside HoloToolkit

Hello,

I am trying to use Fluent Design controls in one of my Unity project. I added MRDesignLabs_Unity_Tools in a sample Unity project and got compile errors which are dependent on HoloToolkit.

Is it possible for to use the Controls like Buttons, Dialogs, etc. outside HoloToolkit?

Any help will be appreciated.
Thank you.

Front camera probleme with HUX Hololens

Hi,

I try to use MRDesignLabs_Unity_Tools with my hololens project.
My project scan room with front camera and decrypt qrcode if qrcode is present in the room.

With HoloToolKit Camera no problem, but with MRDesignLabs_Unity_Tools HUX Camera the qrcode doesn't not decrypt and the result is already empty ... =/

Have U any idea ? thx a lot =)

SendMessageUpwards("OnTapped") in [CompoundButtonSpeech.cs] does not follow the InteractionManager pattern

SendMessageUpwards("OnTapped") in CompoundButtonSpeech.cs means that a new OnTapped method that takes 0 arguments needs to be created in the InteractionReciever.

The more frequent OnTapped method in InteractionReceivers usually have the GO and the eventArgs so CompoundButtonSpeech should follow this pattern as well:
protected override void OnTapped(GameObject obj, InteractionManager.InteractionEventArgs eventArgs)

CompoundButton[X]Inspector(s) should allow for EditMultipleObjects

When you have a lot of buttons, it becomes a pain to have to assign the buttons profiles individually.
The CompounButton[x]Inspector classes should add the [CanEditMultipleObjects] attribute and properly support it.

Note: Might need to look at this for help on how to properly support multiple object assignments.

Actual hold events differs from IHold interface

BoundingBox Ghost Collider

I need to instantiate a game object and then move its position. Before the move I add the BoundingBoxTarget script. Once the object stopped moving the AppBar appears. After Im done with the object, I would click the Remove button on the AppBar and this is when the Ghost Collider appears. Visually the object is destroyed but whats left in the Hierchy is what appears to be a Ghost Collider. This Collider takes up quite a bit of space and prevents focusing on other game objects in the sceene.

The only way I was able to work around this was, before I start moving the object I set the AppBar instance to false ( ManipulationManager.Instance.ActiveAppBar.gameObject.SetActive(false); ) then after the object is in its target location I turn it back on and the ghost Collider goes away.

SceneObjectField in HUXEditorUtils fails when two components of the same type are on a single game object

https://github.com/Microsoft/MRDesignLabs_Unity_Tools/blob/ec32b17034e2950784d084f838bd2b858bdc7b23/HUX/Editor/Utility/HUXEditorUtils.cs#L236-L267

If the component type that SceneObjectField is looking for is present twice on the same object, the dropdown/popup portion of this field implementation fails and will always select the first of the two components.

This appears to be an issue with EditorGUILayout.Popup(selectedIndex, displayedOptions) ignoring duplicate entries. Solution would be to include a unique component to the string in displayedOptions, such as the index of the entry so there is never a duplicate string.

3 Errors Returned On Import

Hello, when I import this into my Unity asset folder I am returned the following errors:

Removing Assets/MRDesignLabs_Unity_Tools/HUX/Resources/Models/Cursor/Cursor_move/CursorRing.fbm/templates because the asset does not exist
UnityEditorInternal.InternalEditorUtility:ProjectWindowDrag(HierarchyProperty, Boolean)
UnityEditor.DockArea:OnGUI()

Unsupported DDS file.
UnityEditorInternal.InternalEditorUtility:ProjectWindowDrag(HierarchyProperty, Boolean)
UnityEditor.DockArea:OnGUI()

Assets/HoloToolkit/SpatialSound/Scripts/UAudioManager/UAudioManager.cs(463,10): error CS0616: `ContextMenu': is not an attribute class

any suggestions? thanks!

FilterTags editor UI unusably slow in larger projects

The FilterTagsDrawable class responsible for drawing the UI for the FilterTags property field runs so slowly as to be unusable in larger projects. The reason for this seems to be that the list of choices for the dropdown calls the function GetAllInteractibleObjects() every OnGUI (every frame, or possibly even more often). This function searches all objects in the current scene and also all objects in the project assets and for larger projects takes a significant amount of time.

Solution would be to cache the results of the process that requires GetAllInteractibleObjects() so it only gets called the first time the UI is rendered instead of every OnGUI.

InteractionManager fires two DoubleTappedEvents

In InteractionManager.cs there are two ways that DoubleTappedEvent can be called... One in OnShellSelectEvent and the other in TappedCallback. This results in two events being fired every time a DoubleTapped event occurs. It seems like the OnShellSelectedEvent is doing its own timing to decide whether to fire a double tapped event while the other one is using the GestureRecognizer which should give a more consistent experience.

Suggestion is to remove the DoubleTappedEvent from OnShellSelectEvent.

InputEventHandling

I am having a question. Why does the MRDesignLab use another InputEventHandling System than the HoloToolkit?
I am trying to combine parts of both repos and it does not work without inserting both InputManagers. Adding two InputManagers feeling weird/wrong.

For Example:
I have a object with a boundingbox (MRDL) and a separat slider (HTK). Without inserting the InputManager from the HTK the ManipulatinEvent is not forwarded to the slider.

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.