我是 Unity3D 的新手,正在寻找一些基本信息。 我习惯了 OO 编程,但我不太明白如何从脚本访问对象。
我创建了一个对象,将其设为预制件(计划多次使用它)并且对象上有文字。 文本使用文本网格。我正在使用 C#。
- 如何通过代码、开始时的简单示例在 0,0 处实例化一个名为 Tile 的新预制对象?
- 如何访问对象的文本网格部分以更改文本?
我确定有一些简单的事情我没有接受。 只是难以理解如何将代码连接到对象,反之亦然。
更新: 还要注意,如果这对答案有影响,我会尝试在开始时加载多个对象。
更新 2: 只是想多解释一下在将单声道代码绑定(bind)到统一界面时我遗漏了什么信息。
在 Unity 中:
创建任何对象并将其变成预制件。 创建第二个空游戏对象,将其放置在播放 View 区域的某个位置。 在空游戏对象上创建脚本。
在 Mono 代码编辑器中:
创建了 2 个公共(public)变量 (C#)
public GameObject spawnObj;
public GameObject spawnPoint;
void Update () {
Instantiate (this.spawnObj, this.spawnPoint.transform.position, this.spawnPoint.transform.rotation);
}
回到 Unity:
选择空游戏对象。 在脚本组件中,您应该看到 2 个变量。 将您的预制对象拖到 var spawnObj 中。 将 Empty 游戏对象拖到 var spawnPoint 中。
我这样做是为了更新,不是很聪明,但它产生了一个或两个或更多立方体,我想了解的是从代码产生。
最佳答案
AD1:它是GameObject.Instantiate
:
var go=GameObject.Instantiate(prefab, Vector3.zero, Quaternion.Identity) as GameObject;
预制件是一种类似 Assets 的游戏对象,用作场景游戏对象的模板。
要使用预制件,您必须将游戏对象拖到项目窗口,并通过以下两种方式之一在代码中引用它:
使用资源,
var prefab=Resources.Load("my-prefab")
将加载项目文件Resources/my-prefab
。请注意特殊“Resources”目录的使用 - 这是一个必需的神奇名称。使用引用,在
MonoBehaviour
中添加一个public GameObject prefab
字段。然后在使用此类的游戏对象上,您可以从项目窗口中拖放您的预制件以创建对它的引用。然后,您可以在代码中使用prefab
字段。这里不需要“资源”目录。
首选选项 2,因为所有资源都在最终的二进制文件中,而普通 Assets 会在可能的情况下被修剪。
AD2:获取TextMesh
组件并修改text
:
go.GetComponent<TextMesh>().text="new text";
关于c# - Unity 2D 实例化带文本的预制件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24623424/