fix mesh bone. fix WriteAndReload

This commit is contained in:
ousttrue
2023-12-01 17:50:21 +09:00
parent 00e1278123
commit 103b575439
3 changed files with 19 additions and 5 deletions

View File

@@ -243,13 +243,13 @@ namespace UniGLTF.MeshUtility
{
var childAssetPath = $"{assetFolder}/{result.Integrated.IntegratedRenderer.gameObject.name}{ASSET_SUFFIX}";
Debug.LogFormat("CreateAsset: {0}", childAssetPath);
AssetDatabase.CreateAsset(result.Integrated.IntegratedRenderer.sharedMesh, childAssetPath);
result.Integrated.WriteAndReload(childAssetPath);
}
if (result.IntegratedNoBlendShape != null)
{
var childAssetPath = $"{assetFolder}/{result.IntegratedNoBlendShape.IntegratedRenderer.gameObject.name}{ASSET_SUFFIX}";
Debug.LogFormat("CreateAsset: {0}", childAssetPath);
AssetDatabase.CreateAsset(result.IntegratedNoBlendShape.IntegratedRenderer.sharedMesh, childAssetPath);
result.IntegratedNoBlendShape.WriteAndReload(childAssetPath);
}
}

View File

@@ -2,6 +2,9 @@
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
#if UNITY_EDITOR
using UnityEditor;
#endif
namespace UniGLTF.MeshUtility
{
@@ -29,6 +32,18 @@ namespace UniGLTF.MeshUtility
smr.bones = bones;
IntegratedRenderer = smr;
}
#if UNITY_EDITOR
public void WriteAndReload(string assetPath)
{
AssetDatabase.CreateAsset(IntegratedRenderer.sharedMesh, assetPath);
var unityPath = UnityPath.FromUnityPath(assetPath);
unityPath.ImportAsset();
var mesh = unityPath.LoadAsset<Mesh>();
// replace reloaded
IntegratedRenderer.sharedMesh = mesh;
}
#endif
}
public class MeshIntegrationResult

View File

@@ -128,11 +128,10 @@ namespace UniGLTF.MeshUtility
})
);
var self = renderer.transform;
var bone = self.parent;
var bone = renderer.transform;
if (bone == null)
{
Debug.LogWarningFormat("{0} is root gameobject.", self.name);
Debug.LogWarningFormat("{0} is root gameobject.", bone.name);
return;
}
var boneIndex = AddBoneIfUnique(bone);