模拟的的思路是,用鼠标点击屏幕,然后实例化一个预制体,利用刚体组件使它有个向前发射的效果,将生成的物体写入一个数组,当物体数量达到五个的时候,销毁数组中下标为0的预制体,同时将销毁物体从数组中移除。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Shoot : MonoBehaviour {
//创建一个共有的游戏物体子弹
public GameObject bullet;
//速度的大小
public float speed = 5f;
//命名的一个数
private int ballIndex=0;
//定义一个数组(本数组可以增加长度)
private List<GameObject> objBall;
// Use this for initialization
void Start () {
//初始化数组
objBall = new List<GameObject>();
}
// Update is called once per frame
void Update () {
//如果输入鼠标左键
if (Input.GetMouseButtonDown(0))
{
ballIndex++;
//克隆一个物体,位置是所挂脚本物体的位置
GameObject ball= GameObject.Instantiate(bullet, transform.position, transform.rotation);
//克隆物体的名字
ball.name = "Ball" + ballIndex;
//克隆物体加入数组
objBall.Add(ball);
Rigidbody rig = ball.GetComponent<Rigidbody>();
//克隆物体的速度是所挂脚本向前的速度
rig.velocity = transform.forward*speed;
if(ballIndex>5){
//销毁数组中下标为0的游戏物体
Destroy(objBall[0]);
//移除数组中已被销毁物体的 位置
objBall.RemoveAt(0);
// return;
}
}
}
}
工程文件链接:链接:https://pan.baidu.com/s/1fAFzYTeL2Sl3dQdV-Sovhg 密码:x6vy;;
软件版本:Unity 2017.3.1p2
大家多多指导