| using UnityEngine; | 
|   | 
| public static class VectorUtility | 
| { | 
|   | 
|     public static Vector3 SetX(this Vector3 vector3, float x) | 
|     { | 
|         vector3.x = x; | 
|         return vector3; | 
|     } | 
|   | 
|     public static Vector3 SetY(this Vector3 vector3, float y) | 
|     { | 
|         vector3.y = y; | 
|         return vector3; | 
|     } | 
|   | 
|     public static Vector3 SetZ(this Vector3 vector3, float z) | 
|     { | 
|         vector3.z = z; | 
|         return vector3; | 
|     } | 
|   | 
|     public static Vector2 SetX(this Vector2 vector2, float x) | 
|     { | 
|         vector2.x = x; | 
|         return vector2; | 
|     } | 
|   | 
|     public static Vector2 SetY(this Vector2 vector2, float y) | 
|     { | 
|         vector2.y = y; | 
|         return vector2; | 
|     } | 
|   | 
|     public static float VectorAngle(Vector2 to, Vector2 from) | 
|     { | 
|         Vector3 cross = Vector3.Cross(to - from, Vector2.up); | 
|         float angle = Vector2.Angle(to - from, Vector2.up); | 
|         return cross.z > 0 ? -angle : angle; | 
|     } | 
|   | 
|     public static Vector3 Vector3Parse(this string _input) | 
|     { | 
|         if (string.IsNullOrEmpty(_input)) | 
|         { | 
|             return Vector3.zero; | 
|         } | 
|   | 
|         _input = _input.Replace("(", "").Replace(")", ""); | 
|         var stringArray = _input.Split(','); | 
|   | 
|         float x = 0f; | 
|         float y = 0f; | 
|         float z = 0f; | 
|         if (stringArray.Length > 0) | 
|         { | 
|             float.TryParse(stringArray[0], out x); | 
|         } | 
|   | 
|         if (stringArray.Length > 1) | 
|         { | 
|             float.TryParse(stringArray[1], out y); | 
|         } | 
|   | 
|         if (stringArray.Length > 2) | 
|         { | 
|             float.TryParse(stringArray[2], out z); | 
|         } | 
|   | 
|         return new Vector3(x, y, z); | 
|     } | 
|   | 
| } |