Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a multistep configurator to facilitate project setup after importing MRTK #9652

Merged
merged 16 commits into from
Apr 23, 2021

Conversation

MaxWang-MS
Copy link
Contributor

Overview

This PR adds a multistep configurator to help guide users through the project setup phase after importing MRTK. The configurator is based on the original one-page window and now covers more settings. The configurator aims to provide a more streamlined experience for novices and pros alike.

Features

  • Guide users through choosing the proper XR pipeline
  • Show users only relevant information on the project setting page (i.e. no legacy XR related settings when XRSDK is used)
  • Prompt users to import TMP
  • Show users how to import the samples when MRTK is imported via UPM
  • Show links to docs and API refs in the configurator and the MRTK menu
  • Add some Windows XR Plugin and Microsoft OpenXR plugin specific settings to the project setting (non-blocking for this PR, may be separated into a subsequent PR after this one is merged)

Screenshots

Please note the "TO DO" shown in some of the following screenshots are not by mistake - the documentation page has yet to be created and thus TO DO is used as a placeholder.

image
image
image
image

Changes

@MaxWang-MS MaxWang-MS added the Build / Tools Issues related to build and tools. label Apr 13, 2021
@MaxWang-MS MaxWang-MS added this to the MRTK 2.7.0 milestone Apr 13, 2021
@MaxWang-MS
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 3 pipeline(s).

@MaxWang-MS
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 3 pipeline(s).

@SimonDarksideJ
Copy link
Contributor

Nice addition as a walk-through guide for new users.

Might also suggest a last step for additional reading and pointers to getting started guides (with pretty pictures :D )
What to do next.

Copy link
Contributor

@RogPodge RogPodge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the code design side of things looks good, will pull down and make pass of running through the tool itself and add more comments in the future.

{ MRConfig.SpatialPerceptionCapability, true },
public static MixedRealityProjectConfiguratorWindow Instance { get; private set; }

public static bool IsOpen => Instance != null;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can Instance ever be set to null? Double checking where how this variable is used even though this was the way we did it before.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ping on this @MaxWang-MS

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instance cannot be set to null but by default it is null before initialization. We have static functions to show the window and we use this to see if there has been an instance of the window that we can reuse.

@keveleigh
Copy link
Contributor

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 3 pipeline(s).

}
if (GUILayout.Button("Learn more"))
{
Application.OpenURL(XRPipelineDocsUrl);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clicking on this button didn't open a URL for me in any of my browsers.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is expected as the page has yet to be created... That will be a separate PR in a separate repo.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a way we can alter the button behavior to make it clearer to users that the page is not yet available?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just updated the string to point it to a page on our MR docs site describing different Unity versions and choices of plugins. I will update the link to the new MRTK docs page once it gets published.

@RogPodge
Copy link
Contributor

Tested out in editor and noticed a few readability/wording fixes. Looks good and effective otherwise!

@RogPodge RogPodge dismissed their stale review April 20, 2021 20:35

None of the remaining requested changes are blocking

Co-Authored-By: RogPodge <[email protected]>
Co-Authored-By: Kurtis <[email protected]>
@MaxWang-MS
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 3 pipeline(s).

@MaxWang-MS
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 3 pipeline(s).

Assets/MRTK/Core/Utilities/Editor/XRSettingsUtilities.cs Outdated Show resolved Hide resolved
{
BuildTargetGroup currentBuildTarget = BuildPipeline.GetBuildTargetGroup(EditorUserBuildSettings.activeBuildTarget);
XRGeneralSettings settingsOfCurrentTarget = XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(currentBuildTarget);
#pragma warning disable CS0618 // Suppressing the warning to support xr management plugin 3.x and 4.x
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a different way we should be getting the loaders wherever the warning is happening?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is intended as I do not want to add more version defines... Again this is needed to support 3.x and 4.x XR Plugin Management package.

@MaxWang-MS
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 3 pipeline(s).

@MaxWang-MS
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 3 pipeline(s).

Copy link
Contributor

@keveleigh keveleigh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Haven't yet pulled it down to try the flow myself, but the code seems good and the demos I've seen are awesome!

{ MRConfig.SpatialPerceptionCapability, true },
public static MixedRealityProjectConfiguratorWindow Instance { get; private set; }

public static bool IsOpen => Instance != null;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ping on this @MaxWang-MS

@MaxWang-MS MaxWang-MS merged commit 70689b9 into microsoft:main Apr 23, 2021
@MaxWang-MS MaxWang-MS deleted the add_configurator branch September 6, 2022 23:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Build / Tools Issues related to build and tools.
Projects
None yet
4 participants