(三)unity优化方案:小工具的制作——查询unity指定目录下的所有图片资源并取消掉mipmap选项的勾选

本文介绍了如何制作一个Unity小工具,用于批量取消工程中UI图片资源的mipmap设置,以节省内存。通过在Editor目录下运行脚本,可以一键处理所有指定类型的图片资源,并强调了不保存会丢失设置的问题。此外,脚本还包含了查找不符合2的n次方尺寸的图片的功能,适合需要进行UI资源优化的开发者。
摘要由CSDN通过智能技术生成

今天给大家提供一个自动去掉图片mipmap勾选的小工具的制作方法。

大家对Lod应该都有所了解,其原理是根据摄像机和模型之间不同距离(准确地讲,应该是模型所占摄像机视口的比例,距离越远比例越小,反之越大)而采用不同精细度(网格的顶点数和三角形数量不一样)的网格mesh,距离越远采用精细度越低的网格(即顶点数和三角形数越少的网格),以提高渲染效率。mipmap有些像lod,不同的是,它在贴图上面动了手脚,根据不同距离采用不同精细度(贴图的像素不一样)的贴图。

应用lod和mipmap都可以不同程度上提高渲染效率,但是由于都需要在内存里面放着多个不同精细度的副本,所以,代价是需要消耗更多的内存。

对于UI贴图来说,我们不必应用mipmap,因为一般的UI都是“平铺”在正交摄像机视口的,和摄像机木有距离这一概念,所以我们大可以把UI贴图的mipmap选项去掉,以节省内存。默认情况下导入的贴图是开启mipmap选项的,如果手动一个一个改的话,必然蛋疼,那么,就写脚本批量改吧。

我们优化就是从减少DrawCall开始的,减少DrawCall需要使用批处理技术开始的。mipmap针对的是纹理贴图,大白话就是,一个模型身上会有贴图,当我们对这个贴图使用了MipMap技术之后,那么在游戏运行中这个模型的贴图会根据摄像机距离模型的远近而调整不同的不同质量的贴图显示。

当我们给一个模型贴了一个贴图,当我们没有对这个贴图使用MipMap技术的时候,无论我们摄像机距离模型的位置在哪,这张贴图永远都是显示一样的,这样是完全没有必要的,我们使用这个技术就是为了让当摄像机比较远的时候,你用在精细的贴图我们玩家也看不见,而且还浪费资源,提高了性能瓶颈。

使用MipMap技术之后,会对这个贴图生成八张精度质量不同的贴图,所以内存占用变大了。所以关于这个技术是否使用,根据你的项目而定,什么都是有利有弊的。

mipmap介绍完了,接下来先看代码:

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using UnityEditor;

public class FindAllTexture {

    [MenuItem("CunstomFunction/CancelUIMipMap")]
    static void GetTexture()
    {
        List<string> allTex
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值