我是新手C#编码员。
尝试访问首次调用时bool
true
的{{1}}
第二个脚本将查看它是否应该启动另一个项目
如果bool
设置为false
,则会启动新项目;
如果bool
为true
,则第二个脚本将不会运行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();
}
}
}
答案 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