diff --git a/Scripts/EnumUtil.cs b/Scripts/EnumUtil.cs index ce8e95b3f..556fa269d 100644 --- a/Scripts/EnumUtil.cs +++ b/Scripts/EnumUtil.cs @@ -5,15 +5,15 @@ namespace VRM { public static class EnumUtil { - public static T TryParseOrDefault(string src)where T: struct + public static T TryParseOrDefault(string src, T defaultValue=default(T)) where T : struct { try { return (T)Enum.Parse(typeof(T), src, true); } - catch(Exception) + catch (Exception) { - return default(T); + return defaultValue; } } } diff --git a/Scripts/Format/glTF_VRM_Humanoid.cs b/Scripts/Format/glTF_VRM_Humanoid.cs index f9510cc51..08b03e471 100644 --- a/Scripts/Format/glTF_VRM_Humanoid.cs +++ b/Scripts/Format/glTF_VRM_Humanoid.cs @@ -65,28 +65,25 @@ namespace VRM rightLittleIntermediate, rightLittleDistal, upperChest, + + unknown, } public static class VRMBoneExtensions { public static VRMBone FromHumanBodyBone(this HumanBodyBones human) { - return EnumUtil.TryParseOrDefault(human.ToString()); + return EnumUtil.TryParseOrDefault(human.ToString(), VRMBone.unknown); } public static HumanBodyBones ToHumanBodyBone(this VRMBone bone) { #if UNITY_5_6_OR_NEWER - return EnumUtil.TryParseOrDefault(bone.ToString()); -#else if (bone == VRMBone.upperChest) { return HumanBodyBones.LastBone; } - else - { - return EnumUtil.TryParseOrDefault(bone.ToString()); - } #endif + return EnumUtil.TryParseOrDefault(bone.ToString(), HumanBodyBones.LastBone); } }