如何使随机平台从随机点生成?

时间:2019-08-28 00:19:16

标签: c# unity3d

很抱歉出现新手问题。

我想从五个随机生成点之一生成随机平台。平台将向上浮动,玩家将跳上平台。

例如,一个平台有一个敌人,一个平台有一个硬币,一个平台有一个硬币和一个敌人,一个平台是空的。随机平台可以从五个点随机产生。

我的代码的一次迭代可以使平台从随机点生成,但是它只能在一个平台上工作。我还没有弄清楚如何添加多个平台并随机生成它们。

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);
    }
}

上面的代码仅从一个地方生成一种平台。我已经向阵列添加了多个平台,但是只有一个会生成。

1 个答案:

答案 0 :(得分:1)

int spawnNum = Random.Range(0, 5);int prefabNum = Random.Range(0, 3);都只初始化一次,因此它们将始终保持相同的值,并且永远不会更改为新的随机数。

我建议进行此更改:

private void AllSpawn() 
{
    Instantiate(
        obstacles[Random.Range(0, obstactles.Length)], 
        points[Random.Range(0, points.Length)].position, 
        Quaternion.identity
    );
}