使用字符串变量访问其他脚本中的公共变量

时间:2017-08-02 18:03:14

标签: c# unity3d

我希望能够使用另一个脚本中的变量从一个脚本访问变量。例如,如果我有一个包含此变量的脚本:

public bool Some_Name;

在我的另一个剧本中,我有这个:

private string nameOfThingToGet = "Some_Name";
...
GameObject.Find ("Player").GetComponent <FirstScript> () .nameOfThingToGet = false;

显然这不起作用,但我怎么能做这样的事呢?

2 个答案:

答案 0 :(得分:3)

在您走这条路之前,您是否考虑让FirstScript公开Dictionary<string, object>而不是使用字段?

这允许你做

GameObject.Find("Player").GetComponent<FirstScript>().dictionary[nameOfThin‌​gToGet] = false;

答案 1 :(得分:1)

您可以使用反射来实现它。

var obj = GameObject.Find ("Player").GetComponent<FirstScript>();
FieldInfo myFieldInfo = obj.GetField(nameOfTheThingToGet, 
         BindingFlags.Instance);

用于设置正确的标志 作为参考,您可以访问here