Unity 图片资源的适配

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

前言

最近小编做Unity项目时,发现在资源处理这方面和Android有所不同;例如:Android的资源文件夹res下会有着mipmap-mdpi,mipmap-hdpi,mipmap-xhdpi,mipmap-xxhdpi,mipmap-xxxhdpi这五个文件夹,这是因为我们一般在蓝湖UI设计图上下载的图片资源都是对应这五种分辨率的图片,而在Unity中,图片资源的分辨率的自适应却没有这个概念;不过Unity倒是有一个Canvas Scaler组件可以做自适应处理;

Android和Unity加载资源的区别

作为一个习惯写Android的人来说,能不能让自己封装一套Image分辨率的自适应脚本呢?当然可以了,我们可以利用Unity内置的资源加载函数来做,在Android中,资源基本都是存放在res文件夹中的,我们获取资源也是通过R.Layout来加载资源相对应的文件夹。

Android加载资源

Unity 图片资源的适配,unity,android

通过上图,大家可以看到Android中的图片资源放置在mipmap文件夹中的,五张图片的分辨率从小到大依次排列的,而minmap文件夹又放在res文件中的的,而我们在UI语句中想要加载图片资源时都是使用R.minmap.图片资源名来使用,如下图所示

Unity 图片资源的适配,unity,android

其实应该还要有 ldpi文件夹,这样就形成了低中高三种分辨率的图片文件夹;

屏幕dpi值 (图像每英寸长度内的像素点数);

按照dpi来算的话:

dpi范围 密度
0dpi ~ 120dpi ldpi
120dpi ~ 160dpi mdpi
160dpi ~ 240dpi hdpi
240dpi ~ 320dpi xhdpi
320dpi ~ 480dpi xxhdpi
480dpi ~ 640dpi           xxxhdpi

假如手机屏幕密度时xxhdpi,那么mipmap-xxhdpi文件夹下的图片就是最适合的图片。若图片放在其他mipmap中,图片被缩放。

系统自动去其他文件下找图片的顺序:高密度 -> 低密度

Android将实际的屏幕密度分为四个通用尺寸(low,medium,high,and extra high) 
一般情况下的普通屏幕:ldpi是120dpi,mdpi是160dpi,hdpi是240dpi,xhdpi是320dpi 
对于屏幕来说,dpi越大,屏幕的精细度越高,屏幕看起来就越清楚 

按照屏幕尺寸来算的话:

密度 建议尺寸
mipmap-mdpi 48*48
mipmap-hdpi 72*72
mipmap-xhdpi 96*96
mipmap-xxhdpi 144*144
mipmap-xxxhdpi 192*192


 

Unity加载资源

Unity 图片资源的适配,unity,android

好了,以上就是小编简单给大家带来的Android与Unity加载资源的不同方式,需要详细了解的话可以翻我其他的文章讲解

Unity实战演练

Unity 图片资源的适配,unity,android

ImageAdapter.cs

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

public class ImageAdapter : MonoBehaviour
{
    public Text text;
    public GameObject imageObject;

    //不同分辨率图片路径
    string path_hdpi = "Images/mipmap-hdpi/image_hdpi";
    string path_mdpi = "Images/mipmap-mdpi/image_mdpi";
    string path_xdpi = "Images/mipmap-xhdpi/image_xhdpi";
    string path_xxdpi = "Images/mipmap-xxhdpi/image_xxhdpi";
    string path_xxxdpi = "Images/mipmap-xxhdpi//image_xxxhdpi";

    // Start is called before the first frame update
    void Start()
    {
        Sprite image;
        //判断dpi,来确认适合哪种分辨率的图片资源
        if (Screen.dpi >= 120 && Screen.dpi < 160)
        {
            image = Resources.Load<Sprite>(path_mdpi);

            text.text = "当前屏幕每寸的像素点值: " + Screen.dpi + '\n'
                + "当前加载的图片为: " + path_mdpi;
        }
        else if (Screen.dpi >= 160 && Screen.dpi < 240)
        {
            image = Resources.Load<Sprite>(path_hdpi);

            text.text = "当前屏幕每寸的像素点值: " + Screen.dpi + '\n'
                + "当前加载的图片为: " + path_hdpi;
        }
        else if (Screen.dpi >= 240 && Screen.dpi < 320)
        {
            image = Resources.Load<Sprite>(path_xdpi);

            text.text = "当前屏幕每寸的像素点值: " + Screen.dpi + '\n'
                + "当前加载的图片为: " + path_xdpi;
        }
        else if (Screen.dpi >= 320 && Screen.dpi < 480)
        {
            image = Resources.Load<Sprite>(path_xxdpi);

            text.text = "当前屏幕每寸的像素点值: " + Screen.dpi + '\n'
                + "当前加载的图片为: " + path_xxdpi;
            Debug.Log(image.name);
        }
        else if (Screen.dpi >= 480 && Screen.dpi < 640)
        {
            image = Resources.Load<Sprite>(path_xxxdpi);

            text.text = "当前屏幕每寸的像素点值: " + Screen.dpi + '\n'
                + "当前加载的图片为: " + path_xxxdpi;
        }
        else
        {
            text.text = "当前屏幕每寸的像素点值: " + Screen.dpi;
        }

        //将读取到的图片资源加载到游戏物体上
        imageObject.GetComponent<Image>().sprite = Resources.Load<Sprite>(path_xxdpi);
    }
}

