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

相关推荐
jtymyxmz1 天前
《Unity Shader》12.5 Bloom 效果
unity·游戏引擎
jtymyxmz1 天前
《Unity Shader》12.6 运动模糊
unity·游戏引擎
jtymyxmz1 天前
《Unity Shader》12.4.2 实现
unity·游戏引擎
sindyra2 天前
Unity UGUI 之 Canvas Scaler
unity·游戏引擎
在路上看风景2 天前
2.Square Grid
unity
程序猿阿伟2 天前
《突破Unity热更新瓶颈:底层函数调用限制与生态适配秘籍》
unity·游戏引擎
在路上看风景2 天前
13. UGUI合批
unity
jtymyxmz2 天前
《Unity Shader》12.2调整屏幕的亮度、饱和度和对比度
unity·游戏引擎
AllBlue3 天前
unity嵌入安卓界面,如何显示状态
android·unity·游戏引擎
tealcwu3 天前
【Unity技巧】实现在Play时自动保存当前场景
java·unity·游戏引擎