如何在附加到预制件 UNITY 3D 的脚本中引用布尔值

本文关键字:3D UNITY 脚本 布尔值 引用 | 更新日期: 2023-09-27 18:28:26

我是C#编码新手。

尝试访问首次调用时将启动truebool
第二个脚本将查找它以查看它是否应启动另一个项目。
如果bool设置为 false ,它将启动一个新项目;
如果bool true,第二个脚本将不会运行if语句。

老核心问题:

有人可以告诉我引用的声明/程序是什么吗?我正在努力将许多可用的教程和问答应用于我的问题。

UPDATE01:

我已经确定了我认为问题的核心是什么。我正在尝试从预制件访问类 fruitCheck,它不会在场景中开始,但仅在随机倒计时时间过后才会调用。正因为如此,我相信布尔值变得无效,包括 fruitCheck 类中的简单 Debug.Log。有人对我应该如何克服这个问题有任何建议吗?我想保留倒计时时间,以便每个项目之间的时间是间隔/随机的。

UPDATE02: 请参考下面我问题的解决方案。

布尔启动脚本:

    public class fruitCheck : MonoBehaviour {
    //Check to see if object is falling...
    public static bool objectFalling;
    // Update is called once per frame
    public void Start () 
    {
        objectFalling = true;
        //Debug does not appear in the Console
        Debug.Log("Object IS Falling");
    }
    void Update() 
    {
        //Check if fruit has come in contact with deadZone.
        //If fruit has come in contact with dead zone then objectFalling = false;
        if(objectFalling == false)
        {
            //Debug does not appear in the Console
            Debug.Log("Object IS Falling");
        }
    }
}

我想访问布尔值的 IF 语句:

public void Update () 
{
    //This Debug runs fine.
    Debug.Log("...check fruit...");
    if (fruitCheck.objectFalling == true)
    {
        timeLeftUntilSpawn = Time.time - startTime;
        if (timeLeftUntilSpawn >= secondsBetweenSpawn) 
        {
            startTime = Time.time - Random.Range(0.2f, 0.9f);
            //timeLeftUntilSpawn = Time.time - startTime;
            //timeLeftUntilSpawn = 0;
            Debug.Log ("IF STATEMENT SUCCESS: Spawn one here");
            SpawnRandomObject();
        }
    }
}

如何在附加到预制件 UNITY 3D 的脚本中引用布尔值

首先,我要感谢所有通读并花时间思考我的问题的人,因为它很复杂,描述不佳且难以概念化。

我用我的问题找到了解决方案。请在下面找到我学到的东西以及我如何理解它。

因为我使用的是预制件,而且它们不是在场景中开始的,所以我想执行的很多内容都不会开始。我做了一些进一步的研究,发现了AWAKE功能

唤醒函数:加载脚本实例时调用唤醒。(来源如下(

唤醒函数与开始函数(我在游戏开始时设置布尔变量以更改(不同,因为它将在游戏加载时调用,无论场景中是否有什么。

通过更改为唤醒函数,我能够调用布尔值 true,然后成功启动其余脚本并允许我的核心游戏机制工作。

再次感谢您的阅读。如果您有任何其他问题,请随时与我联系。

干杯。尼波诺。

唤醒功能源:http://docs.unity3d.com/ScriptReference/MonoBehaviour.Awake.html

启动函数源:http://docs.unity3d.com/ScriptReference/MonoBehaviour.Start.html