我是Unity3D的新手,正在寻找一些基本信息。 我已经习惯了OO编程,但我不太清楚如何从脚本中访问对象。
我创建了一个对象,使其成为预制件(计划多次使用它),并且对象上有文本。 该文本使用文本网格。我正在使用C#。
我确定有一些简单的事情我没有接受。 只是无法理解如何将代码连接到对象,反之亦然。
更新 还要注意,我试图在开始时加载多个对象,如果这会对答案产生影响。
UPDATE2: 只是想解释一下在将单声道代码绑定到统一界面时我缺少的信息。
在Unity中:
创建任何对象并将其转换为预制件。 创建了第二个空游戏对象,将其放置在播放视图区域中的某个位置。 在Empty游戏对象上创建了一个脚本。
在单声道代码编辑器中:
创建了2个公共变量(C#)
public GameObject spawnObj;
public GameObject spawnPoint;
void Update () {
Instantiate (this.spawnObj, this.spawnPoint.transform.position, this.spawnPoint.transform.rotation);
}
回到Unity:
选择空游戏对象。 在脚本Component中,您应该看到2个变量。 将预制对象拖动到var spawnObj中。 将Empty游戏对象拖动到var spawnPoint。
我这是更新,不是为了智能,而是它产生了一个或两个或更多的立方体,从代码产生是我想要了解的全部。
答案 0 :(得分:3)
AD1:GameObject.Instantiate
:
var go=GameObject.Instantiate(prefab, Vector3.zero, Quaternion.Identity) as GameObject;
预制件是一种类似资产的GameObject,用作场景GameObjects的模板。
要使用预制件,您必须将GameObject拖动到项目窗口,并以两种方式之一在代码中引用它:
使用资源,var prefab=Resources.Load("my-prefab")
将加载项目文件Resources/my-prefab
。注意使用特殊的"资源"目录 - 它是一个必需的神奇名称。
使用引用,在MonoBehaviour
中添加public GameObject prefab
字段。然后在使用此类的GameObject上,您可以从项目窗口拖放预制件以创建对它的引用。然后,您可以在代码中使用prefab
字段。没有"资源"这里需要的目录。
首选选项2,因为所有资源都在最终二进制文件中,而正常资产在可能的情况下被修剪。
AD2:获取TextMesh
个组件并修改text
:
go.GetComponent<TextMesh>().text="new text";