【发布时间】:2018-10-29 20:36:26
【问题描述】:
好的,我想做的是按程序制作一大堆对象。我所做的是将容器中的对象的 1 个副本为空(带有脚本),然后将所有这些对象添加到列表中,同时随机克隆每个对象的次数。
每个对象都有一个 Box collider 和带有重力的 Rigidbody。我需要两者,这样物体才会落在其他物体的顶部,而不是穿过地板。
我克隆每个对象并将其放置在球体中的随机位置:
foreach(Transform t in transform)
{
if (t.name != "PileSphere")
{
for (int i = 0; i < Random.Range(minOfEach, maxOfEach); i++)
{
GameObject g = Instantiate(t.gameObject);
spawnObjs.Add(g);
}
spawnObjs.Add(t.gameObject);
}
else
{
sphere = t.gameObject;
}
}
foreach(GameObject g in spawnObjs)
{
Vector3 radius = Random.insideUnitSphere * 10 +transform.position;
//g.transform.position = new Vector3(Random.Range(-10, 10), 0, Random.Range(-10, 10));
g.transform.position = radius;
}
这行得通,但是我按下播放键,并且没有任何对象保留在我实例化它们的空间中,因为尽管将反弹阈值设置得很高,但它们彼此反弹了很多米:
我可以做些什么来随机创建一堆可移动的对象?
【问题讨论】:
-
如果您移除 RigidBody,它们将不会反弹。那么你为什么不想办法让它们在不使用刚体和重力的情况下下落呢?
标签: c# unity3d physics collider