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>()方法

相关推荐
悦悦子a啊5 分钟前
Maven 项目实战入门之--学生管理系统
java·数据库·oracle
晨光32115 分钟前
Day34 模块与包的导入
java·前端·python
知行合一。。。6 分钟前
Python--01--核心基础
android·java·python
宵时待雨9 分钟前
C语言笔记归纳22:预处理详解
c语言·开发语言·笔记
计算机毕设指导610 分钟前
基于微信小程序的水上警务通系统【源码文末联系】
java·spring boot·mysql·微信小程序·小程序·tomcat·maven
陌生的人儿11 分钟前
老年痴呆患者心血管防护,硝酸甘油使用需 “专人监护”
java·eclipse·tomcat·maven·0.3mg硝酸甘油舌下片
superman超哥16 分钟前
仓颉语言中循环语句(for/while)的深度剖析与工程实践
c语言·开发语言·c++·python·仓颉
chenyuhao202418 分钟前
Linux系统编程:线程概念与控制
linux·服务器·开发语言·c++·后端
冷雨夜中漫步20 分钟前
Java类加载机制——双亲委派与自定义类加载器
java·开发语言·python
weibkreuz28 分钟前
模块与组件、模块化与组件化的理解@3
开发语言·前端·javascript