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++;
}
相关推荐
知识分享小能手1 小时前
React学习教程,从入门到精通, React 属性(Props)语法知识点与案例详解(14)
前端·javascript·vue.js·学习·react.js·vue·react
汇能感知3 小时前
摄像头模块在运动相机中的特殊应用
经验分享·笔记·科技
阿巴Jun4 小时前
【数学】线性代数知识点总结
笔记·线性代数·矩阵
茯苓gao4 小时前
STM32G4 速度环开环,电流环闭环 IF模式建模
笔记·stm32·单片机·嵌入式硬件·学习
是誰萆微了承諾4 小时前
【golang学习笔记 gin 】1.2 redis 的使用
笔记·学习·golang
DKPT5 小时前
Java内存区域与内存溢出
java·开发语言·jvm·笔记·学习
aaaweiaaaaaa5 小时前
HTML和CSS学习
前端·css·学习·html
ST.J5 小时前
前端笔记2025
前端·javascript·css·vue.js·笔记
Suckerbin5 小时前
LAMPSecurity: CTF5靶场渗透
笔记·安全·web安全·网络安全
看海天一色听风起雨落6 小时前
Python学习之装饰器
开发语言·python·学习