Files
HOILAI-Galgame-Framework/Assets/HGF/Scripts/ZoomImage.cs
张子健 ba01cb878e 可用了
2023-12-30 23:53:54 +08:00

43 lines
1.3 KiB
C#

using TetraCreations.Attributes;
using UnityEngine;
using UnityEngine.UI;
namespace Common.UI
{
/// <summary>
/// 图片按比例缩放
/// </summary>
public class ZoomImage : MonoBehaviour
{
private Image _Image;
private AspectRatioFitter _AspectRatioFitter;
private Sprite lastSprite;
private void Start ()
{
_Image = GetComponent<Image>();
_AspectRatioFitter = GetComponent<AspectRatioFitter>();
if (_AspectRatioFitter == null) _AspectRatioFitter = this.gameObject.AddComponent<AspectRatioFitter>();
_AspectRatioFitter.aspectMode = AspectRatioFitter.AspectMode.HeightControlsWidth;
lastSprite = _Image.sprite;
RedsizeImage();
}
private void Update ()
{
if (Application.isPlaying && lastSprite != _Image.sprite)
{
lastSprite = _Image.sprite;
RedsizeImage();
}
}
[Button(nameof(RedsizeImage), "重新设置比例")]
public void RedsizeImage ()
{
if (GetComponent<Image>().sprite == null) return;
_AspectRatioFitter.aspectRatio = _Image.sprite.texture.width / (float)_Image.sprite.texture.height;
}
}
}