【解决】Unity Profile | FindMainCamera

开发平台:Unity 2020.3.7f1c1

关键词:FindMainCamera

问题背景


  • ModelViewer 是开发者基于 UnityEngine 编写的相机控制组件。
  • ModelView.Update 中调度52次并触发3次GC.Collect。显然并不期望并尽可能避免 Update 造成的GC 问题。
  • 事实上 FindMainCamera 并不属于脚本内部直接调用所造成。而是通过 Unity API 间接调用造成。

追溯触发 FindMainCamera 来源


这似乎是 Camera.main 造成的。在 ModelView.Update 中引用 Main Camera 检测鼠标是否触碰在 UI 上时造成的。Camera.main 估计类似于 Camera.FindObjectWithTag("MainCamera").GetComponent<Camera>() 形式,每帧执行 FindMainCamera 方法。实际上,Main Camera 的查找仅一次就足够。

解决方式


使用全局变量存储 Main Camera 对象。避免高频下使用 Camera.Main 进行 Main Camera 引用。

相关推荐
一个小狼娃13 小时前
Android集成Unity避坑指南
android·游戏·unity
极客柒13 小时前
Unity 协程GC优化记录
java·unity·游戏引擎
黄思搏14 小时前
Unity SpriteRenderer 进度条 Shader 实现
unity·游戏引擎
猫屋小鱼丸15 小时前
手把手教你在unity中实现一个视觉小说系统(一)
unity
HahaGiver6661 天前
Unity与Android原生交互开发入门篇 - 打开Unity游戏的设置
android·unity·交互
@LYZY1 天前
Unity TextMeshPro 文本对齐方式详解
unity·游戏引擎·textmeshpro·tmp
在路上看风景1 天前
2.1 ShaderLab - 渲染状态
unity
地狱为王2 天前
Unity使用RVM实现实时人物视频抠像(无绿幕)
unity·游戏引擎·音视频
HahaGiver6662 天前
Unity与Android原生交互开发入门篇 - 打开Android的设置
android·java·unity·游戏引擎·android studio
野奔在山外的猫2 天前
【解决】解决方案内存在对应命名空间,但程序引用显示无该命名空间问题
unity