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

相关推荐
UX20173 小时前
Unity中的Color.HSVToRGB
unity·游戏引擎
TO_ZRG3 小时前
Unity PackageManager
unity·gitlab
jtymyxmz5 小时前
《Unity Shader》10.1.2 创建用于环境映射的立方体纹理
unity·游戏引擎
怣疯knight7 小时前
unity上传git需要上传哪些文件
git·unity
世洋Blog7 小时前
Unity开发微信小游戏-合理的规划使用YooAsset
unity·c#·微信小游戏
hashiqimiya7 小时前
unity配置外部编辑器rider
unity·编辑器·游戏引擎
jtymyxmz10 小时前
《Unity Shader》10.1.3 反射
unity·游戏引擎
avi91111 天前
发现一个宝藏Unity开源AVG框架,视觉小说的脚手架
unity·开源·框架·插件·tolua·avg
沉默金鱼2 天前
Unity实用技能-格式化format文字
ui·unity·游戏引擎
jyy_992 天前
通过网页地址打开unity的exe程序,并传参
unity