我正在尝试禁用相机组件以在我的相机之间切换。但是当我尝试获取我的游戏对象的相机组件时,它返回null。
这是我的GameObject:

这就是我的代码崩溃的地方:
void respawn(){
cameraDead.transform.position = new Vector3(player.transform.position.x, cameraDead.transform.position.y, player.transform.position.z);
cameraDead.GetComponent<Camera>().enabled = true;//It crashes right here
camera.GetComponent<Camera>().enabled = false;
player.transform.SetPositionAndRotation(new Vector3(-27f, 0f, -8.35f), Quaternion.Euler(new Vector3(0,90,0)));
isDead = true;
}错误消息指出指针返回null。所以它找不到组件。提前谢谢。
发布于 2018-12-13 16:42:15
当组件被禁用或游戏对象处于非活动状态时,您无法使用GetComponent获取它。根据您的代码,似乎CameraDead的摄像头组件一开始是禁用的,然后您试图在启用它时获取它。
您可以通过缓存组件轻松地解决此问题。如下所示:
公共开始;公共摄像头;私有摄像头;私有摄像头;GameObject cameraDead(){ dead_cam = cameraDead.GetComponent();cam = camera.GetComponent();dead_cam.enabled = false;} //....dead_cam.enabled = true;cam.enabled = false;player.transform.SetPositionAndRotation(new Vector3(-27f,0f,-8.35f),Quaternion.Euler(new Vector3(0,90,0);isDead = true;}
https://stackoverflow.com/questions/53731791
复制相似问题