C# 将GameObject设置为脚本';什么是公共变量?
我试图在脚本中做出决定,如果我得到一个值1,然后运行特定的游戏对象,该对象是(C# 将GameObject设置为脚本';什么是公共变量?,c#,unity3d,gameobject,C#,Unity3d,Gameobject,我试图在脚本中做出决定,如果我得到一个值1,然后运行特定的游戏对象,该对象是(PopulationGenerator人口引擎资产)。我的场景中有3个PopulationGenerator,但我无法在代码中将它们中的任何一个实际分配给PopulationGenerator变量 唯一的方法是从unity GUI中脚本的侧菜单拖放游戏对象 代码如下: public PopulationGenerator generate1; generat1.totalToSpawn = Convert.ToInt
PopulationGenerator
人口引擎资产)。我的场景中有3个PopulationGenerator,但我无法在代码中将它们中的任何一个实际分配给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");
...
是否有任何方法可以将任何类型的游戏对象设置为代码中的变量?
谢谢。您可以这样做:
generate1 = GameObject.Find("nameOfGenerator").GetComponent<PopulationGenerator>();
generate1=GameObject.Find(“generator的名称”).GetComponent();
generate1.totalToSpawn=Convert.ToInt32(数字)-5代码>你能保证“数字”总是允许转换成整数吗?如果有人输入字符串会发生什么?使用Int32.TryParse()GameObject.Find(name)
?虽然您的字段类型为PopulationGenerator
,它是游戏对象的一个组件,所以您也需要GetComponent()
。您可以改为`if(value