Unity经验之谈-DoTween动画结束匿名委托闭包之坑
产生问题:
成百上千个物体放在List列表里面循环,每个物体都要使用移动和移动结束事件。
BUG:
动画结束之后我想隐藏该物体,结果却没有正常的隐藏,代码如下
1 2 3 4 5 6 7 8 9 10 11 12 | foreach ( var item in lists) { if (item != null ) { item .transform.DOLocalMove(AnchorBanker.transform.localPosition, 0.5f).OnComplete(() => { item .gameObject.SetActive( false ); }); } } |
产生的表现:
这个List的最后一个item才会被正常的隐藏。
原因:匿名委托中使用的item指向了lists的最后一个item
解决办法:
将Item的引用缓存起来,代码如下
1 2 3 4 5 6 7 8 9 10 11 12 13 | foreach ( var item in lists) { if (item != null ) { var go = item; go.transform.DOLocalMove(AnchorBanker.transform.localPosition, 0.5f).OnComplete(() => { go.gameObject.SetActive( false ); }); } } |
小时候我把老婆种到地下,长大了我能收获一大堆老婆!
我是威少,我是一名Unity游戏的主程,我为自己带盐,希望此文能给您一点点微不足道的帮助,祝你成功!
分类:
Unity
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律