Привет, пользователи stackoverflow, Это мой первый вопрос ...
Я хочу порождать врагов в случайных точках появления, не перекрывая друг друга. Итак, я проверяю, что если точка появления используется, то не используйте эту точку появления, если это не так, продолжайте ... У меня есть пустой gameObject, который содержит все spawnPoints для врага. Я назначил скрипт для этого пустого gameobejct.
Я пытался использовать Transform в качестве списка для точек появления, но, к сожалению, это не сработало. Если вы сможете преобразовать это из Vector3 в Transform, тогда это будет хорошо. Я пытался преобразовать это в Transform, но я получил так много ошибок. Я пытался, но это не сработало, как ожидалось.
Вы можете проверить этот скрипт здесь: Сценарий ошибки преобразования
Я получил эти ошибки: Ошибки преобразования
Теперь Сценарий, над которым я работаю, выглядит следующим образом:
using UnityEngine;
public GameObject enemy; //my enemy
public float spawnTime = 3f; //spawn after 3 sec
public List<Vector3> spawnPoints = new List<Vector3> (); //Vector3 positions of spawnpoints.
public float distance; //distance from the spawnPoints
void Start ()
{
//spawnRandom ();
InvokeRepeating ("spawnRandom", spawnTime, spawnTime); //Call this fucntion after 3sec.
}
public Vector3 spawnRandom(){
Vector3 newSpawnPoint; //new spawn point
Vector3 random = UnityEngine.Random.insideUnitSphere * distance;
newSpawnPoint = new Vector3 (random.x, 0, random.z);
newSpawnPoint += transform.position;
if (!spawnPoints.Contains (newSpawnPoint)) {
return newSpawnPoint;
spawnPoints.Add (newSpawnPoint);
int spawnIndex = Random.Range (0, spawnPoints.Count);
Instantiate (enemy, spawnPoints [spawnIndex].normalized, Quaternion.identity); //Spawn randomly
} else {
return Vector3.zero;}}
Проблема в том, что враг не порождает !