Unity C# 影响性能的坑点

c++用的时间长了怕unity的坑忘了,记录一下。

  • GetComponent最好使用GetComponent<T>()的形式,

  • 继承自Monobehaviour的函数要避免空的Awake()、Start()、Update()、FixedUpdate().这些空回调会造成性能浪费

  • GetComponent方法最好避免在Update当中使用,这个组件底层的实现是遍历所有组件,如果挂的组件比较多的时候会消耗内存空间。最好是在初始化的时候缓存一下

  • 尽量避免运行时候改变Transform的父节点。这块占开销比较大,通过GameObject.Instantiate(parent)当中直接设置Parent效率会比运行时候改parent效率高。

  • 避免运行时候使用Find和Unity当中SendMessage方法

GameObject.Find底层实现方法是遍历,开销非常大,只适用于场景当中只有非常少的情况。

  • 公共数据、配置表用Unity自带的ScriptableObject实现比较好,会减少序列化、反序列化的时间。

  • enum、Struct作为字典key值产生GC,需要实现IEqualityComparer<T>()方法

相关推荐
java_nnnn2 分钟前
Spring MVC小案例(1)
java·后端·spring·mvc
wyhwust9 分钟前
程序设计基础--C语言输入输出单元测试
c语言·开发语言
西凉的悲伤12 分钟前
Spring Boot 条件装配注解详解
java·springboot·1024程序员节·条件装配
云和数据.ChenGuang25 分钟前
python sorted函数详细剖析
开发语言·人工智能·windows·python·1024程序员节
木井巳25 分钟前
【动态规划: 路径问题】不同路径
java·算法·leetcode·动态规划
打工仔折腾 AI28 分钟前
AI Agent 工程化实战(二):5 分钟跑通 Deep Agent 并逐层拆解底层链路
java·数据库·人工智能·后端·python·langchain·ai agent 实战
外收内放30 分钟前
FastAPI猜字谜实战(4):让AI主持人开口
开发语言·python·学习·fastapi
云和数据.ChenGuang31 分钟前
Python map() 函数详解:从语法、原理到实战用法
开发语言·人工智能·python·langchain·1024程序员节
秋名RG34 分钟前
(二)存储、CPU 与指令执行——程序为什么快,又为什么慢
java·开发语言
Highcharts.js37 分钟前
Highcharts甘特图开发带导航功能的项目管理图示例
开发语言·前端·javascript·甘特图·highcharts·项目管理图