期待标识符错误?

时间:2015-03-19 00:37:09

标签: c# unity3d

我在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;   
        }
    }
}

1 个答案:

答案 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 命名空间,所以在引用该命名空间的类时不需要使用它。