首页 > 手游开发 > Unity3D > Unity3D基础之字符串转为Vector3和Quaternion
2020
09-25

Unity3D基础之字符串转为Vector3和Quaternion

运用环境:一般在读取csv表格的数据时是string类型转为Vector3或者Quaternion类型

字符串格式:x,x,x /x,x,x,x (英文逗号)

方法:

  /// <summary>
  /// 字符串转Vector3
    /// </summary>
  /// <param name="p_sVec3">需要转换的字符串</param>
  /// <returns></returns>
  public static Vector3 GetVec3ByString(string p_sVec3)
    {
        if (p_sVec3.Length <= 0)
            return Vector3.zero;

        string[] tmp_sValues = p_sVec3.Trim(' ').Split(',');
        if (tmp_sValues != null && tmp_sValues.Length == 3)
        {
            float tmp_fX = float.Parse(tmp_sValues[0]);
            float tmp_fY = float.Parse(tmp_sValues[1]);
            float tmp_fZ = float.Parse(tmp_sValues[2]);

            return new Vector3(tmp_fX, tmp_fY, tmp_fZ);
        }
        return Vector3.zero;
    }
  /// <summary>
  /// 字符串转换Quaternion
    /// </summary>
  /// <param name="p_sVec3">需要转换的字符串</param>
  /// <returns></returns>
  public static Quaternion GetQuaByString(string p_sVec3)
    {
        if (p_sVec3.Length <= 0)
            return Quaternion.identity;

        string[] tmp_sValues = p_sVec3.Trim(' ').Split(',');
        if (tmp_sValues != null && tmp_sValues.Length == 4)
        {
            float tmp_fX = float.Parse(tmp_sValues[0]);
            float tmp_fY = float.Parse(tmp_sValues[1]);
            float tmp_fZ = float.Parse(tmp_sValues[2]);
            float tmp_fH = float.Parse(tmp_sValues[3]);

            return new Quaternion(tmp_fX, tmp_fY, tmp_fZ, tmp_fH);
        }
        return Quaternion.identity;
    }
最后编辑:
作者:搬运工
这个作者貌似有点懒,什么都没有留下。

留下一个回复

你的email不会被公开。