如何在我的代码中随机化公共Transform tilePrefab?

问题描述 投票:1回答:1

因此,我想制作一个地图生成器,并为瓷砖准备一个预制件。但是我想制作更多它可以随机选择的图块。

如何使每次从一系列预制件中随机选择tilePrefab?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MapGenerator : MonoBehaviour
{

    public Transform tilePrefab; //This is the part which I want to be random
    public Vector2 mapSize;

    private void Start()
    {
        GenerateMap();
    }
    public void GenerateMap()
    {
        for (int x = 0; x < mapSize.x; x++)
        {
            for (int y = 0; y < mapSize.y; y++)
            {
                Vector3 tilePosition = new Vector3(-mapSize.x / 2 + 0.5f + x, 0,-mapSize.y / 2 + 0.5f + y);
                Transform newTile = Instantiate(tilePrefab, tilePosition, Quaternion.Euler(Vector3.right * 360)) as Transform;
            }
        }
    }

}

我希望每次生成图块时都随机选择tilePrefab。

c# unity3d random
1个回答
0
投票

具有一个可容纳所有瓷砖预制件的阵列。随机选择新图块的索引。

            Transform newTile = Instantiate(tilePrefabs[Random.Range(0, tilePrefabs.Length - 1), tilePosition, Quaternion.Euler(Vector3.right * 360)) as Transform;
© www.soinside.com 2019 - 2024. All rights reserved.