【发布时间】:2016-04-29 14:18:49
【问题描述】:
我正在创建一个游戏,玩家需要找到并拿起一定数量的钥匙。目前,我有一个生成容器,可以在给定位置生成 5 个键。我希望能够在 5 个随机位置生成 5 个密钥。所以假设我有 10 个生成点,我希望它随机选择 5 个点中的任何一个并在那里放置一个键。
到目前为止,我有以下代码
using UnityEngine;
using System.Collections;
public class KeySpawnManager : MonoBehaviour
{
// array to store spawnpoints
private Transform[] spawnTransformList;
// integer to store number of spawnpoints
private int numberOfSpawnpoints;
// the prefab we're going to spawn
public GameObject prefab;
private int collectedCount = 0;
private int currentTime = 0;
// Singleton Instance
public static KeySpawnManager Instance { get; private set; }
// AWAKE Function - fired on initialization
void Awake ()
{
if (Instance == null) Instance = this;
else Destroy( gameObject );
numberOfSpawnpoints = transform.childCount;
spawnTransformList = new Transform[numberOfSpawnpoints];
for (int i = 0; i < numberOfSpawnpoints; i++)
{
// add the spawn to the array
spawnTransformList[i] = transform.GetChild(i); // return transform Component of each child object
}
for (int j = 0; j < numberOfSpawnpoints; j++)
{
GameObject newPrefab = (GameObject) Instantiate(prefab, spawnTransformList[j].position, spawnTransformList[j].rotation);
newPrefab.transform.parent = transform.position;
}
}
}
关于如何做到这一点的任何想法? 谢谢
【问题讨论】:
-
你的代码到底能做什么,你的代码不能做什么?
-
所以我创建了 5 个空游戏对象,上面的代码在每个空游戏对象的位置生成了一个 key prefab。我试图将其更改为 10 个空游戏对象,但它只生成 5 个键并从 10 个空对象中随机选择一个