如何在一个统一项目中访问另一个脚本中的变量

问题描述 投票:-1回答:1

我有一个脚本实例化硬币,另一个脚本实例化硬币。因此,一旦玩家自己收集了硬币,它就应该消失并告诉第一个脚本实例化另一个脚本。我试过很多次,以跨单独的脚本访问布尔值,例如...

//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;
}

我尝试过此操作,但是系统中没有任何响应,我再也没有收到硬币,它根本无法正常工作。

c# unity3d boolean instantiation
1个回答
0
投票

因此,我认为唯一可以真正在脚本之间统一传递的变量是整数。因此,您的脚本必须跟踪来自单独脚本的整数计数,而不是将其基于真或假值。这是如何解决硬币问题的方法...

在此示例中,拥有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;
    }
   }
© www.soinside.com 2019 - 2024. All rights reserved.