mirror of
https://github.com/vrm-c/UniVRM.git
synced 2026-09-11 13:29:41 -05:00
fix mesh bone. fix WriteAndReload
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user