1、首先我们要实现动态背景跟随的text。
有两种方案:1、一个是先创建一个Text A再在他的子节点创建一个背景Image A(设置Anchors对准父物体四角并铺满),和TextB。TextA添加一个content size fitter组件,并设置horizontal fit 为preferred size。每次添加文字的时候TextA和TextB同时添加。这样显示的文字由TextB来负责。控制背景大小由TextA来负责。
2、创建一个背景Image 添加content size fitter组件,并且添加 Horizontal Layout Group组件。content...组件设置 horizontal fit 为preferred size,HorizontalLayoutGroup组件的ControlChildSize width和height都勾选。这样就可以
因为第二种方法更简洁。我会选择第二种。
2、实现限制Text最大长度,让他达到之后可以自动换行
都知道一般情况Text设置好了长度。只要是Text的Horizontal Overflow设置成Wrap,里面添加文字的时候会自动换行。但是一旦添加了content size fitter组件后就会发现它失效了。因为长度在随着文字自动增加。那么如何才能实现背景随文字自动增加一旦达到预设长度就不再增加自动换行呢。需要在脚本上添加一个代码。
if (txtChat.preferredWidth>=467)
{
txtChat.transform.parent.GetComponent<ContentSizeFitter>().enabled = false;
float y = txtChat.rectTransform.parent.GetComponent<RectTr