如何随机实例化新的图块并销毁它们

时间:2017-10-23 03:19:53

标签: c# unity3d

我正致力于这场无限的亚军比赛。 我有5个不同颜色的瓷砖,我希望它们在相同的y轴上产生,但不会连续产生相同的瓷砖。

喜欢 [Bluetile] [Greentile] [Purpletile] [Bluetile] Magentatile] [Bluetile]

我希望它们在离开相机时也能消灭。

我只知道C#,我期待着您的预期帮助! :)

1 个答案:

答案 0 :(得分:0)

关于图块,您应该将所有图块插入到列表中,当您需要获取新图块时,您只需从列表中随机选择一个图块减去列表中的最后一个图标(保证不会选中它)再次第二次)然后将该图块推到列表的末尾。

// populating the tiles
List<Tile> tiles = new List<Tile>();
 // todo: populate the tiles list


// getting a tile and pushing it to the end
int randomIndex = Random.Range(0, tiles.Count - 1);
Tile tile = tiles[randomIndex];
tiles.RemoveAt(randomIndex);
tiles.Add(tile);

并且就像离开屏幕时摧毁瓷砖一样,有一种方法可以检测物体何时离开相机的monobehaviour类

void OnBecameInvisible() {
     Destroy(gameobject);
}