unity加载图片并自适应RawImage大小

这篇具有很好参考价值的文章主要介绍了unity加载图片并自适应RawImage大小。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

namespace JHL
{
    public class TestJHL : MonoBehaviour
    {
        public RawImage rawImage;
        //图片底版大小
        public float _FloatShowImageBiLi = 0;
        public float _FloatShowImageBiLiW = 0;
        public float _FloatShowImageBiLiH = 0;
        //加载图片大小
        public float _FloatLoadingTextureBiLi = 0;
        public float _FloatLoadingTextureBiLiW = 0;
        public float _FloatLoadingTextureBiLiH = 0;
        //测试数据
        public List<string> StringPathForTexture;
        public List<Button> _Button_Change;
        private Texture2D _Texture2DLoadingTemp;
        void Start()
        {
            InitializationTuPian();
        }
        #region 测试图片自动调整大小
        void InitializationTuPian()
        {
            //获取容器大小
            _FloatShowImageBiLiW = (float)rawImage.GetComponent<RectTransform>().rect.width;
            _FloatShowImageBiLiH = (float)rawImage.GetComponent<RectTransform>().rect.height;
            //计算图片宽高比
            _FloatShowImageBiLi = _FloatShowImageBiLiW / _FloatShowImageBiLiH;
            //注册按钮事件
            for (int i = 0; i < _Button_Change.Count; i++)
            {
                int tempI = i;
                _Button_Change[tempI].onClick.AddListener(() =>
                {
                    StartCoroutine(LoadRawImg( StringPathForTexture[tempI]));
                });
            }
        }
        IEnumerator LoadRawImg(string path)
        {
            WWW www = new WWW("file://" + Application.streamingAssetsPath + "/" + path);
            yield return www;
            //调整图片大小,在进行赋值
            _Texture2DLoadingTemp = new Texture2D(0, 0);
            _Texture2DLoadingTemp = www.texture;
            //使用原始图片和加载图片进行宽高比调整
            _FloatLoadingTextureBiLi = (float)_Texture2DLoadingTemp.width / (float)_Texture2DLoadingTemp.height;
            _FloatLoadingTextureBiLiW = _Texture2DLoadingTemp.width;
            _FloatLoadingTextureBiLiH = _Texture2DLoadingTemp.height;
            //设置宽和高
            rawImage.GetComponent<RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, _Texture2DLoadingTemp.width);
            rawImage.GetComponent<RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, _Texture2DLoadingTemp.height);
            //根据大小设置比例
            float tempSizeScale = 1;
            if(_FloatShowImageBiLi>= _FloatLoadingTextureBiLi)
            {
                //根据宽度修改
                tempSizeScale = _FloatShowImageBiLiH / _FloatLoadingTextureBiLiH;
            }
            else
            {
                //根据高度进行修改
                tempSizeScale = _FloatShowImageBiLiW / _FloatLoadingTextureBiLiW;
            }
            rawImage.texture = _Texture2DLoadingTemp;
            rawImage.GetComponent<RectTransform>().localScale = new Vector3(tempSizeScale, tempSizeScale, tempSizeScale);
        }
        #endregion
    }//END CLASS
}

unity 图片自适应,unity,游戏引擎

unity 图片自适应,unity,游戏引擎

unity 图片自适应,unity,游戏引擎

 文章来源地址https://www.toymoban.com/news/detail-739080.html

 

 

到了这里,关于unity加载图片并自适应RawImage大小的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包