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++;
}
相关推荐
future14122 小时前
MCU硬件学习
单片机·嵌入式硬件·学习
好奇龙猫2 小时前
日语学习-日语知识点小记-构建基础-JLPT-N3阶段-二阶段(4):文法運用
学习
mtactor2 小时前
投资理财学习笔记
笔记·学习·金融
浮游本尊3 小时前
React 18.x 学习计划 - 第四天:React Hooks深入
前端·学习·react.js
Cool-浩3 小时前
【征文计划】Rokid 语音指令开发教程 【包含工程源码 和体验包APK】
unity·ar·语音识别·rokid·语音指令
立志成为大牛的小牛4 小时前
数据结构——二十六、邻接表(王道408)
开发语言·数据结构·c++·学习·程序人生
XiangrongZ4 小时前
江协科技STM32课程笔记(五)— ADC模数转换器
笔记·科技·stm32
Olrookie5 小时前
若依前后端分离版学习笔记(二十)——实现滑块验证码(vue3)
java·前端·笔记·后端·学习·vue·ruoyi
请你喝好果汁6415 小时前
Conda_bashrc 初始化机制学习笔记
笔记·学习·conda
maxruan6 小时前
PyTorch学习
人工智能·pytorch·python·学习