unity2d随机生成物体_《Unity3d-在地图中随机生成一个物体的代码》

本文介绍了如何在Unity2D环境中利用`Instantiate`方法动态生成物体,并通过控制变量实现时间间隔和数量限制。代码示例中创建了一个`FishController`类,包含鱼的最大数量、当前数量、鱼的预制体数组以及生成间隔等属性。在`Update`函数中调用`CreatFish`方法,当鱼的数量未达到最大值时,根据设定的时间间隔随机生成鱼的实例,将其放置在屏幕内的随机位置。
摘要由CSDN通过智能技术生成

//思路:使用.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); //实例化鱼的本体 位置 旋转

}

}

}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值