如何在附加到预制UNITY 3D的脚本中引用bool

时间:2014-10-30 01:35:45

标签: c# reference boolean

我是新手C#编码员。

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

老核心问题:

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

UPDATE01:

我已经确定了我认为问题的核心是什么。我试图从预制件访问类fruitCheck,在场景中开始,但只有在随机倒计时时间结束时才会调用。 因此我相信bool变得无效,包括fruitCheck类中的一个简单的Debug.Log。有没有人对如何克服这个问题有任何建议? 我想保持倒数时间,以便每个项目之间的时间间隔是间隔/随机的。

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

BOOL INITIATE SCRIPT:

    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");
        }
    }
}

我想要访问BOOL的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();
        }
    }

}

1 个答案:

答案 0 :(得分:1)

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

我的问题解决了。请在下面找到我学到的知识以及我对它的理解。

因为我正在使用预制件,并且他们没有在场景中开始,所以我想要执行的很多东西都没有。我做了一些进一步的研究,发现了 AWAKE FUNCTIONS

AWAKE FUNCTIONS :加载脚本实例时会调用Awake。 (来源如下)

唤醒功能与启动功能(我将bool变量设置为在游戏开始时更改的位置)不同,因为它会在游戏加载时调用,不管场景中是否存在。< / p>

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

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

干杯。 nicbono。

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

启动功能来源:http://docs.unity3d.com/ScriptReference/MonoBehaviour.Start.html