NullReferenceException

在Unity3D中获取鼠标坐标并转化为世界坐标时,使用:

using UnityEngine;
using System.Collections;

public class MeshScript : MonoBehaviour {
    
    Vector3 mouseScreenPos, mouseWorldPos;
    // Update is called once per frame
    void Update () 
    {    
        // for mouse
        mouseScreenPos = Input.mousePosition;
        print(mouseScreenPos);
        mouseScreenPos.z = 1.0f;
        mouseWorldPos = Camera.main.ScreenToWorldPoint(mouseScreenPos);
        print(mouseWorldPos);
    }
}

出现错误:NullReferenceException
UnityEngine.Camera.ScreenToWorldPoint (Vector3 position) (at C:/BuildAgent/work/14194e8ce88cdf47/Runtime/ExportGenerated/Editor/UnityEngineCamera.cs:267)
MeshScript.Update () (at Assets/MeshScript.cs:38)

原因:没有相机被设为主相机。

解决方法:将其中一个相机的Tag由Untagged改为MainCamera,问题解决。

原文地址:https://www.cnblogs.com/wenshanzh/p/2871497.html