Fixed issue with generating material asset for materials with invalid chars

This commit is contained in:
JR-Morgan
2022-05-23 20:48:16 +01:00
parent 672865ed87
commit dca1908a1e
2 changed files with 6 additions and 2 deletions
@@ -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
@@ -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<Material>().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);
}