fix GetPrefab

This commit is contained in:
ousttrue 2021-05-25 14:25:08 +09:00
parent ede6be174a
commit ea796cd342
2 changed files with 7 additions and 28 deletions

View File

@ -83,34 +83,7 @@ namespace UniVRM10
}
}
protected virtual GameObject GetPrefab()
{
var assetPath = AssetDatabase.GetAssetPath(target);
if (string.IsNullOrEmpty(assetPath))
{
return null;
}
var mainObject = AssetDatabase.LoadMainAssetAtPath(assetPath);
if (mainObject != null)
{
//return mainObject;
}
var prefab = AssetDatabase.LoadAssetAtPath<GameObject>(assetPath);
if (prefab != null) return prefab;
var parent = UnityPath.FromUnityPath(assetPath).Parent;
var prefabPath = parent.Parent.Child(parent.FileNameWithoutExtension + ".prefab");
prefab = UnityEditor.AssetDatabase.LoadAssetAtPath<GameObject>(prefabPath.Value);
if (prefab != null) return prefab;
var parentParent = UnityPath.FromUnityPath(assetPath).Parent.Parent;
var vrmPath = parent.Parent.Child(parent.FileNameWithoutExtension + ".vrm");
prefab = UnityEditor.AssetDatabase.LoadAssetAtPath<GameObject>(vrmPath.Value);
return prefab;
}
protected abstract GameObject GetPrefab();
protected virtual void OnEnable()
{

View File

@ -1,4 +1,5 @@
using UnityEditor;
using UnityEngine;
namespace UniVRM10
{
@ -23,6 +24,11 @@ namespace UniVRM10
}
}
protected override GameObject GetPrefab()
{
return PrefabUtility.GetCorrespondingObjectFromSource(target as VRM10ExpressionAvatar)?.gameObject;
}
/// <summary>
/// 選択中の Expression のエディタ
/// </summary>