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

相关推荐
mxwin24 分钟前
Unity Shader 深度写入与关闭ZWrite Off · 半透明排序 · 粒子穿插
unity·游戏引擎·shader
张老师带你学2 小时前
宇宙飞船完整Unity项目
科技·游戏·unity·游戏引擎·模型
mxwin2 小时前
Unity URP 下的流体模拟 深入解析 Navier-Stokes 方程与浅水方程的数学原理
unity·游戏引擎
mxwin6 小时前
Unity Shader 深度重建世界坐标
unity·游戏引擎·shader
雪儿waii6 小时前
Unity 中继承(父类子类)用法详解
unity·游戏引擎
总写bug的程序员7 小时前
用 AI 蒸馏球员的思维操作系统:qiuyuan-skill 技术解析
人工智能·unity·游戏引擎
mxwin10 小时前
Unity Shader 预乘 Alpha 完全指南 解决半透明纹理边缘黑边问题,让你的 UI 渲染更干净
unity·游戏引擎
mxwin10 小时前
Unity URP 软粒子(Soft Particles)完全指南
unity·游戏引擎·shader
mxwin10 小时前
Unity Shader 深度偏移Depth Bias / Offset 完全指南
unity·游戏引擎·shader
星河耀银海11 小时前
Unity基础:UI组件详解:Button按钮的点击事件绑定
ui·unity·lucene