2

我的脚本附加到角色控制器。

我宣布,

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."

帮我一个好的解决方案。

提前致谢。

4

3 回答 3

3

将其拖放到 UI 中的变量中,或在脚本中添加此位以在启动时自动执行此操作:

void Start()
{ 
    camera = (Camera) GameObject.FindObjectOfType(typeof(Camera));
}

演员表可能是多余的。此外,仅当您只有一台相机时才能正常工作。

于 2013-02-14T11:59:54.557 回答
3

您还可以使用 Camera 类的以下静态变量从任何地方访问相机:

Camera.current我们当前正在渲染的相机。

Camera.main第一个启用的相机标记为“MainCamera”。

Camera.allCameras返回场景中所有启用的摄像机。

无需寻找它,Camera 类负责为我们跟踪其实例 :)

hth。

杰罗姆

于 2013-02-15T11:48:10.310 回答
2

你没有初始化你的相机。您必须通过 unity3D 的 UI 进行设置。只需将相机拖放到公共参数即可。

于 2013-02-14T11:52:45.267 回答