news 2026/6/5 2:05:00

2.5 GameObject优化和容器选择

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2.5 GameObject优化和容器选择

1.GameObject优化

2.容器选择

3.复杂计算结果缓存


1.GameObject优化

1).属性优化 GameObject的tag,layer,name等字符串属性会带来性能开销,因为这些字符串属性在Unity是通过桥接获取的,频繁调用会 导致性能下降 a.Tag优化-避免使用if(gameObject.tag=="TagName")-推荐使用if(gameObject.CompareTag("TagName"))-因为CompareTag方法内部使用整数比较,效率更高 b.Layer优化-避免频繁使用:if(gameObject.layer==LayerMask.NameToLayer("LayerName"))-推荐先缓存LayerMask.NameToLayer的结果,因为NameToLayer是通过字符串查找层索引,开销较大-然后使用缓存后的层索引进行判断:if(gameObject.layer==cachedLayer)c.Name优化 避免在每帧中使用gameObject.name进行字符串比较,因为gameObject.name会分配新的字符串;如果对象的名称不会改变,可 以在一开始缓存gameObject.name,然后使用缓存的字符串进行比较
2).减少Find相关方法的使用 GameObject的Find系列方法,在运行时遍历场景中的对象并通过字符串比较,效率很低 a.尽量避免在Update,FixedUpdate等每帧调用的方法中使用Find系列方法 b.在Start或Awake中缓存所需对象的引用 c.使用序列化字段在Inspector中赋值,避免运行时查找

2.容器选择

容器选择就是在Unity中使用合适的数据结构类来装载数据 a.List-存储结构是连续的,查找的时间复杂度是O(n)b.Dictionary-存储结构是不连续的,查找的时间复杂度是O(1)c.HashSet<T>-查找/添加/删除都是O(1),内部使用哈希表实现;只关心元素是否存在,不需要顺序,也不 需要键值对映射 d.Queue<T>-入队,出队都是O(1),适合先进先出 e.Stack<T>-入栈,出栈都是O(1),适合先进后出 f.LinkedList<T>-插入,删除节点是O(1),查找是O(n)g.SortedDictionary<TKey,TValue>、SortedList<TKey,TValue>-会自动根据Key排序,插入、删除、查找为O(logn),比Dictionary慢,但顺序稳定 h.ConcurrentDictionary、ConcurrentQueue 等-线程安全的集合,Unity主线程中基本不使用,适合多线程工具层代码中

3.复杂计算结果缓存

复杂计算结果缓存指的是避免重复运行开销大的运算,将结果缓存起来,从而减少cpu运算量;这类优化适用于频繁执行但变 化不频繁的逻辑 a.数学计算结果缓存 我们可以在初始化项目基础数据时,把各种数据提前算好;以三角函数为例,我们可以用一个float数组存储0~359度所有 Sin、Cos等等三角函数值 b.寻路计算结果缓存 如果项目中存在A*寻路等寻路算法,可以用容易缓存两个点之间的路径,下次寻路时,发现存在已寻路点,直接获取路径来使用 c.静态配置数据缓存 对于配置表中数据,特别是需要频繁使用的表,我们应该在进入游戏时就反序列化后存储在内存中;避免每次使用配置数据 都重复反序列化
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/29 15:05:17

前后端分离学生网上选课系统系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程

摘要 随着信息技术的快速发展&#xff0c;教育信息化已成为高校管理的重要方向。传统的选课系统多采用单体架构&#xff0c;存在前后端耦合度高、维护困难、扩展性差等问题。学生选课作为高校教务管理的核心环节&#xff0c;亟需一种高效、稳定且用户体验良好的解决方案。前后端…

作者头像 李华
网站建设 2026/5/31 11:44:04

Elsa 3.0工作流实战技巧:三步快速搭建你的首个自动化流程

你是不是经常遇到这样的烦恼&#xff1a;每天重复处理相同的邮件、数据同步、API调用...这些机械性工作不仅耗时耗力&#xff0c;还容易出错&#xff1f;今天我要分享一个秘密武器——Elsa 3.0工作流引擎&#xff0c;它能帮你把这些重复劳动统统自动化&#xff01; 【免费下载链…

作者头像 李华
网站建设 2026/5/19 14:58:56

draw.io Notion嵌入神器:告别图表显示困扰,打造专业文档体验

draw.io Notion嵌入神器&#xff1a;告别图表显示困扰&#xff0c;打造专业文档体验 【免费下载链接】drawio-notion-embed A super simple project that lets you embed draw.io diagrams directly into Notion. 项目地址: https://gitcode.com/gh_mirrors/dr/drawio-notio…

作者头像 李华
网站建设 2026/6/5 0:55:54

手把手教你部署Open-AutoGLM:快速搭建本地AutoGLM推理系统的7步法

第一章&#xff1a;Open-AutoGLM沉思开源了那些Open-AutoGLM 是一个面向通用语言模型自动化推理与优化的开源项目&#xff0c;旨在提升大语言模型在复杂任务中的自主决策能力。该项目由深度求索&#xff08;DeepSeek&#xff09;团队主导开发&#xff0c;已全面公开其核心架构与…

作者头像 李华
网站建设 2026/5/31 23:22:36

如何快速实现Midea设备Home Assistant本地控制:终极配置指南

想要彻底摆脱云端依赖&#xff0c;让您的美的空调和除湿器实现真正意义上的本地网络控制吗&#xff1f;本指南将带您从零开始&#xff0c;在3分钟内完成Midea设备与Home Assistant的无缝对接&#xff0c;享受稳定可靠的智能家居体验。 【免费下载链接】homeassistant-midea-air…

作者头像 李华
网站建设 2026/5/20 16:41:19

站在评审的角度写国自然基金本子,搭配这5条AI提示词,帮你一键提升本子中标率

多数同仁的基金本子被拒,并不是写的不好,而是评审没太多时间看。真正能中标的本子,往往要具备三个特征:方向正确(国家要解决什么)、逻辑清晰(问题—机制—路径)、摘要吸引人(30 秒抓住评审)。 下面七哥给大家分享亲测有效的五条AI提示词,帮你一键提升基金中标率。 …

作者头像 李华