【发布时间】:2016-06-10 21:31:27
【问题描述】:
我正在创造一个无尽的跳跃游戏。我已经为时间和空间随机生成了很多障碍物,但现在我想让这些障碍物与之前的障碍物不在同一个地方生成,因为它们正在生成,但有时它们可以生成在另一个的顶部或靠近其他人甚至在他们里面,所以请帮助我! 代码:
using UnityEngine;
using System.Collections;
public class SpawnObstacles : MonoBehaviour {
public GameObject[] Obstacle;
public float MINTObstacle;
public float MAXTObstacle;
public bool spawning = false;
public Transform pos;
void Update()
{
if (!spawning)
{
StartCoroutine("SpawnObstacle");
}
}
IEnumerator SpawnObstacle()
{
spawning = true;
yield return new WaitForSeconds(Random.Range(MINTObstacle, MAXTObstacle));
Vector2 finalposition = new Vector2(Random.Range(3,7), Random.Range(pos.position.y - 6f, pos.position.y - 6f));
Instantiate(Obstacle[Random.Range(0, Obstacle.Length)], finalposition, Quaternion.identity);
spawning = false;
}
}
【问题讨论】:
-
创建一个对象可以生成的所有可能位置的 2d 地图,然后当对象生成时在地图上标记它,一旦对象离开屏幕,将其从地图中删除