首页 > 解决方案 > Unity3D:访问静态对象 GameObject

问题描述

我正在尝试制作塔防游戏。它是 3D,但主要是从上方(2D)观看。但是如果我右键单击鼠标,相机可以使用 WASD 键进行缩放和漫游。这行得通。

但是,在比赛场地旁边,我有一个侧边栏,我可以在其中选择要建造的塔楼等等。但是在缩放/漫游时侧边栏变得无用,所以我想隐藏它。

我试图从相机脚本中做到这一点,所以我在侧边栏添加了一个脚本组件以使其成为静态(可从 anderswo 访问):

using UnityEngine;
public class SideBar : MonoBehaviour
{
    public static SideBar Instance;
    void OnEnable() { Instance = this; }
}

在相机控制器脚本中,我尝试以下隐藏侧边栏(以及里面的所有内容):

SideBar.Instance.GameObject.SetActive(false);

但这不会编译:CS1061:“SideBar”不包含“GameObject”的定义

标签: unity3dsingletongameobject

解决方案


GameObject是类的名字,实际实例是用小写的gameObject引用的,所以改一下:

SideBar.Instance.GameObject.SetActive(false);

SideBar.Instance.gameObject.SetActive(false);

你应该没事


推荐阅读