| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> Unity官方对象池ObjectPool的使用 -> 正文阅读 |
|
[游戏开发]Unity官方对象池ObjectPool的使用 |
一、命名空间using UnityEngine.Pool; 二、构造方法public ObjectPool(Func<T> createFunc, Action<T> actionOnGet = null, Action<T> actionOnRelease = null, Action<T> actionOnDestroy = null, bool collectionCheck = true, int defaultCapacity = 10, int maxSize = 10000); ·参数列表解释 ????????每个参数等号右边代表默认值,即第一个参数为必填项。 1.Func<T> createFunc ????????需填入一个带T类型返回值的方法,即自定义新建对象时的操作 2. Action<T> actionOnGet, Action<T> actionOnRelease, Action<T> actionOnDestroy ????????分别为出池、进池、销毁的响应事件。填入自定义方法名即可,用于拓展相应操作,比如在actionOnDestroy中通过Destroy()方法将因为池满而不能入池的对象直接删除 3.bool collectionCheck ????????是否在进池前检查对象是否已经存在池中 4.int defaultCapacity, int maxSize ? ? ? ? 初始容量,最大容量 三、属性1.int CountAll ????????三个属性都为只读初始值为0,经测试,已知每调用一次createFunc委托该值就会+1 2.int CountActive ????????已知每调用一次Release()方法就会-1,Get()方法+1 3.int CountInactive ????????已知每调用一次Release()方法就会+1,Get()方法-1,最大值为池的最大容量 四、常用方法1.T Get() ? ? ? ? 出池,返回一个池中对象。如果池为空,则先调用createFunc,再出池 2.void Relese(T element) ? ? ? ? 进池,将对象element加入池。如果池已达到最大容量,则不入池并触发actionOnDestroy事件 3.void?Clear() ? ? ? ? 清空池 五、实例1.代码
?2.场景搭建 3.运行 ????????通过勾选脚本中的Create、Destroy来模拟敌人创建与销毁操作,同时观察脚本数据变化与控制台输出内容 ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/30 13:36:08- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |