第一人称和第三人称之间的相机切换。显示错误

Camera switch between First and third person. Showing error

我正在尝试在第一人称和第三人称之间切换相机。这是代码:

[SerializeField]
private Camera ThirdPersonCam;
private KeyCode switchKey;

//Assingables
public Transform playerCam;
public Transform orientation;

private void Update()
{
    MyInput();
    Look();

    if (Input.GetKeyDown(switchKey))
    {
        playerCam.enabled = !playerCam.enabled;
        ThirdPersonCam.enabled = !ThirdPersonCam.enabled;
    }
}

但是,在这一行 playerCam.enabled = !playerCam.enabled; 中,它显示了这个错误:

'Transform' does not contain a definition for 'enabled' and no accessible extension method 'enabled' accepting a first argument of type 'Transform' could be found (are you missing a using directive or an assembly reference?

但是在它下面的一行中,它没有显示。我很困惑为什么会这样,enabledTransform 的定义。谁能帮我解决一下。

谢谢。

据我所知,文档中没有“启用”转换:https://docs.unity3d.com/ScriptReference/Transform.html 如果你想通过引用它们的转换来反转活动状态(又名启用),请使用:

playerCam.gameObject.SetActive(!playerCam.gameObject.activeSelf)

由于这有点令人费解,因此保留对游戏对象本身的引用而不是它们的变换通常是有意义的。

您已将 global/serializable playerCam 定义为转换类型,因此您不能 enable/disable 它们。 将类型更改为相机,应该没问题

[SerializeField]
private Camera ThirdPersonCam;
private KeyCode switchKey;

//Assingables
public Camera playerCam;
public Transform orientation;

正如它所说,Transform 没有定义 enabled。您应该将变量类型从 Transform 更改为 Camera,因为您正在尝试访问相机而不是位置。

所以不是这个,

private Transform playerCam;

改成这样;

private Camera playerCam;