我想创建一个由随机生成的对象组成的地形。我创建了几个预制件并制作了一个脚本,其中包含阵列中的所有3个预制件,并随机生成它们。 我遇到的问题是(不同大小的)物体在1个单位距离内产生,因此基本上彼此相对,而不是彼此相继。 第二个问题是我不确定如何将产卵限制在一个合适的数字。我创建了一个脚本,一旦我通过它就会销毁这些对象,但是在代码中,目前它们产生的速度太快,太快(我知道代码不是最好的,我还在练习)。 我确实在寻找可能的解决方案或类似的问题,但没有找到任何可以帮助我的方法。 这是我脚本中的代码:
using UnityEngine;
using System.Collections;
public class SpawnScript : MonoBehaviour {
public GameObject[] obj;
public Vector3 pos = new Vector3(-8,-4,0);
public float size = 1.0f;
private Vector3 dir = Vector3.right;
void Start () {
Spawn();
}
void Spawn() {
for (int i = 0; i<30; i++)
{
Instantiate (obj [Random.Range (0, obj.Length)], pos, Quaternion.identity);
pos += dir * size;
}
Invoke ("Spawn", 2);
}
}
我希望我能得到任何建议,参考或帮助。
答案 0 :(得分:0)
由于您将size
定义为1.0f
,因此它们以1个单位距离产生。取而代之的是物体的实际尺寸:
GameObject go = obj[Random.Range(0, obj.Length)];
Vector3 size = go.renderer.bounds.size;
pos += new Vector3(dir.x * size.x, dir.y * size.y, dir.z * size.z);
Instantiate(go, pos, Quaternion.identity);