【问题标题】:Member 'Camera.main' cannot be accessed with an instance reference; qualify it with a Type name instead无法通过实例引用访问成员“Camera.main”;改为使用类型名称来限定它
【发布时间】:2020-05-26 08:48:56
【问题描述】:

这是我的代码行:

GetComponent<Camera>().main.transform.position.y = StaticCameraY;

这是我得到的错误,我不知道如何解决它:

无法通过实例引用访问成员“Camera.main”; 改为使用类型名称来限定它

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    像这样访问主摄像头:

    Camera.main.transform.position = new Vector3(Camera.main.transform.position, StaticCamera.y, Camera.main.transform.position.z);
    

    原因如下:
    - 当使用 GetComponent 在你当前的游戏对象上获取一个相机时,你必须像Camera cam = gameObject.GetComponent&lt;Camera&gt;();一样使用它,而无需将其称为 main。不过,您必须传递您在&lt;&gt; 中获得的组件类型。
    - 主摄像头可以通过 Camera.main 找到,不涉及 GetComponent。
    - 您不能设置 transform.position 的单个元素。您必须设置整个 Vector3。为此,我们传递当前的 transform.position.x 和 transform.position.z 并仅更新 y,因为这是您关心更改的那个。

    希望有所帮助。

    【讨论】:

      猜你喜欢
      • 2023-04-08
      • 1970-01-01
      • 2015-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多