【问题标题】:Expecting Identifier Error?期待标识符错误?
【发布时间】:2015-03-19 00:37:09
【问题描述】:

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

【问题讨论】:

  • 那是什么错误?它发生在哪条线上?请edit您的问题尽可能多地包含有关错误的信息。

标签: c# unity3d


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多