我有一个脚本实例化硬币,另一个脚本实例化硬币。因此,一旦玩家自己收集了硬币,它就应该消失并告诉第一个脚本实例化另一个脚本。我试过很多次,以跨单独的脚本访问布尔值,例如...
//script 1
public script2name scriptVar;
void start()
{
scriptVar.GetComponent<script2name>();
}
void func()
{
if (scriptVar.boole1 == true)
{ //create another coin
}
}
//script 2 (script2name)
public bool Boole1 = false;
void func()
{
// picks up coin
Boole1 = true;
}
我尝试过此操作,但是系统中没有任何响应,我再也没有收到硬币,它根本无法正常工作。
因此,我认为唯一可以真正在脚本之间统一传递的变量是整数。因此,您的脚本必须跟踪来自单独脚本的整数计数,而不是将其基于真或假值。这是如何解决硬币问题的方法...
在此示例中,拥有script2的GameObject在Find(“”)中是必需的。我们将在示例中使用“ GamNme”。
//script1
public script2name Var;
void start()
{
Var = GameObject.Find("GamNme").GetComponent<script2name>();
}
void func()
{
//picks up coin
Var.count = 1;
}
//script2
public int count = 0;
void func()
{
if (count == 1)
{
//instantiate new coin and reset the counter
count = 0;
}
}