C# 如何使随机平台从随机点生成?
很抱歉问你这个新手问题 我想从五个随机生成点中的一个生成随机平台。平台将向上浮动,玩家将在平台上跳跃 例如,一个平台有一个敌人,一个平台有一枚硬币,一个平台有一枚硬币和一个敌人,一个平台是空的。随机平台可以从五个点随机生成 我的代码的一次迭代可以使平台从随机点生成,但它只适用于一个平台。我还没有弄明白如何添加多个平台并随机生成它们C# 如何使随机平台从随机点生成?,c#,unity3d,C#,Unity3d,很抱歉问你这个新手问题 我想从五个随机生成点中的一个生成随机平台。平台将向上浮动,玩家将在平台上跳跃 例如,一个平台有一个敌人,一个平台有一枚硬币,一个平台有一枚硬币和一个敌人,一个平台是空的。随机平台可以从五个点随机生成 我的代码的一次迭代可以使平台从随机点生成,但它只适用于一个平台。我还没有弄明白如何添加多个平台并随机生成它们 public class RandomSpawn : MonoBehaviour { public Transform[] points; publi
public class RandomSpawn : MonoBehaviour
{
public Transform[] points;
public GameObject[] obstacles;
public float invokeRate = 1.0f;
public GameObject platform;
int spawnNum = Random.Range(0, 5);
int prefabNum = Random.Range(0, 3);
private void Start()
{
InvokeRepeating("AllSpawn", 1.0f, invokeRate);
}
void AllSpawn()
{
Instantiate(obstacles[prefabNum], points[spawnNum].position, Quaternion.identity);
}
}
上面的代码只是从一个点生成一种类型的平台。我已将多个平台添加到阵列中,但只有一个平台生成和
int-prefactnum=Random.Range(0,3)
都只初始化一次,因此它们将始终保持相同的值,并且永远不会更改为新的随机数
我建议进行以下更改:
private void AllSpawn()
{
Instantiate(
obstacles[Random.Range(0, obstactles.Length)],
points[Random.Range(0, points.Length)].position,
Quaternion.identity
);
}
intspawnnum=Random.Range(0,5)
和int-prefactnum=Random.Range(0,3)
都只初始化一次,因此它们将始终保持相同的值。我可以自由地稍微更改代码。请注意,对于int
重载,的最大参数是独占的,因此您不必执行-1
,因为最大返回值已经是,例如obstractles.Length-1