Unity 2D使用文本实例化预制件

时间:2014-07-08 03:55:36

标签: c# unity3d

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

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

  1. 我如何通过代码,启动时的简单示例,在0,0实例化一个名为Tile的新预制对象?
  2. 如何访问对象的文本网格部分以更改文本?
  3. 我确定有一些简单的事情我没有接受。 只是无法理解如何将代码连接到对象,反之亦然。

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

    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。

    我这是更新,不是为了智能,而是它产生了一个或两个或更多的立方体,从代码产生是我想要了解的全部。

1 个答案:

答案 0 :(得分:3)

AD1:GameObject.Instantiate

var go=GameObject.Instantiate(prefab, Vector3.zero, Quaternion.Identity) as GameObject;

预制件是一种类似资产的GameObject,用作场景GameObjects的模板。

要使用预制件,您必须将GameObject拖动到项目窗口,并以两种方式之一在代码中引用它:

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

  2. 使用引用,在MonoBehaviour中添加public GameObject prefab字段。然后在使用此类的GameObject上,您可以从项目窗口拖放预制件以创建对它的引用。然后,您可以在代码中使用prefab字段。没有"资源"这里需要的目录。

  3. 首选选项2,因为所有资源都在最终二进制文件中,而正常资产在可能的情况下被修剪。


    AD2:获取TextMesh个组件并修改text

    go.GetComponent<TextMesh>().text="new text";