From be82961ebd63878d0ebb8939403da1ba7f37e4a0 Mon Sep 17 00:00:00 2001 From: ousttrue Date: Sat, 7 Apr 2018 18:24:57 +0900 Subject: [PATCH] add defaultValue to EnumUtil.TryParseOrDefault --- Scripts/EnumUtil.cs | 6 +++--- Scripts/Format/glTF_VRM_Humanoid.cs | 11 ++++------- 2 files changed, 7 insertions(+), 10 deletions(-) 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); } }