Skip to content

Commit 614466f

Browse files
authored
Merge pull request #7087 from wiwei/issue7086
Update the extension service creator to work when the extension package isn't installed
2 parents 6de5cf7 + e7a67d4 commit 614466f

2 files changed

Lines changed: 15 additions & 6 deletions

File tree

Assets/MixedRealityToolkit.Tools/ExtensionServiceCreator/ExtensionServiceCreator.cs

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using Microsoft.MixedReality.Toolkit.Utilities.Editor;
77
using System;
88
using System.Collections.Generic;
9+
using System.IO;
910
using System.Reflection;
1011
using System.Text;
1112
using System.Threading.Tasks;
@@ -255,7 +256,8 @@ public string SampleCode
255256

256257
#region static
257258

258-
private static readonly string DefaultExtensionsFolderName = "MixedRealityToolkit.Extensions";
259+
private static readonly string DefaultGeneratedFolderName = "MixedRealityToolkit.Generated";
260+
private static readonly string DefaultExtensionsFolderName = "Extensions";
259261
private static readonly string DefaultExtensionNamespace = "Microsoft.MixedReality.Toolkit.Extensions";
260262
private static readonly string PersistentStateKey = "MRTK_ExtensionServiceWizard_State_Before_Recompilation";
261263
private static readonly string ScriptExtension = ".cs";
@@ -273,7 +275,7 @@ public string SampleCode
273275

274276
#region paths
275277

276-
private string ExtensionsFolder => MixedRealityToolkitFiles.MapModulePath(MixedRealityToolkitModuleType.Extensions);
278+
private string ExtensionsFolder => Path.Combine("Assets", DefaultGeneratedFolderName, DefaultExtensionsFolderName);
277279
private string ServiceTemplatePath => MixedRealityToolkitFiles.MapRelativeFilePath(MixedRealityToolkitModuleType.Tools, "ExtensionServiceCreator/Templates/ExtensionScriptTemplate.txt");
278280
private string InspectorTemplatePath => MixedRealityToolkitFiles.MapRelativeFilePath(MixedRealityToolkitModuleType.Tools, "ExtensionServiceCreator/Templates/ExtensionInspectorTemplate.txt");
279281
private string InterfaceTemplatePath => MixedRealityToolkitFiles.MapRelativeFilePath(MixedRealityToolkitModuleType.Tools, "ExtensionServiceCreator/Templates/ExtensionInterfaceTemplate.txt");
@@ -413,7 +415,13 @@ public bool ValidateAssets(List<string> errors)
413415

414416
if (!AssetDatabase.IsValidFolder(ExtensionsFolder))
415417
{
416-
AssetDatabase.CreateFolder("Assets", DefaultExtensionsFolderName);
418+
var generatedFolder = Path.Combine("Assets", DefaultGeneratedFolderName);
419+
if (!AssetDatabase.IsValidFolder(generatedFolder))
420+
{
421+
AssetDatabase.CreateFolder("Assets", DefaultGeneratedFolderName);
422+
}
423+
424+
AssetDatabase.CreateFolder(generatedFolder, DefaultExtensionsFolderName);
417425
AssetDatabase.Refresh();
418426
}
419427

@@ -803,4 +811,4 @@ private static Type FindServiceType(string serviceClassName)
803811

804812
#endregion
805813
}
806-
}
814+
}

Assets/MixedRealityToolkit/Utilities/Editor/Setup/MixedRealityToolkitFiles.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -320,11 +320,12 @@ public static string MapRelativeFolderPathToAbsolutePath(MixedRealityToolkitModu
320320
/// </summary>
321321
/// <param name="module">Module type to search for</param>
322322
/// <remarks>
323-
/// Returns first valid module folder path (relative) found
323+
/// Returns first valid module folder path (relative) found. Returns null otherwise.
324324
/// </remarks>
325325
public static string MapModulePath(MixedRealityToolkitModuleType module)
326326
{
327-
return GetAssetDatabasePath(MapRelativeFolderPathToAbsolutePath(module, ""));
327+
var path = MapRelativeFolderPathToAbsolutePath(module, "");
328+
return path != null ? GetAssetDatabasePath(path) : null;
328329
}
329330

330331
/// <summary>

0 commit comments

Comments
 (0)