我在Unity中将Javascript转换为C#,我收到了此错误。我不怎么解决它。我对Javascript或C#了解不多。
using UnityEngine;
using System.Collections;
public class CameraSwitch2 : MonoBehaviour {
public UnityEngine.Camera FirstCamera;
public UnityEngine.Camera SecondCamera;
void Update ()
{
if(Input.GetKeyDown("f"))
{
FirstCamera.GetComponent.<Camera>().enabled = false;
SecondCamera.GetComponent.<Camera>().enabled = true;
}
if(Input.GetKeyDown("r"))
{
FirstCamera.GetComponent.<Camera>().enabled = true;
SecondCamera.GetComponent.<Camera>().enabled = false;
}
}
}
答案 0 :(得分:0)
你做GetComponent的方式是错误的。
FirstCamera.GetComponent.<Camera>().enabled = true;
相反,你应该这样做
FirstCamera.GetComponent<Camera>().enabled = true;
在GetComponent之后没有任何点,而是与您想要获得的对象或类不一致。
"Unity GetComponent scripting"
以下是对代码的更正:
if(Input.GetKeyDown("f"))
{
FirstCamera.GetComponent<Camera>().enabled = false;
SecondCamera.GetComponent<Camera>().enabled = true;
}
if(Input.GetKeyDown("r"))
{
FirstCamera.GetComponent<Camera>().enabled = true;
SecondCamera.GetComponent<Camera>().enabled = false;
}
另外
public UnityEngine.Camera FirstCamera;
public UnityEngine.Camera SecondCamera;
在上述两个变量声明案例中,您不需要使用UnityEngine.Camera声明它们,而是可以直接将它们声明为
public Camera FirstCamera;
public Camera SecondCamera;
因为您已经在文件的最顶部定义了 UnityEngine 命名空间,所以在引用该命名空间的类时不需要使用它。