在Unity中将字符串转换为矢量

时间:2015-06-20 22:19:42

标签: vector unity3d unityscript

我正在尝试将unityscript中的字符串数组转换为包含以下值的值:

“Vector3(5,3,8)”

到一个向量数组中,但Unity不会按原样使用这些字符串。有人有什么想法吗?

4 个答案:

答案 0 :(得分:0)

你不能在c#中将所有向量元素转换为你可以像下面这样做:

其psuedoCode:

position.x=convert.ToFloat("3");
position.y=....

我认为没有api为你做这个: " Vector3(5,3,8)"

答案 1 :(得分:0)

你没有给我们任何示例代码,所以我假设数组组织得很好,所有元素都紧挨着。

虽然我不认为您可以使用UnityScript完全执行此操作,但您可以使用其他语言处理文字字符串,即从Unity复制脚本和另一个将为你做更改的程序。

这是我要做的一小部分样本。

用法:创建一个包含所有array.txt字符串的文件Vector3(x,x,x),以换行符分隔并创建另一个文件array.php

Array.txt(示例)

Vector3(5, 1, 3)
Vector3(3, 3, 1)
Vector3(2, 2, 7)
Vector3(6, 6, 4)
Vector3(8, 8, 8)
Vector3(9, 3, 2)
Vector3(1, 2, 1)
Vector3(4, 3, 6)
Vector3(5, 3, 8)

<强> Array.php

<?

$file = file('array.txt');

$text = array();

$text[] = "var vectors = new Array;";

foreach ( $file as $i )
{
    $text[] = "vectors.Push(".trim($i).");";
}

echo implode("<br>", $text);

然后在PHP沙箱或Web服务器下运行它,并将新数组复制并粘贴到您的脚本中。

答案 2 :(得分:0)

使用此方法将单个String值转换为vector3值

public static Vector3 StringToVector3(string sVector)
     {
         // Remove the parentheses
         if (sVector.StartsWith ("(") && sVector.EndsWith (")")) {
             sVector = sVector.Substring(1, sVector.Length-2);
         }
 
         // split the items
         string[] sArray = sVector.Split(',');
 
         // store as a Vector3
         Vector3 result = new Vector3(
             float.Parse(sArray[0]),
             float.Parse(sArray[1]),
             float.Parse(sArray[2]));
 
         return result;
     }

答案 3 :(得分:-2)

我认为其他人可能会在以后发现这个有用:

 import com.sun.nio.sctp.*;