Fixed issue with generating material asset for materials with invalid chars
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user