【问题标题】:TextMesh pro Unity: instantiated text prefab wont change it's position?TextMesh pro Unity:实例化的文本预制件不会改变它的位置?
【发布时间】:2017-06-08 13:54:36
【问题描述】:

我正在开发一个 2D 游戏,并且我创建的文本预制件没有将自身定位在单击的游戏对象上(这是目标)。在生成 Canvas 后,我通过脚本将 Canvas 设置为预制件的父级,并且它不会改变位置。

    // creating hit text
    GameObject canvas = GameObject.Find("Canvas");
    GameObject hit = (GameObject)Instantiate(hitText, transform.position,Quaternion.identity);
    hit.transform.SetParent(canvas.transform, false);
    hit.transform.position = transform.position;

P.S:此示例代码使用 Unity 文本编辑器制作的文本。这是否意味着 TexhMesh Pro 不支持此功能?

【问题讨论】:

  • transform.position 指的是此代码附加到的对象的位置,而不是被点击的游戏对象。
  • 代码附加到被点击的对象@Draco18s
  • 那么需要更多信息。
  • @Draco18s 例如?如果我留下的注释没有引起您的注意:“此代码示例使用 Unity 文本编辑器制作的文本,这是否意味着 TexhMesh Pro 不支持此功能?”
  • 这没有任何意义,我在文档中看不到任何支持该断言的内容。

标签: c# unity3d text 2d instantiation


【解决方案1】:

对于可能遇到此问题的任何人,请理解我确保实例化文本是画布的子对象。问题是我的文本在开始时已被附加动画更改。上面的脚本工作正常,但动画正在改变它。 您可以通过将文本的父级设置为一个空的 GameObject 来轻松解决此问题,然后将其用作文本的容器,允许文本仅更改其相对于其父级的位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-28
    • 2020-03-27
    • 1970-01-01
    • 2016-11-04
    相关资源
    最近更新 更多