diff --git a/Assets/UniGLTF/Editor/MeshUtility/GameObjectType.cs b/Assets/UniGLTF/Editor/MeshUtility/GameObjectType.cs new file mode 100644 index 000000000..9f1d09db0 --- /dev/null +++ b/Assets/UniGLTF/Editor/MeshUtility/GameObjectType.cs @@ -0,0 +1,43 @@ +using UnityEditor; +using UnityEngine; + +namespace UniGLTF.MeshUtility +{ + public enum GameObjectType + { + Null, + SceneInstance, + PrefabInstance, + AssetPrefab, + } + + public static class GameObjectTypeUtility + { + public static GameObjectType GetGameObjectType(this GameObject go) + { + if (go == null) + { + return GameObjectType.Null; + } + + if (!go.scene.IsValid()) + { + if (PrefabUtility.IsPartOfAnyPrefab(go)) + { + return GameObjectType.AssetPrefab; + } + else + { + throw new System.Exception("unknown"); + } + } + + if (PrefabUtility.IsPartOfAnyPrefab(go)) + { + return GameObjectType.PrefabInstance; + } + + return GameObjectType.SceneInstance; + } + } +} diff --git a/Assets/UniGLTF/Editor/MeshUtility/GameObjectType.cs.meta b/Assets/UniGLTF/Editor/MeshUtility/GameObjectType.cs.meta new file mode 100644 index 000000000..721cf19ee --- /dev/null +++ b/Assets/UniGLTF/Editor/MeshUtility/GameObjectType.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 95cda911ba335b449901767f9bee8ca8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/VRM/Editor/SkinnedMeshUtility/VrmMeshIntegratorWizard.cs b/Assets/VRM/Editor/SkinnedMeshUtility/VrmMeshIntegratorWizard.cs index a5db19875..86f2fcd86 100644 --- a/Assets/VRM/Editor/SkinnedMeshUtility/VrmMeshIntegratorWizard.cs +++ b/Assets/VRM/Editor/SkinnedMeshUtility/VrmMeshIntegratorWizard.cs @@ -104,6 +104,13 @@ namespace VRM OnValidate(); } + protected override bool DrawWizardGUI() + { + var t = m_root.GetGameObjectType(); + EditorGUILayout.HelpBox($"{t}", MessageType.Info); + return base.DrawWizardGUI(); + } + static object GetPropertyValue(Shader shader, int i, Material m) { var propType = ShaderUtil.GetPropertyType(shader, i);