Unity 学习笔记 2.预制体,Instantiate()生成,Destroy()销毁

下载源码 UnityPackage

1. 动态创建预制体

cs 复制代码
    // 在外部拖入预制体
    public GameObject enemy;

    void Start()
    {
        for (int i = 0; i < 5; i++)
        {
            // 生成游戏对象:Instantiate();
            GameObject ENEMY = Instantiate(enemy);
            // 根据i的增大,一字排开
            ENEMY.GetComponent<Transform>().Translate(i * 1f, 0, 0);
        }
    }

2. 随机动态生成预制体

cs 复制代码
    // 在外部拖入预制体
    public GameObject enemy;

    void Update()
    {
        // 创建三个坐标轴的随机数
        float x = Random.Range(-50, 50);
        float y = Random.Range(-50, 50);
        float z = Random.Range(-50, 50);

        GameObject ENEMY = Instantiate(enemy);
        ENEMY.GetComponent<Transform>().Translate(x,y,z);
    }

3. 控制生成速度

cs 复制代码
// 在外部拖入预制体
public GameObject enemy;
// 允许小球存在的个数
public int total;

// 计时器
int num;
// 当前创建第几个小球
int currentTotal = 0;


void Update()
{
    // 创建三个坐标轴的随机数
    float x = Random.Range(-50, 50);
    float y = Random.Range(-50, 50);
    float z = Random.Range(-50, 50);

    // 计算每10帧生成一次
    if (num % 10 == 0)
    {
        GameObject ENEMY = Instantiate(enemy);
        ENEMY.name = "qiu" + currentTotal;
        currentTotal++;
        ENEMY.GetComponent<Transform>().Translate(x, y, z);

        // 如果 当前总数 超过 允许存在的总数
        if (currentTotal >= total)
        {
            GameObject desObj = GameObject.Find("qiu" + (currentTotal - total));
            // Destroy() 销毁游戏对象
            Destroy(desObj);
        }
    }
    num++;
}

4. 控制生成总数

cs 复制代码
// 在外部拖入预制体
public GameObject enemy;
// 允许小球存在的个数
public int total;

// 计时器
int num;
// 当前创建第几个小球
int currentTotal = 0;


void Update()
{
    // 创建三个坐标轴的随机数
    float x = Random.Range(-50, 50);
    float y = Random.Range(-50, 50);
    float z = Random.Range(-50, 50);

    // 计算每10帧生成一次
    if (num % 10 == 0)
    {
        GameObject ENEMY = Instantiate(enemy);
        ENEMY.name = "qiu" + currentTotal;
        currentTotal++;
        ENEMY.GetComponent<Transform>().Translate(x, y, z);

        // 如果 当前总数 超过 允许存在的总数
        if (currentTotal >= total)
        {
            GameObject desObj = GameObject.Find("qiu" + (currentTotal - total));
            // Destroy() 销毁游戏对象
            Destroy(desObj);
        }
    }
    num++;
}
相关推荐
报错小能手5 分钟前
C++笔记——STL map
c++·笔记
谷歌开发者35 分钟前
Web 开发指向标 | Chrome 开发者工具学习资源 (六)
前端·chrome·学习
一步一个foot-print41 分钟前
【Unity】Light Probe 替代点光源给环境动态物体加光照
unity·游戏引擎
lkbhua莱克瓦242 小时前
Java基础——集合进阶3
java·开发语言·笔记
@LYZY2 小时前
Unity 中隐藏文件规则
unity·游戏引擎·游戏程序·vr
QT 小鲜肉2 小时前
【QT/C++】Qt定时器QTimer类的实现方法详解(超详细)
开发语言·数据库·c++·笔记·qt·学习
MeowKnight9582 小时前
【Qt】Qt实践记录3——UDP通信
笔记·qt
REDcker2 小时前
前端打包工具 - Rollup 打包工具笔记
前端·笔记
lkbhua莱克瓦243 小时前
Java基础——集合进阶用到的数据结构知识点1
java·数据结构·笔记·github
Mr.Jessy3 小时前
Web APIs 学习第五天:日期对象与DOM节点
开发语言·前端·javascript·学习·html