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