【解决】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 引用。

相关推荐
空中海1 小时前
第二篇:Unity中级阶段(核心开发能力)
unity·游戏引擎
DaLiangChen8 小时前
Unity 实用工具:动态绘制物体边界包围盒(支持屏幕固定线宽)
unity·游戏引擎
张老师带你学8 小时前
Unity 食物 农产品相关
科技·游戏·unity·游戏引擎·模型
mxwin8 小时前
Unity Custom Interpolators与半透明阴影的原理与实战
unity·游戏引擎·shader
晴夏。8 小时前
UE5第三人称模板实现及相关引擎源码分析
unity·ue5·游戏引擎·ue
天人合一peng13 小时前
Unity工程发布hololens需安装, MRTK安装
unity·游戏引擎·hololens
魔士于安15 小时前
Unity类似博物馆场景
前端·unity·游戏引擎·贴图·模型
小拉达不是臭老鼠15 小时前
Unity数据持久化_XML
学习·unity
RReality15 小时前
【Unity Shader URP】模板遮罩 / 传送门 实战教程
ui·unity·游戏引擎·图形渲染·材质
zdr尽职尽责2 天前
Untiy 处理Aseprite 资产 解决偏移问题
学习·unity·c#·游戏引擎