【发布时间】:2021-08-25 19:16:16
【问题描述】:
我试图在按下 LeftMouseButton 时在鼠标位置创建一个 GameObject 实例,我试图将其转换为世界位置,但出现错误:无法访问成员“Camera.main.current”带有实例引用;改为使用类型名称来限定它
public GameObject tower;
public Camera sceneCamera;
Vector3 objectP;
void Update ()
{
sceneCamera = Camera.main;
if (sceneCamera!= null)
{
Vector3 mousePos = Input.mousePosition;
mousePos.z = 2.0f;
Vector3 objectP = Camera.main.current.ScreenToWorldPoint(mousePos);
}
if (Input.GetButtonDown("Fire1"))
{
Instantiate(tower,objectP, Quaternion.identity);
}
}
}
【问题讨论】:
-
Camera.current是对当前相机的静态引用。而是使用Camera.main,它是主摄像头的实例。您收到错误是因为您尝试访问 Camera 类型的静态属性,而无法使用相机实例访问该属性。 Camera.current 与 Camera.main -
通过
Camera.maindocumentation 和ScreenToWorldPoint()documentation:Camera.main.current.ScreenToWorldPoint(mousePos)应该是Camera.main.ScreenToWorldPoint(mousePos)。