【问题标题】:Referencing Other Scripts引用其他脚本
【发布时间】:2015-01-25 23:23:27
【问题描述】:

当我尝试从项目的另一个脚本中引用变量时,它给了我错误“运算符'>'不能应用于'MoveBlueCannon2'和'int'类型的操作数”。

这是我的代码:

void Update () 
{
    MoveBlueCannon2 BasicAmmoBlue = GetComponent<MoveBlueCannon2>();

    if (BasicAmmoBlue > 0) 
    {
        print ("1");
    }

想法?

【问题讨论】:

  • 如果您想查看 BasicAmmoBlue 是否不为空,请使用 if (BasicAmmoBlue != null)
  • 它仍然没有显示打印语句。我在脚本 MoveBlueCannon2 中有一个名为 BasicAmmoBlue 的公共静态浮点数。其他想法?

标签: if-statement reference unity3d


【解决方案1】:

BasicAmmoBlue 被分配给 MoveBlueCannon2 类型的对象。这意味着您不能对其执行数学运算,因为它不是数字类型(例如 int、float、double)。

如果您尝试从 MoveBlueCannone2 脚本中获取变量,则必须使用 BasicAmmoBlue.&lt;yourvariable&gt; 引用它。

为清楚起见进行编辑:

void Update () 
{
    MoveBlueCannon2 blueCannon = GetComponent<MoveBlueCannon2>();

    if (blueCannon.BassicAmmoBlue > 0) 
    {
        print ("1");
    }
}

您需要确保 BassicAmmoBlue 变量是公共的,或者编写一个能够返回 BassicAmmoBlue 值的公共方法。

【讨论】:

  • 这样做我得到的只是更多的错误。这是我的代码:`BasicAmmoBlue.; if (BasicAmmo != null) { print ("1");`
  • 对不起,我应该被清除,没有必要包括 位。我正在编辑我的答案,以便更好地向您展示。
  • 我不确定我是否理解这一点。我将尝试重申我想要做什么以及我的代码是如何设置的。我有一个名为 MoveBlueCannon2 的脚本。在该脚本中,我有一个名为 BasicAmmoBlue 的变量。如果这个变量大于 0,我想使用脚本 BlueAmmoCount(这个脚本的一个示例是我发布的第一段代码)来执行一个函数(这里是一个打印语句)。另外,您提到我必须输入BasicAmmoBlue.yourVariable 如果这仍然适用,我将在哪个脚本中声明此变量?
  • yourVariable 只是您将变量名称放在何处的示例。我将再次尝试通过对我的编辑进行编辑来向您展示如何做到这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-12
  • 1970-01-01
  • 1970-01-01
  • 2016-01-25
  • 2012-12-02
  • 1970-01-01
相关资源
最近更新 更多