闭包优化Unity

最近对闭包有了一定的了解,再加上最近遇到一个问题,发现正好可以运用闭包的思想来优化下,书以记之。

闭包可参考https://blog.csdn.net/qq_39779932/article/details/103050787

问题是这样的:在scrollview中动态加载button cell,然后点击button可以让右边的Text显示button的一些说明。见下图

正常逻辑下,在我加载的button 的预制体中必然需要加上脚本,因为一来要注册button的点击事件,二来要获得button中text的内容,必然需要一个脚本才行。给每个Button加一个脚本也有两种的解法。

1、采用单列模式,让button cell可以访问到足够多信息

2、使用委托进行一定的解耦

3、利用闭包保存外部局部变量的特性进行表达

对比以上三者,第一种是最常见的,第二种有一定的解耦,第三种是既解耦也因为不用再创建button的脚本节省一些内存。创建一个脚本其实还是要占些内存的,因为MonoBehaviour包含了大量的属性,很多时候都用不上,但是一旦创建了MonoBehaviour必然会开辟那么多的内存空间。另Unity官方也正在推行ECS来优化MonoBehaviour。

项目已上传码云,有需要见下链接。项目采用2018.3.1版本unity。

项目链接:https://gitee.com/zfwl/ClosureForOptimization

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值