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

相关推荐
4Forsee9 小时前
【增强现实】快速上手 Vuforia Unity Android AR 应用开发
android·unity·ar
两水先木示9 小时前
【Unity】对指定物体进行描边——模板测试法
unity·游戏引擎·shader·外描边
Miss_SQ10 小时前
实现Unity录音、百度云语音转文字
unity·语音识别
CreasyChan10 小时前
unity 对象池实测可用
unity·c#
weixin_4242946710 小时前
Unity项目的Artifacts文件夹过大怎么解决?
unity·游戏引擎
没事写写笔记18 小时前
Unity HDRP14.0.12 Volume 配置参数
unity
红黑色的圣西罗21 小时前
手游手动异形屏适配方案,类“明日方舟”
unity
Longyugxq2 天前
Untiy的Webgl端网页端视频播放,又不想直接mp4格式等格式的。
unity·音视频·webgl
avi91112 天前
Unity毛玻璃渲染模糊渲染Shader数学入门
unity·aigc·图形学·shader·hlsl
微光守望者2 天前
Unity小知识【1】:刚体(Rigidbody)与碰撞器(Collider)的区别,你真的清楚吗?
unity·游戏引擎