C#Unity - 尝试从另一个脚本访问变量

时间:2016-02-26 16:51:46

标签: c# unity3d

我目前正在尝试在一个脚本之间传递一个变量,并且之前发布的所有问题似乎都无济于事,如果有任何事情让这个问题比预期的更加混乱。

我的问题是,我的PlayerController脚本中有一个名为count的整数,而另一个名为BounceObject的脚本需要count变量,以便在if语句中进行比较。

这是我的播放器控制器脚本,缺少部分代码。

public int count;

void SetCountText()
{
    countText.text = "Score: " + count.ToString (); 
    if (count >= 12)
    {
        winText.text = "You have won!";
    }
}

这是我试图访问count in变量的脚本,名为BounceObject

public PlayerController script;
void Start()
 { 
    script = getComponent<PlayerController>();
 }

void Update()
 {

if (script.count >= 8)
{
    #Do Stuff here...
}

 }

我不确定我是否在代码中犯了错误。作为参考,BounceObject脚本只能在预制件中找到,然后我会导入到我的游戏中。 count的整数也将发生变化,因此在PlayerController中更改时需要在BounceObject脚本中进行更新。

非常感谢!

1 个答案:

答案 0 :(得分:2)

假设您的PlayerController位于与BounceObject脚本不同的对象上,则需要指定要从中获取组件的游戏对象。如果你给你的玩家对象一个只有你可以做到的标记:

public PlayerController script;
void Start() { 
    script = GameObject.FindWithTag("Player1").GetComponent<PlayerController>();
}

否则,在获取其PlayerController脚本之前,您需要使用不同的方法来获取玩家游戏对象。

我使用的参考文献:FindWithTagGetComponent