【问题标题】:set GameObject to Script's public variable pragmatically?实用地将 GameObject 设置为脚本的公共变量?
【发布时间】:2018-07-30 14:08:31
【问题描述】:

如果我得到一个值 1,我正在尝试在我的脚本中做出决定,然后运行特定的游戏对象,即(人口引擎资产的PopulationGenerator)。我的场景中有 3 个人口生成器,但我无法在代码中将它们中的任何一个分配给 PopulationGenerator 变量。

唯一的方法是从 Unity GUI 脚本的侧面菜单中拖放游戏对象。

这是代码:

public PopulationGenerator generate1;

generat1.totalToSpawn = Convert.ToInt32(number) - 5;

我可以在场景中设置一个人口生成器,例如

if (value == 1)
    generate1 = gameobject.name("generator1");
else if (value == 2)
    generate1 = gameobject.name("generator2");
...

是否有任何方法可以将任何类型的游戏对象设置为代码中的变量? 谢谢。

【问题讨论】:

  • generat1.totalToSpawn = Convert.ToInt32(number) - 5; 你能保证“数字”总是允许转换为整数吗?如果有人输入一个字符串会发生什么?使用 Int32.TryParse()
  • GameObject.Find(name)?虽然您的字段是 PopulationGenerator 类型,它是一个游戏对象的组件,但您也需要 GetComponent<PopulationGenerator>()
  • 你可以改为 `if (value
  • 自动输入的号码

标签: c# unity3d gameobject


【解决方案1】:

你可以这样做:

generate1 = GameObject.Find("nameOfGenerator").GetComponent<PopulationGenerator>();

【讨论】:

    猜你喜欢
    • 2014-07-21
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    • 2017-12-05
    • 2010-09-20
    • 2012-11-18
    • 2012-10-18
    • 1970-01-01
    相关资源
    最近更新 更多