我从列表中产生对象,所以我让他们找到已经存在于场景中的父对象。问题是Random.Range( )不像我想要的那样工作。我希望列出的对象产生到一个随机的父对象,相反,他们产生到它们是相对于列表顺序的父对象。Unity3d:Random.Range()不按我想要的方式工作
Ex。 0,1,2,3,4,5,6,7,8,9 = Bad Ex。 8,3,1,4,6,3,7,9,5,2 =好 笑
var theRange = Random.Range(obj1.Length,obj1.Length);
for(var i: int = 0; i < theRange; i++){
var obj2 : GameObject = obj1[i];
if(obj2.transform.childCount == 0){
objfromList.transform.parent = obj2.transform;
objfromList.transform.localPosition = Vector3(0,-2,0);
}
}
深表感谢
如果'obj1.length'是10,那么你的语句Random.Range(obj1.Length,obj1.Length);'读取'Random.Range(10,10);'所以它不会返回任何东西,除了10此外Random.Range不保证你不会看到重复。 – Jerdak
你说得对,我确实将它改为Random.Range(0,obj1.Length);而且它们产生的方式没有区别。另外我检查了子女数是否为0.他们也只有十个父母和十个孩子,所以复制完全被杀死。谢谢Jerdak – n900orbit