总体思路就是,得到文本框内单个文字宽高,然后根据文本框的宽度算出一行应该有多少文字,然后根据文本框内总的文本数量除以一行文字数量得到行数,最后通过行数加行间距乘以单个文字高度在设置给文本框就可以了!!!代码附上,自己研究。
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class AdaptScripts : MonoBehaviour
{
private RectTransform m_DialogueBase; //文本框父物体RectTransform
private RectTransform m_DialogueText; // 文本框RectTransform
private Text m_Text; //文本框
private TextGenerator m_TextGenerator; //用于生成渲染的文本
private TextGenerationSettings m_TextGenerationSettings; //用于存储TextGenerator的设置
private void Start()
{
#region 获取组件
m_DialogueBase = transform.GetComponent<RectTransform>();
m_DialogueText = transform.Find("Text").GetComponent<RectTransform>();
m_Text = m_DialogueText.GetComponent<Text>();
m_TextGenerator = m