从Unity中的另一个脚本访问公共布尔

时间:2019-01-28 19:52:57

标签: unity3d

我希望从另一个脚本中触发LevelManager脚本中的公共布尔设置。

因此,当脚本B发生问题时,脚本A中的布尔值将变为true。

下面是2个脚本,其中levelRestart.cs是触发器,当玩家点击时,它需要访问LevelManager脚本中的公共布尔,并说startGame是正确的。

有人可以帮忙吗?

LevelManager.cs

public bool startGame = false;

void Update ()
    {

        if (startGame == true)
        {
            SpawnKonyaku();
            startGame = false;
        }
    }

LevelRestart.cs

void OnTriggerEnter2D(Collider2D col)
    {
        if (col.gameObject.tag == "Player")
        {            
            levelManager.startGame = false; //<- This is where, i need help    
        }
    }

RestartLevel脚本触发公共布尔startGame为真

2 个答案:

答案 0 :(得分:0)

好吧,我自己弄清楚了,我要在这里写下答案,以补充其他许多脚本问题。

我添加了这些变量以从脚本A中提取

public GameObject _LevelManager;
private LevelManager script;`

比我添加的“虚空开始”要多

void Start ()
{
    script = _LevelManager.GetComponent<LevelManager>();
}

当我运行Triggerenter方法时,它准确地称为bool

public void OnTriggerEnter2D(Collider2D col)
{
    if (col.gameObject.tag == "Player")
    {            
        script.startGame = true;         
    }
}

答案 1 :(得分:0)

您可以通过将其保持为静态(即公共静态bool startGame)来触发该bool startGame。这样您就可以直接使用LevelManager触发。