gpt4 book ai didi

c# - Unity 2D 实例化带文本的预制件

转载 作者:行者123 更新时间:2023-11-30 16:11:11 25 4
gpt4 key购买 nike

我是 Unity3D 的新手,正在寻找一些基本信息。我习惯了 OO 编程,但我不太明白如何从脚本访问对象。

我创建了一个对象,将其设为预制件(计划多次使用它)并且对象上有文字。文本使用文本网格。我正在使用 C#。

  1. 如何通过代码、开始时的简单示例在 0,0 处实例化一个名为 Tile 的新预制对象?
  2. 如何访问对象的文本网格部分以更改文本?

我确定有一些简单的事情我没有接受。只是难以理解如何将代码连接到对象,反之亦然。

更新:还要注意,如果这对答案有影响,我会尝试在开始时加载多个对象。

更新 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 的游戏对象,用作场景游戏对象的模板。

要使用预制件,您必须将游戏对象拖到项目窗口,并通过以下两种方式之一在代码中引用它:

  1. 使用资源,var prefab=Resources.Load("my-prefab") 将加载项目文件 Resources/my-prefab。请注意特殊“Resources”目录的使用 - 这是一个必需的神奇名称。

  2. 使用引用,在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com