首页 > 代码库 > 《Unity3d-在地图中随机生成一个物体的代码》
《Unity3d-在地图中随机生成一个物体的代码》
//思路:使用.Instantiate方法控制生成 但是在生成前一定要计算好生成的鱼儿的条件控制
public class FishController : MonoBehaviour
{
public int maxCount = 10; //鱼池中鱼最大存在的个数
public int count = 0; //当前鱼池中鱼的个数
public GameObject[] fishArray; //设置与鱼的数组随机生成鱼
public float timer = 0; //生成鱼的时间间隔
private float timerInvertal = 1f;//时间闸
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
CreatFish();
}
void CreatFish() //生成鱼的方法
{
if (count >= maxCount) //如果当前鱼池中的鱼的数量大于10条结束程序
{
return;
}
timer += Time.deltaTime; //让生成鱼的时间间隔增加
if (timer >= timerInvertal) //如果生时间大于时间闸的时候生成一条鱼
{
timer -= timerInvertal; //恢复时间间隔
count++; //鱼的数量增加
//开始实例化鱼
//首先实例化鱼的prefabs
GameObject fishPrefabs = fishArray[Random.Range(0,fishArray.Length)];
//实例化鱼的位置
Vector3 fishLoadPos = new Vector3(Random.value, Random.value, -Camera.main.transform.position.z); //随机实例化鱼儿本身的坐标
Vector3 fishWorldPos = Camera.main.ViewportToWorldPoint(fishLoadPos); //实例化鱼的世界坐标
//实例化鱼儿
GameObject.Instantiate(fishPrefabs, fishWorldPos, fishPrefabs.transform.rotation); //实例化鱼的本体 位置 旋转
}
}
}
《Unity3d-在地图中随机生成一个物体的代码》