我的脚本附加到角色控制器。
我宣布,
public Camera camera;
在课堂上在我给出的更新功能中,
if(Input.GetMouseButtonDown(0)){
Ray ray = camera.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast (ray, out hit3, 400.0F)){
print(hit3.collider.gameObject.name);
}
}
但我收到错误
"UnassignedReferenceException:
The variable camera of 'characterScript' has not been assigned.
You probably need to assign the camera variable of the
characterScript script in the inspector."
帮助我找到一个好的解决方案。
先谢谢。
答案 0 :(得分:3)
将其拖放到UI中的变量中,或者在脚本中添加此位以在启动时自动执行此操作:
void Start()
{
camera = (Camera) GameObject.FindObjectOfType(typeof(Camera));
}
演员表可能是多余的。 此外,只有一台摄像机才能正常工作。
答案 1 :(得分:3)
您还可以使用Camera类的以下静态变量从任何地方访问摄像机:
Camera.current
我们正在渲染的相机。
Camera.main
第一个启用的相机标记为“MainCamera”。
Camera.allCameras
返回场景中所有已启用的摄像头。
无需查找,Camera类负责跟踪我们的实例:)
第h
杰罗姆
答案 2 :(得分:2)
你没有初始化你的相机。你必须通过unity3D的UI设置它。只需将相机拖放到公共参数中即可。