using UnityEngine;
using UnityEngine.UI;
public class ImageTextSelfAdaption : MonoBehaviour
{
public Image m_aImage;//图片
public Text m_aText;//文字
float m_aImageWidth;//改变之前的图片宽度
float m_aTextWidth;//改变之前的文字宽度
float time;//改变时间隔time秒调整位置
private void Start()
{
time = Time.deltaTime;//初始化间隔时间
m_aImageWidth = m_aImage.rectTransform.rect.width;//初始化图片宽度
Reresh();//倘若一开始位置不标准 这里可以修正
}
public void SetData(Sprite aSprite, float fValue)
{
m_aImage.sprite = aSprite;
m_aText.text = fValue.ToString();
Invoke("Reresh", time);//这里是因为修改的时候会延迟一帧
}
public void Reresh()
{
if (m_aTextWidth != m_aText.rectTransform.rect.width
|| m_aImageWidth != m_aImage.rectTransform.rect.width)
{
if(m_aImageWidth != m_aImage.rectTransform.rect.width)
m_aImageWidth = m_aImage.rectTransform.rect.width;
if (m_aTextWidth != m_aText.rectTransform.rect.width)
m_aTextWidth = m_aText.rectTransform.rect.width;
m_aImage.rectTransform.anchoredPosition = new Vector2(-m_aTextWidth / 2,
m_aImage.rectTransform.anchoredPosition.y);//在左边的用负号
m_aText.rectTransform.anchoredPosition = new Vector2(m_aImageWidth / 2,
m_aText.rectTransform.anchoredPosition.y);
}
}
}
Unity_图片与文字宽度变化时整体居中
最新推荐文章于 2022-02-13 15:42:02 发布