add defaultValue to EnumUtil.TryParseOrDefault

This commit is contained in:
ousttrue
2018-04-07 18:24:57 +09:00
parent b4097aa585
commit be82961ebd
2 changed files with 7 additions and 10 deletions

View File

@@ -5,15 +5,15 @@ namespace VRM
{
public static class EnumUtil
{
public static T TryParseOrDefault<T>(string src)where T: struct
public static T TryParseOrDefault<T>(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;
}
}
}

View File

@@ -65,28 +65,25 @@ namespace VRM
rightLittleIntermediate,
rightLittleDistal,
upperChest,
unknown,
}
public static class VRMBoneExtensions
{
public static VRMBone FromHumanBodyBone(this HumanBodyBones human)
{
return EnumUtil.TryParseOrDefault<VRMBone>(human.ToString());
return EnumUtil.TryParseOrDefault<VRMBone>(human.ToString(), VRMBone.unknown);
}
public static HumanBodyBones ToHumanBodyBone(this VRMBone bone)
{
#if UNITY_5_6_OR_NEWER
return EnumUtil.TryParseOrDefault<HumanBodyBones>(bone.ToString());
#else
if (bone == VRMBone.upperChest)
{
return HumanBodyBones.LastBone;
}
else
{
return EnumUtil.TryParseOrDefault<HumanBodyBones>(bone.ToString());
}
#endif
return EnumUtil.TryParseOrDefault<HumanBodyBones>(bone.ToString(), HumanBodyBones.LastBone);
}
}