【发布时间】:2019-04-14 08:11:26
【问题描述】:
我想问一下如何随机化从我制作的文本文件数据中获得的单词。
我已经从文本文件中获得了单词并存储到一个字符数组中。
这是我目前所拥有的
我创建了一个名为 Shuffle 的方法
void Shuffle(string[] chArr)
{
//Shuffle
for (int i = 0; i < chArr.Length; i++)
{
string tmp = chArr[i].ToString();
int r = Random.Range(i, chArr.Length);
chArr[i] = chArr[r];
chArr[r] = tmp;
}
Debug.Log(chArr);
}
并像这样使用它
string temp = textArray[rowsToReadFrom[0]];
temp = System.Text.RegularExpressions.Regex.Replace(temp, @"\s", "");
char[] chArr = temp.ToCharArray();
string s = chArr.ToString();
string[] ss = new string[] { s };
Shuffle(ss);
foreach (char c in chArr)
{
testObject clone = Instantiate(prefab.gameObject).GetComponent<testObject>();
clone.transform.SetParent(container);
charObjects.Add(clone.Init(c));
//Debug.Log(c);
}
它仍然没有随机化我从文本文件数据中得到的那个词。
已编辑
到目前为止,这就是我所做的
string temp = textArray[rowsToReadFrom[0]];
temp = System.Text.RegularExpressions.Regex.Replace(temp, @"\s", "");
char[] chArr = temp.ToCharArray();
string charResult = "";
for(int i = 0; i < chArr.Length; i++)
{
int ran = Random.Range(0, chArr.Length);
charResult += chArr[ran];
}
Debug.Log(charResult);
foreach (char c in charResult)
{
testObject clone = Instantiate(prefab.gameObject).GetComponent<testObject>();
clone.transform.SetParent(container);
charObjects.Add(clone.Init(c));
//Debug.Log(c);
}
但不是给我例如“放弃”这个词,它有时会给我一个随机的词“aaaabn”有人可以帮我解释为什么吗?
【问题讨论】:
-
@styx 先生,这是另一回事。你看我已经选择了一个单词并将它存储到 chararray 并且这个 chararray 是我想要随机化的
-
你想从给定的字符串中获取随机字符吗?
-
在最新版本的 Unity 中,您可以仅拥有 c# ...您认为您的给定代码是用什么编写的?
标签: c# unity3d game-development