ConversionUtility.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using UnityEngine;
  2. namespace MeidoPhotoStudio.Converter.MultipleMaids;
  3. internal static class ConversionUtility
  4. {
  5. public static Quaternion ParseEulerAngle(string euler)
  6. {
  7. var data = euler.Split(',');
  8. return Quaternion.Euler(float.Parse(data[0]), float.Parse(data[1]), float.Parse(data[2]));
  9. }
  10. public static Vector3 ParseVector3(string vector3)
  11. {
  12. var data = vector3.Split(',');
  13. return new(float.Parse(data[0]), float.Parse(data[1]), float.Parse(data[2]));
  14. }
  15. /// <summary>
  16. /// Checks if the string has 3 euler angle components delimited by commas before parsing.
  17. /// </summary>
  18. /// <param name="euler">Euler angle string in the form "x,y,z".</param>
  19. /// <param name="result">Resulting angle as a <c>Quaternion</c>.</param>
  20. /// <returns>Whether or not the euler string can be safely parsed.</returns>
  21. public static bool TryParseEulerAngle(string euler, out Quaternion result)
  22. {
  23. result = Quaternion.identity;
  24. var data = euler.Split(',');
  25. if (data.Length is not 3)
  26. return false;
  27. try
  28. {
  29. result = Quaternion.Euler(float.Parse(data[0]), float.Parse(data[1]), float.Parse(data[2]));
  30. }
  31. catch
  32. {
  33. return false;
  34. }
  35. return true;
  36. }
  37. }