【Unity学习笔记】GPU实例化

与静态合批动态合批一样,GPU实例化的目的是对于多个网格同一个材质不同属性,尽可能减少Draw Call的次数,减少合批数量进而达到提高性能的目的

简单的GPU实例化的案例实现

首先创建一个基本的c#脚本

主要的代码是在Start中,设定游戏一开始计算一个for循环,当 i 小于我们设定的固定数量后,结束循环,在循环体中加入下面的计算

固定写法Instantiate

        第一个参数是源数据,即我们需要实例化的模型prefabTree

        第二个参数是position,我们用一个三维向量来填充x,y,z,其中,x,z设置一个随机值,所以在上方声明一个圆形范围的随机值Random.insideUnitCircle,乘以我们设定的Range以控制范围大小

        第三个参数是旋转,使用默认参数

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Practic_Instance : MonoBehaviour
{
    // Start is called before the first frame update

    [Header("生成对象")]
    public GameObject prefabTree;
    [Header("生成数量")]
    public int Count;

    [Header("生成范围")]

    public float Range = 10;
    void Start()
    {
        for (int i = 0; i < Count; i++)
        {
            Vector2 pos = Random.insideUnitCircle * Range;
            GameObject tree = Instantiate(prefabTree,new Vector3(pos.x,6,pos.y),Quaternion.identity);
        
        
        }
    }

    // Update is called once per frame

}

设置好暴露参数后我们尝试运行

效果是有了,但是合批数量依然是每个网格进行一次Draw

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值