unity项目字符串转为Vector3和Quaternion

Posted 叫我张先生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity项目字符串转为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;
    }

 

作为备注方便以后使用

以上是关于unity项目字符串转为Vector3和Quaternion的主要内容,如果未能解决你的问题,请参考以下文章

四元数x向量,相关用法

Unity3D之Vector3.Dot和Vector3.Cross的使用

Unity3d Transform.forward和Vector3.forward的区别!

Unity 之 Vector3 类简介

unity中Vector3不明白为啥被称为向量?

Unity中xLua与toLua对Vector3的优化