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++;
}
相关推荐
夕除17 分钟前
redis--010
笔记·分布式·学习
andrsted19 分钟前
在线刷小程序推荐
学习·微信小程序·小程序·学习方法
ouynagda21 分钟前
HTTP协议与Socket网络编程笔记
网络·笔记·http
weixin_4462608532 分钟前
基于熵的选择性智能体引导:从非完美视觉语言模型教师学习自主策略
人工智能·学习·语言模型
摇滚侠36 分钟前
《SpringBoot 3:入门与应用实战》第 10 章 REST 服务请求与调用 Reactor 与 WebFlux 笔记 28
spring boot·笔记·后端
微三云生态系统架构师-彭丹39 分钟前
任务卷轴积分系统架构设计:从任务状态机到合规风控的完整实现
unity·系统架构·游戏引擎
幸运小圣41 分钟前
JavaScript 关键字与保留字学习笔记详细讲解,一篇get ✅【JavaScript查缺补漏】
javascript·笔记·学习
怪祝浙1 小时前
口语总结之总结
学习
摆烂老大1 小时前
论文学习 | Expert Systems With Applications2026 | 可微分建模:S4D-HBV
python·学习·水文
十铭忘2 小时前
英语介词怎么理解?
笔记