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); 
 | 
    } 
 | 
  
 | 
} 
 |