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++;
}
相关推荐
禹中一只鱼3 小时前
【力扣热题100学习笔记】 - 哈希
java·学习·leetcode·哈希算法
SteveSenna4 小时前
项目:Trossen Arm MuJoCo
人工智能·学习·算法
m0_747304164 小时前
GNN学习
学习
Sagittarius_A*5 小时前
监督学习(Supervised Learning)
人工智能·学习·机器学习·监督学习
C蔡博士5 小时前
Unity2D物理系统-从入门到实战优化
unity·游戏引擎·rigidbody2d
qqty12176 小时前
Java进阶学习之路
java·开发语言·学习
WHS-_-20226 小时前
Python 算法题学习笔记一
python·学习·算法
_李小白6 小时前
【OSG学习笔记】Day 22: StateSet 与 StateAttribute (渲染状态)
笔记·学习
zzh0817 小时前
Mysql数据库备份与恢复笔记
数据库·笔记·mysql
TorrieLeung7 小时前
碎片学习|外贸tob 一手交钱一手交货
学习·tob·外贸销售·工地英语