mirror of
https://github.com/vrm-c/UniVRM.git
synced 2026-05-11 13:04:17 -05:00
コード整理
This commit is contained in:
parent
3d60280188
commit
5517dc2674
23
Assets/UniGLTF/Editor/MeshUtility/BoneMeshEraserGUI.cs
Normal file
23
Assets/UniGLTF/Editor/MeshUtility/BoneMeshEraserGUI.cs
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace UniGLTF.MeshUtility
|
||||
{
|
||||
[CustomEditor(typeof(MeshProcessDialog), true)]
|
||||
public class BoneMeshEraserGUI : Editor
|
||||
{
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
serializedObject.Update();
|
||||
var skinnedMesh = serializedObject.FindProperty("_cSkinnedMesh");
|
||||
EditorGUILayout.PropertyField(skinnedMesh, new GUIContent("Skinned Mesh"), true);
|
||||
var animator = serializedObject.FindProperty("_cAnimator");
|
||||
EditorGUILayout.PropertyField(animator, new GUIContent("Animator"), false);
|
||||
var eraseRoot = serializedObject.FindProperty("_cEraseRoot");
|
||||
EditorGUILayout.PropertyField(eraseRoot, new GUIContent("Erase Root"), false);
|
||||
var list = serializedObject.FindProperty("_eraseBones");
|
||||
EditorGUILayout.PropertyField(list, new GUIContent("Erase Bones"), true);
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/UniGLTF/Editor/MeshUtility/BoneMeshEraserGUI.cs.meta
Normal file
11
Assets/UniGLTF/Editor/MeshUtility/BoneMeshEraserGUI.cs.meta
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5cdbec3de528c61448aeb739ffe1f79e
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -9,24 +9,6 @@ using UniGLTF.M17N;
|
|||
|
||||
namespace UniGLTF.MeshUtility
|
||||
{
|
||||
[CustomEditor(typeof(MeshProcessDialog), true)]
|
||||
public class BoneMeshEraserGUI : Editor
|
||||
{
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
serializedObject.Update();
|
||||
var skinnedMesh = serializedObject.FindProperty("_cSkinnedMesh");
|
||||
EditorGUILayout.PropertyField(skinnedMesh, new GUIContent("Skinned Mesh"), true);
|
||||
var animator = serializedObject.FindProperty("_cAnimator");
|
||||
EditorGUILayout.PropertyField(animator, new GUIContent("Animator"), false);
|
||||
var eraseRoot = serializedObject.FindProperty("_cEraseRoot");
|
||||
EditorGUILayout.PropertyField(eraseRoot, new GUIContent("Erase Root"), false);
|
||||
var list = serializedObject.FindProperty("_eraseBones");
|
||||
EditorGUILayout.PropertyField(list, new GUIContent("Erase Bones"), true);
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
}
|
||||
}
|
||||
|
||||
public class MeshProcessDialog : EditorWindow
|
||||
{
|
||||
enum Tabs
|
||||
|
|
@ -60,55 +42,14 @@ namespace UniGLTF.MeshUtility
|
|||
GUIStyle _tabButtonStyle => "LargeButton";
|
||||
GUI.ToolbarButtonSize _tabButtonSize => GUI.ToolbarButtonSize.Fixed;
|
||||
|
||||
private enum MeshProcessingMessages
|
||||
|
||||
public static void OpenWindow()
|
||||
{
|
||||
[LangMsg(Languages.ja, "ターゲットオブジェクト")]
|
||||
[LangMsg(Languages.en, "TargetObject")]
|
||||
TARGET_OBJECT,
|
||||
|
||||
[LangMsg(Languages.ja, "BlendShapeを含むメッシュは分割されます")]
|
||||
[LangMsg(Languages.en, "Meshes containing BlendShape will be split")]
|
||||
MESH_SEPARATOR,
|
||||
|
||||
[LangMsg(Languages.ja, "メッシュを統合します。BlendShapeを含むメッシュは独立して統合されます")]
|
||||
[LangMsg(Languages.en, "Generate a single mesh. Meshes w/ BlendShape will be grouped into another one")]
|
||||
MESH_INTEGRATOR,
|
||||
|
||||
[LangMsg(Languages.ja, "静的メッシュを一つに統合します")]
|
||||
[LangMsg(Languages.en, "Integrate static meshes into one")]
|
||||
STATIC_MESH_INTEGRATOR,
|
||||
|
||||
[LangMsg(Languages.ja, "ボーン(Erase Rootのヒエラルキー)に関連するメッシュを削除します")]
|
||||
[LangMsg(Languages.en, "Eliminate meshes associated with the bones in EraseRoot hierarchy")]
|
||||
BONE_MESH_ERASER,
|
||||
|
||||
[LangMsg(Languages.ja, "Skinned Meshを選んでください")]
|
||||
[LangMsg(Languages.en, "Select a skinned mesh")]
|
||||
SELECT_SKINNED_MESH,
|
||||
|
||||
[LangMsg(Languages.ja, "Erase Rootを選んでください")]
|
||||
[LangMsg(Languages.en, "Select a erase root")]
|
||||
SELECT_ERASE_ROOT,
|
||||
|
||||
[LangMsg(Languages.ja, "GameObjectを選んでください")]
|
||||
[LangMsg(Languages.en, "Select a GameObject first")]
|
||||
NO_GAMEOBJECT_SELECTED,
|
||||
|
||||
[LangMsg(Languages.ja, "GameObjectにスキンメッシュが含まれていません")]
|
||||
[LangMsg(Languages.en, "No skinned mesh is contained")]
|
||||
NO_SKINNED_MESH,
|
||||
|
||||
[LangMsg(Languages.ja, "GameObjectに静的メッシュが含まれていません")]
|
||||
[LangMsg(Languages.en, "No static mesh is contained")]
|
||||
NO_STATIC_MESH,
|
||||
|
||||
[LangMsg(Languages.ja, "GameObjectにスキンメッシュ・静的メッシュが含まれていません")]
|
||||
[LangMsg(Languages.en, "Skinned/Static mesh is not contained")]
|
||||
NO_MESH,
|
||||
|
||||
[LangMsg(Languages.ja, "ターゲットオブジェクトはVRMモデルです。`VRM0-> MeshIntegrator`を使ってください")]
|
||||
[LangMsg(Languages.en, "Target object is VRM model, use `VRM0 -> MeshIntegrator` instead")]
|
||||
VRM_DETECTED,
|
||||
var window =
|
||||
(MeshProcessDialog)EditorWindow.GetWindowWithRect(typeof(MeshProcessDialog),
|
||||
new Rect(0, 0, 650, 500));
|
||||
window.titleContent = new GUIContent("Mesh Processing Window");
|
||||
window.Show();
|
||||
}
|
||||
|
||||
private void OnEnable()
|
||||
|
|
|
|||
55
Assets/UniGLTF/Editor/MeshUtility/MeshProcessingMessages.cs
Normal file
55
Assets/UniGLTF/Editor/MeshUtility/MeshProcessingMessages.cs
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
using UniGLTF.M17N;
|
||||
|
||||
namespace UniGLTF.MeshUtility
|
||||
{
|
||||
public enum MeshProcessingMessages
|
||||
{
|
||||
[LangMsg(Languages.ja, "ターゲットオブジェクト")]
|
||||
[LangMsg(Languages.en, "TargetObject")]
|
||||
TARGET_OBJECT,
|
||||
|
||||
[LangMsg(Languages.ja, "BlendShapeを含むメッシュは分割されます")]
|
||||
[LangMsg(Languages.en, "Meshes containing BlendShape will be split")]
|
||||
MESH_SEPARATOR,
|
||||
|
||||
[LangMsg(Languages.ja, "メッシュを統合します。BlendShapeを含むメッシュは独立して統合されます")]
|
||||
[LangMsg(Languages.en, "Generate a single mesh. Meshes w/ BlendShape will be grouped into another one")]
|
||||
MESH_INTEGRATOR,
|
||||
|
||||
[LangMsg(Languages.ja, "静的メッシュを一つに統合します")]
|
||||
[LangMsg(Languages.en, "Integrate static meshes into one")]
|
||||
STATIC_MESH_INTEGRATOR,
|
||||
|
||||
[LangMsg(Languages.ja, "ボーン(Erase Rootのヒエラルキー)に関連するメッシュを削除します")]
|
||||
[LangMsg(Languages.en, "Eliminate meshes associated with the bones in EraseRoot hierarchy")]
|
||||
BONE_MESH_ERASER,
|
||||
|
||||
[LangMsg(Languages.ja, "Skinned Meshを選んでください")]
|
||||
[LangMsg(Languages.en, "Select a skinned mesh")]
|
||||
SELECT_SKINNED_MESH,
|
||||
|
||||
[LangMsg(Languages.ja, "Erase Rootを選んでください")]
|
||||
[LangMsg(Languages.en, "Select a erase root")]
|
||||
SELECT_ERASE_ROOT,
|
||||
|
||||
[LangMsg(Languages.ja, "GameObjectを選んでください")]
|
||||
[LangMsg(Languages.en, "Select a GameObject first")]
|
||||
NO_GAMEOBJECT_SELECTED,
|
||||
|
||||
[LangMsg(Languages.ja, "GameObjectにスキンメッシュが含まれていません")]
|
||||
[LangMsg(Languages.en, "No skinned mesh is contained")]
|
||||
NO_SKINNED_MESH,
|
||||
|
||||
[LangMsg(Languages.ja, "GameObjectに静的メッシュが含まれていません")]
|
||||
[LangMsg(Languages.en, "No static mesh is contained")]
|
||||
NO_STATIC_MESH,
|
||||
|
||||
[LangMsg(Languages.ja, "GameObjectにスキンメッシュ・静的メッシュが含まれていません")]
|
||||
[LangMsg(Languages.en, "Skinned/Static mesh is not contained")]
|
||||
NO_MESH,
|
||||
|
||||
[LangMsg(Languages.ja, "ターゲットオブジェクトはVRMモデルです。`VRM0-> MeshIntegrator`を使ってください")]
|
||||
[LangMsg(Languages.en, "Target object is VRM model, use `VRM0 -> MeshIntegrator` instead")]
|
||||
VRM_DETECTED,
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 575d573f28f0e4a48a2a6509e69b7f6f
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -26,10 +26,7 @@ namespace UniGLTF
|
|||
private static void ImportGltfFile() => TopMenuImplementation.ImportGltfFileToGameObject();
|
||||
|
||||
[MenuItem(UserMeshUtilityPrefix + "/MeshProcessing Wizard", priority = 10)]
|
||||
private static void OpenMeshProcessingWindow() => TopMenuImplementation.OpenMeshProcessingWindow();
|
||||
|
||||
[MenuItem(UserMeshUtilityPrefix + "/Open Documents", priority = 11)]
|
||||
private static void MeshUtilityDocs() => Application.OpenURL("https://vrm.dev/en/docs/univrm/gltf/mesh_utility/");
|
||||
private static void OpenMeshProcessingWindow() => MeshUtility.MeshProcessDialog.OpenWindow();
|
||||
|
||||
#if VRM_DEVELOP
|
||||
[MenuItem(DevelopmentMenuPrefix + "/Generate Serialization Code", priority = 20)]
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ namespace UniGLTF
|
|||
{
|
||||
public static void ExportGameObjectToGltfFile()
|
||||
{
|
||||
var window = (GltfExportWindow) GltfExportWindow.GetWindow(typeof(GltfExportWindow));
|
||||
var window = (GltfExportWindow)GltfExportWindow.GetWindow(typeof(GltfExportWindow));
|
||||
window.titleContent = new GUIContent("Gltf Exporter");
|
||||
window.Show();
|
||||
}
|
||||
|
|
@ -92,19 +92,10 @@ namespace UniGLTF
|
|||
Selection.activeObject = asset;
|
||||
}
|
||||
|
||||
public static void OpenMeshProcessingWindow()
|
||||
{
|
||||
var window =
|
||||
(MeshUtility.MeshProcessDialog) EditorWindow.GetWindowWithRect(typeof(MeshUtility.MeshProcessDialog),
|
||||
new Rect(0, 0, 650, 500));
|
||||
window.titleContent = new GUIContent("Mesh Processing Window");
|
||||
window.Show();
|
||||
}
|
||||
|
||||
public static void GenerateSerializationCode()
|
||||
{
|
||||
SerializerGenerator.GenerateSerializer();
|
||||
DeserializerGenerator.GenerateSerializer();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user