`

Camera.main NullReferenceException, Camera.main performance

阅读更多

At run time, Unity generates an error at the line: Camera.main. Found that "Camera.main" is NULL.

The error message is: NullReferenceException: Object reference not set to an instance of an object...

 

Please note that only have 1 camera for the whole game project.

"Main Camera" is already enabled and tagged as "Main Camera" automatically by Unity.

 

If it still thinks that "Camera.Main" is null, You can use this:

"GameObject.Find("NameOfCameraGameObject").GetComponent();"

 

The first enabled camera tagged "MainCamera" (Read Only).

 

Camera.main is Slow

Camera.main takes more time to execute than you might expect. If you use it many times per game loop, you will be wasting time unnecessarily.

You should store a reference to each of your Cameras once in the lifetime of that Camera, and then use that stored reference in the rest of the code. For example:

// Initialization code for scene

Camera mainCamera = Camera.main;

// Game code, executed once per frame or more

Vector3 pos = mainCamera.transform.position;

 

Camera.main returns the first Camera in the scene tagged "MainCamera", so it may be slower if you have additional Cameras that are tagged differently. Even for a single Camera, the tag checking means it will always be slower than a direct reference.

 

The primary Camera in the scene. Returns null if there is no such camera in the scene. This property uses FindGameObjectsWithTag internally and doesn't cache the result. It is advised to cache the return value of Camera.main if it is used multiple times per frame.

分享到:
评论

相关推荐

    未将对象引用设置到对象的实例 (System.NullReferenceException)

    下面基础的解释一下这错误: 1:本质上的错误: 代码如下: object a;//a是Null对象 protected void Page_Load(object sender, EventArgs e) { a.ToString();//调用一个Null对象的方法 } 当然啦!...

    System.NullReferenceException(解决方案).md

    System.NullReferenceException(解决方案).md

    Playmaker 1.6.1

    Fixed NullReferenceException with disabled FSMs and trigger/collision events. Fixed auto framing of Start State when playing. Fixed looping of animation actions derived from AnimateFsmAction. E.g. ...

    SourceTree 1.8.1(for Windows, 带license文件)

    SourceTree for Windows 1.8.1——当前的最新版,for Mac的已经到2.2了。 提示:若出现“ ssh-agent ... System.NullReferenceException”异常,请将Git升级到2.6试试(这是此版本的一个bug,官方正在修复)

    weifenluo.winformsui.docking 2.9(最新源码&例子)

    5. Fixed NullReferenceException when setting DockPanel.CloseButton while the content is hidden. Fixed issue that prevented close button from being show when made visible programatically. 6. When ...

    SourceTree Windows版 v2.0.7.zip

    Windows版本的SourceTree ,这个是当前最新版本。SourceTree这个工具是许多人推荐的,因为... System.NullReferenceException”异常,请将Git升级到2.6版后再试一试。 出现此问题是此版本的一个bug,官方正在修复中。

    修复: NullReferenceException 发生异常时运行基于.NET Framework 4.0 的 WPF 应用程序包含在嵌套模板中的事件

    请考虑以下情形: 您可以与 Microsoft.NET Framework 4.0 基于 Windows Presentation Foundation (WPF) ...在这种情况下, NullReferenceException异常发生在IStyleConnector.Connect方法中,然后 WPF 应用程序崩溃。

    未将对象引用设置到对象的实例问题原因

    在.NET开发过程中,特别是使用ASP.NET进行Web应用程序开发时,开发者可能会遇到一个常见的异常——`System.NullReferenceException`。这一异常通常意味着试图访问一个未被正确实例化的对象。下面将详细探讨这种异常...

    asp.net山友缘登山队网站

    【ASP.NET技术详解】 ASP.NET是由微软公司推出的用于构建Web应用程序的框架,它基于.NET Framework,为开发者提供了强大而高效的应用程序开发环境。在“asp.net山友缘登山队网站”项目中,ASP.NET被用来实现一个以...

    vb.net中把datagridview的数据保存到excle

    在VB.NET编程环境中,将DataGridView的数据保存到Excel是一种常见的需求,尤其在数据处理和报告生成时。这个过程可以通过多种方式实现,通常是通过使用自动化对象(如Microsoft.Office.Interop.Excel)或者第三方库...

    c# DataGridView 导出数据到sql中出现错误“未将对象引用设置到对象实例中”

    DataGridView 导出数据到 SQL 中出现错误“未将对象引用设置到对象实例中” 在 C# 中,DataGridView 控件广泛应用于数据展示和编辑,但是在导出数据到 SQL 中时,常常会出现“未将对象引用设置到对象实例中”的错误...

    mysql8.0.20下载安装及遇到的问题(图文详解)

    MySQL 8.0.20 是一款流行的开源关系型数据库管理系统,其稳定性和性能得到了广泛认可。本教程将详述如何在Windows操作系统上下载并安装MySQL 8.0.20,以及解决安装过程中可能遇到的问题。 ...值得注意的是,下载的文件...

    BobBuilder_app

    Main page list updates are infrequent and hence the locking of the main page list structure does not impact performance. The above make the MGIndex a really good candidate for parallel updates. The ...

    AnkhSVN2019.vsix

    Visual Studio 2019能用的AnkhSVN插件。 不是基于2015那个版本改版本号,而是新的代码分支:... 已解决提交时报错“System.NullReferenceException: 未将对象引用设置到对象的实例”的问题。

    ExceptionFactory:提供一系列用于在.NET中创建异常的工厂方法

    ExceptionFactory.ThrowExceptionIf<NullReferenceException>(condition == null, "Condition must not be null!"); 上面的ThrowExceptionIf方法已重命名为ThrowIf ExceptionFactory.ThrowIf...

    SubSonic3.0.0.4.1源码包,已修复了一些Bug

    1、Structs.tt模版生成时,没有给PropertyName属性赋值引起的空指针异常(System.NullReferenceException异常) 2、使用SubSonic.Query.Select和SubSonic.Query.SqlQuery查询时,设置了Top属性后,产生的“未处理...

    win10 git闪退问题完美解决

    在git bash中输入git init 提示错误信息: fatal: open /dev/null or dup failed: No such file or directory的解决办法: 将C:\Windows\System32\drivers目录下的null.sys更换为这个下载的null.sys文件,重启电脑...

    c#常见错误处理的几种方法

    例如,尝试访问空对象的属性时,会引发 NullReferenceException。 28. OutOfMemoryException OutOfMemoryException 发生在没有足够的内存继续执行程序时。例如,尝试分配过多的内存时,会引发 ...

    C#6.0语言入门-微软.pdf_Csharp6.0中文手册_

    5. **异步Main方法**:从C# 7.0开始,但与C# 6.0紧密相关,`async`关键字可用于`Main`方法,允许程序入口点异步执行,这对于启动时进行I/O操作的程序非常有用。 6. **空合并运算符**:`??`运算符用于为可能为null的...

Global site tag (gtag.js) - Google Analytics