Unity2D SpriteRenderer上显示文字

前言

Unity2D没有提供SpriteRenderer上显示文字的原生方案。经过笔者探索,有以下两种方式可供选择。
1,Canvas节点挂载方式
2,TextMesh方式

Canvas节点挂载方式

1,新建Canvas节点
Unity2D SpriteRenderer上显示文字_第1张图片
设置宽高为设计分辨率。
特别注意:该节点的Layer我设置了UI_3D

2,添加Text组件
在需要显示文字的地方,新建一个空节点bg,作为Text组件的父物体,设置bg的pos归零,后续可以通过调节bg的scale来控制Text的FontSize。
在bg下添加子物体Text。注意需要设置bg和Text的Layer和步骤1中提到的Canvas的Layer一致,否则不渲染。

TextMesh方式

通过3D Object——>3D Text的方式添加TextMesh。
设置Offset Z为-1,同时把SpriteText.cs脚本拖拽到TextMesh上。脚本内容如下。

public class SpriteText : MonoBehaviour
{
    void Start()
    {
        var parent = transform.parent;
        var parentRenderer = parent.GetComponent();
        var renderer = GetComponent();
        renderer.sortingLayerID = parentRenderer.sortingLayerID;
        renderer.sortingOrder = parentRenderer.sortingOrder;
    }
}

来源:https://answers.unity.com/questions/620747/render-text-on-sprite-prefab-2d-ios.html

你可能感兴趣的:(Unity3D,SpriteRenderer,Unity3D,Unity2D)