diff --git a/Assets/VRM/Editor/Format/VRMVersionMenu.cs b/Assets/VRM/Editor/Format/VRMVersionMenu.cs
index a660ed0d6..99b36469b 100644
--- a/Assets/VRM/Editor/Format/VRMVersionMenu.cs
+++ b/Assets/VRM/Editor/Format/VRMVersionMenu.cs
@@ -3,9 +3,20 @@ using System.Text;
using UnityEditor;
using UnityEngine;
using UniGLTF;
+using System;
namespace VRM
{
+ ///
+ /// VersionDialog
+ ///
+ /// UniGLTFVersion は、 VRMVersion から自動的に決まる。
+ ///
+ /// Major = 2
+ /// Minor = VRMVersion.MINOR - 64
+ /// Patch = VRMVersion.PATCH
+ ///
+ ///
public class VRMVersionMenu : EditorWindow
{
///
@@ -120,30 +131,50 @@ namespace VRM
[SerializeField]
string m_vrmVersion;
- [SerializeField]
- string m_uniGltfVersion;
+ (int, int, int) m_uniGltfVersion
+ {
+ get
+ {
+ if (TryGetVersion(m_vrmVersion, out (int, int, int) vrmVersion))
+ {
+ return (2, vrmVersion.Item2 - 64, vrmVersion.Item3);
+ }
+ else
+ {
+ return (0, 0, 0);
+ }
+ }
+ }
static bool TryGetVersion(string src, out (int, int, int) version)
{
- if (string.IsNullOrEmpty(src))
+ try
+ {
+ if (string.IsNullOrEmpty(src))
+ {
+ version = default;
+ return false;
+ }
+
+ var splitted = src.Split('.');
+ if (splitted.Length != 3)
+ {
+ version = default;
+ return false;
+ }
+
+ version = (
+ int.Parse(splitted[0]),
+ int.Parse(splitted[1]),
+ int.Parse(splitted[2])
+ );
+ return true;
+ }
+ catch (Exception)
{
version = default;
return false;
}
-
- var splitted = src.Split('.');
- if (splitted.Length != 3)
- {
- version = default;
- return false;
- }
-
- version = (
- int.Parse(splitted[0]),
- int.Parse(splitted[1]),
- int.Parse(splitted[2])
- );
- return true;
}
///
@@ -158,24 +189,22 @@ namespace VRM
GUILayout.Label("UniGLTF");
GUILayout.Label($"Current version: {UniGLTFVersion.VERSION}");
- m_uniGltfVersion = EditorGUILayout.TextField("Major.Minor.Patch", m_uniGltfVersion);
+ {
+ var enabled = GUI.enabled;
+ GUI.enabled = false;
+ EditorGUILayout.TextField("Major.Minor.Patch", $"{m_uniGltfVersion}");
+ GUI.enabled = enabled;
+ }
GUILayout.Space(30);
if (GUILayout.Button("Apply"))
{
if (TryGetVersion(m_vrmVersion, out (int, int, int) vrmVersion))
{
- if (TryGetVersion(m_uniGltfVersion, out (int, int, int) uniGltfVersion))
- {
- UpdateVrmVersion(uniGltfVersion, vrmVersion);
- UpdateUniGLTFVersion(uniGltfVersion, vrmVersion);
- AssetDatabase.Refresh();
- Debug.Log($"{uniGltfVersion}, {vrmVersion}");
- }
- else
- {
- Debug.LogWarning($"InvalidFormat: {m_uniGltfVersion}");
- }
+ UpdateVrmVersion(m_uniGltfVersion, vrmVersion);
+ UpdateUniGLTFVersion(m_uniGltfVersion, vrmVersion);
+ AssetDatabase.Refresh();
+ Debug.Log($"{m_uniGltfVersion}, {vrmVersion}");
}
else
{
@@ -228,7 +257,7 @@ namespace VRM
{
var window = ScriptableObject.CreateInstance();
window.m_vrmVersion = VRMVersion.VERSION;
- window.m_uniGltfVersion = UniGLTFVersion.VERSION;
+ // window.m_uniGltfVersion = UniGLTFVersion.VERSION;
window.ShowUtility();
}
}