我試圖字符串的數組轉換成unityscript到向量,其具有值保持像值:轉換字符串在Unity
「的Vector3(5,3,8)」
到載體的陣列,但Unity不會像現在這樣使用這些字符串。有人有主意嗎?
我試圖字符串的數組轉換成unityscript到向量,其具有值保持像值:轉換字符串在Unity
「的Vector3(5,3,8)」
到載體的陣列,但Unity不會像現在這樣使用這些字符串。有人有主意嗎?
我想別人可能會發現這個有用後來這樣:
if(PlayerPrefs.GetFloat("nodeNum") > 0) {
//Assemble axis value arrays
//X
var xString = PlayerPrefs.GetString("xVals");
var xValues = xString.Split(","[0]);
//Y
var yString = PlayerPrefs.GetString("yVals");
var yValues = yString.Split(","[0]);
//Z
var zString = PlayerPrefs.GetString("zVals");
var zValues = zString.Split(","[0]);
var countNode = 0;
var goal = PlayerPrefs.GetFloat("nodeNum");
var nodeVecs = new Array(Vector3.zero);
while (countNode != goal) {
var curVec = Vector3(float.Parse(xValues[countNode]), float.Parse(yValues[countNode]), float.Parse(zValues[countNode]));
nodeVecs.Push(curVec);
countNode += 1;
}
var convNodeVecs : Vector3[] = nodeVecs.ToBuiltin(Vector3) as Vector3[];
for(var nodeVec : Vector3 in convNodeVecs) {
Instantiate(nodeObj, nodeVec, Quaternion.identity);
}
}
你不能所有的矢量元素轉換一起在C#中,你可以像波紋管:
其僞代碼:
position.x=convert.ToFloat("3");
position.y=....
我覺得沒有API,使這個你: 「的Vector3( 5,3,8)「
我在UnityScript中試過你的方法,它的工作原理,謝謝! –
你沒有給我們任何示例代碼,所以我會假設數組是很好的組織,所有元素都彼此相鄰。
雖然我不認爲有什麼辦法可以完全使用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服務器下運行它,然後將新數組複製並粘貼到腳本中。
你嘗試過什麼,以及在哪裏失敗?沒有字符串分裂和基本操作就足夠了嗎? – Mephy
考慮upvoting和接受答案,如果它可以幫助你。 – user3071284