ConversionUtility.cs 1.3 KB

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