【问题标题】:GetComponent returning 0 in Unity Game EngineGetComponent 在 Unity 游戏引擎中返回 0
【发布时间】:2015-01-13 02:32:52
【问题描述】:

我在从另一个脚本中获取变量时遇到了统一问题。我在 c# 中工作。 在这种情况下,我将播放器的健康状况传递给 GUI 脚本,但变量只返回 0。我试图通过搜索类似的问题来理解,但我无法弄清楚。谢谢! /PixzleOne

在单行为部分的播放器脚本中如何设置生命值:

public int health = 100;

我如何尝试在 GUI 脚本中获取健康状况:

int playerHealth;
public GameObject player;
void Update () {
    playerHealth = player.GetComponent<playerScript>().health;
    print (playerHealth); //Only for me to see if it returns anything.
}

【问题讨论】:

  • 检查器中该对象的变量是否已更改?检查器值将覆盖脚本定义的值。
  • 是的!非常感谢!把它写成答案,我会标记它。

标签: unity3d unityscript


【解决方案1】:

您可能在检查器中更改了对象的值。检查器值将覆盖脚本定义的值。

需要注意的重要一点 - 如果您之前声明了 public 变量(也称为检查器变量)而没有像这样的默认值:

public int myValue;

然后用脚本中的值更新它:

public int myValue = 1;

检查员不会捡起零钱。您必须自己在检查器中更改它。我记得当我第一次开始使用 Unity 时,这让我陷入了困境。

如有疑问,请检查检查员。

【讨论】:

    猜你喜欢
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    • 2020-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    相关资源
    最近更新 更多