Unity2D SpriteRenderer上显示文字
前言
Unity2D没有提供SpriteRenderer上显示文字的原生方案。经过笔者探索,有以下两种方式可供选择。 1,Canvas节点挂载方式 2,TextMesh方式
Canvas节点挂载方式
1,新建Canvas节点 设置宽高为设计分辨率。 特别注意:该节点的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<Renderer>(); var renderer = GetComponent<Renderer>(); renderer.sortingLayerID = parentRenderer.sortingLayerID; renderer.sortingOrder = parentRenderer.sortingOrder; } }