【解决】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 小时前
在Unity3d2021.3.35中实现MQTT异步客户端
mqtt·unity·异步
海海不瞌睡(捏捏王子)3 小时前
Unity YAML
unity·游戏引擎
海海不瞌睡(捏捏王子)5 小时前
Unity A*寻路算法
算法·unity
weixin_423995005 小时前
unity 虚拟数字人-接讯飞虚拟人
unity·游戏引擎
小贺儿开发6 小时前
Unity3D 家居视频遥控效果演示
unity·udp·人机交互·网络通信·winform·远程·photon
mxwin7 小时前
Unity URP 阴影映射 深度纹理、阴影采样与分辨率控制的深度解析
unity·游戏引擎·shader·着色器
amadeusCristina9 小时前
Unity中生命周期调用时机
unity·游戏引擎
C蔡博士1 天前
Unity2D物理系统-从入门到实战优化
unity·游戏引擎·rigidbody2d
mxwin1 天前
Unity Shader 顶点动画:在顶点着色器中实现风吹草动、河流波动、布料模拟
unity·游戏引擎·shader·着色器
DowneyJoy1 天前
【Unity3D补充知识点】常用数据结构分析-集合(List<T>)
数据结构·unity·c#·list