效果图:

Unity 图片资源的适配,unity,android

屏幕相关概念分享

分辨率 :
是指屏幕上有横竖各有多少个像素 


屏幕尺寸 :
指的是手机实际的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸,3.7英寸 
android将屏幕大小分为四个级别(small,normal,large,and extra large)


屏幕密度 :
每英寸像素数 

手机可以有相同的分辨率,但屏幕尺寸可以不相同


对于屏幕来说,dpi越大,屏幕的精细度越高,屏幕看起来就越清楚 文章来源地址https://www.toymoban.com/news/detail-676216.html

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

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

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

相关文章

  • android resoure资源图片颜色值错乱

    最近androidstudio开发,添加一些颜色值或者drawable资源文件时,运行app,颜色值或者图片对应不上,暂时找不到原因,望告知。 暂时解决方法:  

    2024年02月12日
    浏览(36)
  • python打包,图片资源打包

    1,安装pyinstaller pip install pyinstaller *,新配置的python环境,出现了两个报错 第一个通过修改配置文件解决 Invoke-Expression : 无法将参数绑定到参数“Command”,因为该参数为空字符串。 所在位置 C:Usersxxxminiconda3shellcondabinCond_invoke-expression : 所在位置 行:1 字符: 254 + ... engana

    2024年02月13日
    浏览(47)
  • Webpack5 处理图片资源

    过去在 Webpack4 时,我们处理图片资源通过 file-loader 和 url-loader 进行处理 现在 Webpack5 已经将两个 Loader 功能内置到 Webpack 里了,我们只需要简单配置即可处理图片资源 src/images/1.jpeg src/images/2.png src/images/3.gif src/less/index.less src/sass/index.sass src/styl/index.styl 打开 index.html 页面查看

    2024年02月13日
    浏览(42)
  • vue如何动态加载显示本地图片资源

    在实际开发中,根据某一个变量动态展示图片的情况有很多。实现方法分打包构建工具的差异而不同。 1、webpack的项目 require引入图片资源 2、vite的项目 new URL(url,base).href 疑问解答:为什么vite项目不可以用require? 原因在于,vite的模块化规范是ES Modules,所以vite项目在打包构建

    2024年02月22日
    浏览(55)
  • 如何在Qt项目中引入图片资源

    首先,在Qt项目里创建一个目录 icon ,然后将图片资源放 icon 目录中 在Qt creator中创建resource file 右键项目 myqtdesign Add New... Qt Qt Resource File 输入文件名 myimage ,并在 CMakeLists.txt 加入 myimage.qrc 并保存(control + s) 3. 添加前缀 /images 右键 myimage.qrc 文件 Add Prefix... ,结果如下图: 添

    2024年02月13日
    浏览(51)
  • uniapp选取本地资源(图片,视频,文件)

    从本地相册选择图片或使用相机拍照。 App端如需要更丰富的相机拍照API(如直接调用前置摄像头),参考plus.camera OBJECT 参数说明 参数名 类型 必填 说明 平台差异说明 count Number 否 最多可以选择的图片张数,默认9 见下方说明 sizeType ArrayString 否 original 原图,compressed 压缩图,

    2024年02月11日
    浏览(52)
  • Vite静态资源处理——动态引入图片

    服务时引入一个静态资源会返回解析后的公共路径: 导入既可以使用绝对公共路径(基于开发期间的项目根路径),也可以使用相对路径。 vite 生产构建后文件名会哈希,如图: import.meta.url 是一个 ESM 的原生功能,会暴露当前模块的 URL。将它与原生的 URL 构造器 组合使用,

    2024年02月10日
    浏览(44)
  • Qt5.15.2中加入图片资源

    以前用的Qt5.15.2之前的版本,QtCreator默认的工程文件是*.pro,现在用5.15.2创建工程默认的工程文件是CMameList.txt,当然在创建项目时,仍然可以使用pro工程文件用QtCreator打开CMakeList.txt 以前用习惯了pro文件,现在改成CMakeList很不习惯,现在我们在CMakeList.txt中加入资源文件 1.首先,

    2024年01月22日
    浏览(57)
  • flutter项目引入本地静态图片资源并展示

    想要在flutter中引入静态资源,需要配置pubspec.yaml,将本地的静态资源添加到assets下面: 然后在flutter引入这些静态资源:  就可以在app中看到这个图片了:  也可以使用网络图片:

    2024年02月05日
    浏览(61)
  • 【快速搞定Webpack5】处理图片资源(四)

    过去在 webpack4 中,我们处理图片资源通过file-loader和url-loader进行处理 现在 webpack5 已经将两个loader功能内置到webpack中了,我们只需要简单配置即可处理图片资源。 1、配置 新增37-38行配置 2、添加图片资源 src/images/1.jpg src/images/2.jpeg 3、使用图片资源 src/css/index.css src/less/index

    2024年02月22日
    浏览(53)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包