From dca1908a1eaafc79ec7aacfd583d026c8f2ba0e7 Mon Sep 17 00:00:00 2001 From: JR-Morgan <45512892+JR-Morgan@users.noreply.github.com> Date: Mon, 23 May 2022 20:48:16 +0100 Subject: [PATCH] Fixed issue with generating material asset for materials with invalid chars --- .../ConverterUnity.Geometry.cs | 6 +++++- .../systems.speckle.speckle-unity/RecursiveConverter.cs | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Packages/systems.speckle.speckle-unity/ConverterUnity.Geometry.cs b/Packages/systems.speckle.speckle-unity/ConverterUnity.Geometry.cs index 4bb566e..c35cc22 100644 --- a/Packages/systems.speckle.speckle-unity/ConverterUnity.Geometry.cs +++ b/Packages/systems.speckle.speckle-unity/ConverterUnity.Geometry.cs @@ -1,6 +1,7 @@ using System; using Objects.Geometry; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Reflection; using Objects.Other; @@ -510,10 +511,13 @@ namespace Objects.Converter.Unity #if UNITY_EDITOR if (StreamManager.GenerateMaterials) { + string name = mat.name.Trim(Path.GetInvalidFileNameChars()); if (!AssetDatabase.IsValidFolder("Assets/Resources")) AssetDatabase.CreateFolder("Assets", "Resources"); if (!AssetDatabase.IsValidFolder("Assets/Resources/Materials")) AssetDatabase.CreateFolder("Assets/Resources", "Materials"); if (!AssetDatabase.IsValidFolder("Assets/Resources/Materials/Speckle Generated")) AssetDatabase.CreateFolder("Assets/Resources/Materials", "Speckle Generated"); - if (AssetDatabase.LoadAllAssetsAtPath("Assets/Resources/Materials/Speckle Generated/" + mat.name + ".mat").Length == 0) AssetDatabase.CreateAsset(mat, "Assets/Resources/Materials/Speckle Generated/" + mat.name + ".mat"); + + if (AssetDatabase.LoadAllAssetsAtPath("Assets/Resources/Materials/Speckle Generated/" + name + ".mat").Length == 0) AssetDatabase.CreateAsset(mat, "Assets/Resources/Materials/Speckle Generated/" + name + ".mat"); + } #endif diff --git a/Packages/systems.speckle.speckle-unity/RecursiveConverter.cs b/Packages/systems.speckle.speckle-unity/RecursiveConverter.cs index 4223ec2..9c2d571 100644 --- a/Packages/systems.speckle.speckle-unity/RecursiveConverter.cs +++ b/Packages/systems.speckle.speckle-unity/RecursiveConverter.cs @@ -131,7 +131,7 @@ namespace Speckle.ConnectorUnity //using the ApplicationPlaceholderObject to pass materials //available in Assets/Materials to the converters var materials = Resources.LoadAll("", typeof(Material)).Cast().ToArray(); - if (materials.Length == 0) Debug.Log("To automatically assign materials to recieved meshes, materials have to be in the \'Assets/Resources\' folder!"); + if (materials.Length == 0) Debug.Log("To automatically assign materials to received meshes, materials have to be in the \'Assets/Resources\' folder!"); var placeholderObjects = materials.Select(x => new ApplicationPlaceholderObject { NativeObject = x }).ToList(); ConverterInstance.SetContextObjects(placeholderObjects); }