我正在尝试将unityscript中的字符串数组转换为包含以下值的值:
“Vector3(5,3,8)”
到一个向量数组中,但Unity不会按原样使用这些字符串。有人有什么想法吗?
答案 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.*;