第一人称和第三人称之间的相机切换。显示错误
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?
但是在它下面的一行中,它没有显示。我很困惑为什么会这样,enabled
是 Transform
的定义。谁能帮我解决一下。
谢谢。
据我所知,文档中没有“启用”转换: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;
我正在尝试在第一人称和第三人称之间切换相机。这是代码:
[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?
但是在它下面的一行中,它没有显示。我很困惑为什么会这样,enabled
是 Transform
的定义。谁能帮我解决一下。
谢谢。
据我所知,文档中没有“启用”转换: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;