我如何获得对象的访问权限,以便在Unity中更改其属性?

我在Unity编辑器中创建了一个名为“GUIText”的GUI文本对象,我想通过代码(我正在使用C#)来改变文本所说的内容。 如何访问GUIText1来更改其string属性?

我想能够写这样的代码:

GUIText1.Text = ""; 

一般来说,我不确定如何访问在编辑器中创建的任何types的对象(例如网格或光源)。 你如何在代码中访问它们?

我已经知道如何编写脚本并触发它们。

考虑到GUI文本是场景中的一个游戏对象的一个​​组件,你可以这样做:

在您想要进行更改的脚本中,添加一个types为GameObject的公共字段,如下所示:

 public GameObject someObject; 

确保脚本从MonoBehaviorinheritance; 您必须将脚本作为组件添加到您select的某个游戏对象。 例如,在某处创建一个空的gameobject,并将脚本添加到它。 如果你所做的一切都正确,你应该能够通过可视化编辑器设置对包含GUI文本组件的游戏对象的引用(只需点击包含具有公共GameObject字段的脚本的游戏对象)。

接下来,在你写的脚本的Start()方法中:

 GUIText guitext1 = someObject.GetComponent<GUIText>(); //Do something with guitext11 eg guitext1.Text = ""; 

或者,您可以使用GUIText引用而不是GameObject对象; 通过编辑器引用它应该是一样的,虽然通过这样做我上面写的方式也知道如何手动访问一个GameObject的特定组件。

万一你卡住了:

 class MyScript : MonoBehavior { public GameObject someObject; //You set this with the editor. private void Start() { GUIText txt = someObject.GetComponent<GUIText>(); txt.Text = ""; } }