C# 如何将int变量引用到Unity中另一个游戏对象中的另一个脚本?
我想在另一个游戏对象上使用MainHero的健康变量。然而,我发现的所有答案只有在两个脚本绑定到一个对象时才相关。有没有办法让组件只传输一个变量?提前感谢。首先C# 如何将int变量引用到Unity中另一个游戏对象中的另一个脚本?,c#,unity3d,C#,Unity3d,我想在另一个游戏对象上使用MainHero的健康变量。然而,我发现的所有答案只有在两个脚本绑定到一个对象时才相关。有没有办法让组件只传输一个变量?提前感谢。首先 public class MainHero : MonoBehaviour { public int health; . . . } 第二 public class AnotherHero : MonoBehaviour { MainHero mainHero; int anotherHealth
public class MainHero : MonoBehaviour
{
public int health;
.
.
.
}
第二
public class AnotherHero : MonoBehaviour
{
MainHero mainHero;
int anotherHealth;
void Start()
{
mainHero = GameObject.FindGameObjectWithTag("YOUR MAINHERO OBJECT TAG").GetComponent<MainHero>();
anotherHealth = mainHero.health;
}
.
.
.
}
在层次结构中选择MainHero对象并检查Inspector窗口。
您将看到对象名称下的标记。
如上图所示,如果您的标记设置为未标记。
单击Untaged,您将在下拉列表底部看到AddTag。
单击它并添加您自己的标记,并在创建时设置标记
最后,将您在中创建的标记放入
("YOUR MAINHERO OBJECT TAG")
在unity文档中查找GetComponent您的heal变量应该是公共的。使用gencomonpont,您可以在gameobjects中找到类。您还可以使用FindgameObjecname在场景中查找游戏对象。不太明智,但做这项工作。此外,FindComponentOfType将在场景中查找您的类类型以访问其数据。如果您的字段是公共字段或您将其放在[SerializeField]上方,则可以通过将其他组件的引用拖动到编辑器中的字段中,将其附加到其他组件。希望helpsHello和感谢您的回复,我确实喜欢您的示例中显示的内容,但我在Unity NullReferenceException中遇到以下错误:对象引用未设置为对象的实例我已分配了标记,但它显示以下行正在创建错误。anotherHealth=mainHero.health;我已经检查过了,所有内容都写对了,代码本身没有显示错误。@WAYRT您是否已将您的主要英雄的健康设置为公共健康?应该行的,一切都是公开的。我确实在另一个英雄中编辑了主健康状况,然后在另一个第三个脚本中引用,但错误表明问题在于另一个英雄脚本。
("YOUR MAINHERO OBJECT TAG")