2017-02-26 42 views
0

我目前正在做一个小项目,只是为了好玩,其中我正在制作小型随机生成的人员civ.Im目前正在处理名称生成的函数,我无法完全弄清楚好的方式,或完美的方式来完成这项任务。到目前为止,这是我所:为Unity Project C创建名称生成器#

public void GenerateName() { 
     string[] nameComponent1 = new string[] {"Ge","Me","Ta","Bo","Ke","Ra","Ne","Mi" }; 
     string[] nameComponent2 = new string[] {"oo","ue","as","to","ra","me","io","so" }; 
     string[] nameComponent3 = new string[] {"se.","matt.","lace.","fo.","cake.","end." }; 

     string nameCompfirst = nameComponent1[Random.Range(0, nameComponent1.Length)].ToString(); 
     string nameCompSecond = nameComponent2[Random.Range(0, nameComponent2.Length)].ToString(); 
     string nameCompThird = nameComponent3[Random.Range(0, nameComponent3.Length)].ToString(); 


    } 

}; 

如果你将能够解决这个问题对我来说,这将是要命 - 或者,如果你有更好的建议,请去了。我起来的想法

感谢

+0

你想选择随机字符串的一个? –

+0

我想随机选择字符串,然后将所有nameComp变量添加到一起以等于名称变量 - 多数民众赞成,至少我怎么会这样做 –

回答

1

你想用System.Random类,但在你的代码,它使用UnityEngine.Random代替,这增加了你的类的顶部

using Random = System.Random; 
+0

你怎么做到这一点对不起,新手 –

+0

添加该行到你的班级的顶部,如下面 'using Random = System.Random; 公共类YOURCLASS:MonoBehaviour {/// 代码在这里 }' –

+0

要命的问题解决了谢谢 –

0

如果我真正了解你:

Random r = new Random(); 

string[] nameComponent1 = new string[] {"Ge","Me","Ta","Bo","Ke","Ra","Ne","Mi" }; 
    string[] nameComponent2 = new string[] {"oo","ue","as","to","ra","me","io","so" }; 
    string[] nameComponent3 = new string[] {"se.","matt.","lace.","fo.","cake.","end." }; 

string nameCompfirst = nameComponent1[r.Next(0, nameComponent1.Length)]; 
string nameCompSecond = nameComponent2[r.Next(0, nameComponent1.Length)]; 
string nameCompThird = nameComponent3[r.Next(0, nameComponent1.Length)]; 

string result = nameCompfirst + nameCompSecond + nameCompThird; 
+0

似乎没有工作,当我键入下一个它不会自动完成或者 - 它有错误 “Random”不包含“Next”的定义,也没有包含“Next”的扩展方法 –

+0

您是否使用过Random r = new Random();和'r.Next()'?这是错误的:'Random.Next()' –

+0

是的,我把我写的确切: 随机r =新Random(); //这部分版本不兼容 string nameCompfirst = nameComponent1 [r。] –