返回顶部
首页 > 资讯 > 后端开发 > Python >Unity3D设置纹理格式
  • 674
分享到

Unity3D设置纹理格式

纹理格式Unity3D 2023-01-31 02:01:14 674人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

Http://m.blog.csdn.net/article/details?id=43017487&isappinstalled=1     在PC上开发时,其天空盒的效果很好,但是为Android平台Build之后,其效果简直没

Http://m.blog.csdn.net/article/details?id=43017487&isappinstalled=1

    在PC上开发时,其天空盒的效果很好,但是为Android平台Build之后,其效果简直没法看。

    更为恼火的是,之后PC上的纹理效果也变差了,新加入的纹理效果都会变差,看其纹理格式,使用ETC进行了压缩。

2.1 在导入时是否自动压缩

     Edit->Preferences...

 

当选择此选项之后,每当导入新的纹理(无论是拖入或在文件管理器中copy),Unity3D都会根据当前平台的设置进行自动转换,此纹理转换,并不是把纹理文件进行修改,纹理文件是不动的,而是增加了一个.meta文件(如Sunny4_back.tif对应Sunny4_back.tif.meta),其中定义了很多与纹理相关的参数,其中决定此纹理格式的参数为:textureType,此文件内容如下:


fileFORMatVersion: 2
guid: e658bdd655d56c64eb2bf011d186cded
TextureImporter:
  serializedVersion: 2
  mipmaps:
    mipMapMode: 0
    enableMipMap: 1
    linearTexture: 0
    correctGamma: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: .25
    normalMapFilter: 0
  isReadable: 0
  grayScaleToAlpha: 0
  generateCubemap: 0
  seamlessCubemap: 0
  textureFormat: 4
  maxTextureSize: 1024
  textureSettings:
    filterMode: -1
    aniso: -1
    mipBias: -1
    wrapMode: -1
  nPOTScale: 1
  lightmap: 0
  compressionQuality: 50
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot: {x: .5, y: .5}
  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
  spritePixelsToUnits: 100
  alphaIsTransparency: 0
  textureType: -1
  buildTargetSettings: []
  spriteSheet:
    sprites: []
  spritePackingTag: 
  userData:


2.2 Unity3D设置纹理格式

    1) 选中纹理,纹理的Inspector窗口如下图所示:




上图显示的为Default设置,若Android平台没有单独设置, 则此纹理在Anroid平台采用默认设置,若Android平台单独设置了,则采用Android平台设置的格式。Unity3D只能设置三种纹理格式:Compressed、16bits、Truecolor,若要设置其它纹理格式,则Unity3D无能为力。

2.3 在Unity3D中自定义设置纹理格式

       把ChangeTextureImportSettings.cs放于Assets/Editor目录下,ChangeTextureImportSettings.cs内容如下:


using UnityEngine;

using UnityEditor;



// /////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Batch Texture import settings modifier.
//
// Modifies all selected textures in the project window and applies the requested modification on the

// textures. idea was to have the same choices for multiple files as you would have if you open the

// import settings of a single texture. Put this into Assets/Editor and once compiled by Unity you find

// the new functionality in Custom -> Texture. Enjoy! :-)

//

// Based on the great work of benblo in this thread:
// http://forum.unity3d.com/viewtopic.PHP?t=16079&start=0&postdays=0&postorder=asc&highlight=textureimporter
//
// Developed by Martin Schultz, Decane in August 2009
// e-mail: ms@decane.net
//
// Updated for Unity 3.0 by col000r in August 2010
// http://col000r.blogspot.com
//
// /////////////////////////////////////////////////////////////////////////////////////////////////////////

public class ChangeTextureImportSettingsUnity3 : ScriptableObject {
	
	
	
	[MenuItem ("Custom/Texture/Change Texture Format/Auto Compressed")]
	
	static void ChangeTextureFormat_AutoCompressed() {
		
		SelectedChangeTextureFormatSettings(TextureImporterFormat.AutomaticCompressed);
		
	}
	
	
	
	[MenuItem ("Custom/Texture/Change Texture Format/Auto 16bit")]
	
	static void ChangeTextureFormat_Auto16Bit() {
		
		SelectedChangeTextureFormatSettings(TextureImporterFormat.Automatic16bit);
		
	}
	
	
	
	[MenuItem ("Custom/Texture/Change Texture Format/Auto Truecolor")]
	
	static void ChangeTextureFormat_AutoTruecolor() {
		
		SelectedChangeTextureFormatSettings(TextureImporterFormat.AutomaticTruecolor);
		
	}
	
	
	
	[MenuItem ("Custom/Texture/Change Texture Format/RGB Compressed DXT1")]
	
	static void ChangeTextureFormat_RGB_DXT1() {
		
		SelectedChangeTextureFormatSettings(TextureImporterFormat.DXT1);
		
	}
	
	
	
	[MenuItem ("Custom/Texture/Change Texture Format/RGB Compressed DXT5")]
	
	static void ChangeTextureFormat_RGB_DXT5() {
		
		SelectedChangeTextureFormatSettings(TextureImporterFormat.DXT5);
		
	}
	
	
	
	[MenuItem ("Custom/Texture/Change Texture Format/RGB 16 bit")]
	
	static void ChangeTextureFormat_RGB_16bit() {
		
		SelectedChangeTextureFormatSettings(TextureImporterFormat.RGB16);
		
	}
	
	
	
	[MenuItem ("Custom/Texture/Change Texture Format/RGB 24 bit")]
	
	static void ChangeTextureFormat_RGB_24bit() {
		
		SelectedChangeTextureFormatSettings(TextureImporterFormat.RGB24);
		
	}
	
	
	
	[MenuItem ("Custom/Texture/Change Texture Format/Alpha 8 bit")]
	
	static void ChangeTextureFormat_Alpha_8bit() {
		
		SelectedChangeTextureFormatSettings(TextureImporterFormat.Alpha8);
		
	}
	
	
	
	[MenuItem ("Custom/Texture/Change Texture Format/ARGB 16 bit")]
	
	static void ChangeTextureFormat_RGBA_16bit() {
		
		SelectedChangeTextureFormatSettings(TextureImporterFormat.ARGB16);
		
	}
	
	
	
	[MenuItem ("Custom/Texture/Change Texture Format/RGBA 32 bit")]
	
	static void ChangeTextureFormat_RGBA_32bit() {
		
		SelectedChangeTextureFormatSettings(TextureImporterFormat.RGBA32);
		
	}
	
	
	
	[MenuItem ("Custom/Texture/Change Texture Format/ARGB 32 bit")]
	
	static void ChangeTextureFormat_ARGB_32bit() {
		
		SelectedChangeTextureFormatSettings(TextureImporterFormat.ARGB32);
		
	}
	
	
	
	[MenuItem ("Custom/Texture/Change Texture Format/RGB PVRTC 2bit")]
	
	static void ChangeTextureFormat_RGB_PVRTC_2bit() {
		
		SelectedChangeTextureFormatSettings(TextureImporterFormat.PVRTC_RGB2);
		
	}
	
	
	
	[MenuItem ("Custom/Texture/Change Texture Format/RGBA PVRTC 2bit")]
	
	static void ChangeTextureFormat_RGBA_PVRTC_2bit() {
		
		SelectedChangeTextureFormatSettings(TextureImporterFormat.PVRTC_RGBA2);
		
	}    
	
	
	
	[MenuItem ("Custom/Texture/Change Texture Format/RGB PVRTC 4bit")]
	
	static void ChangeTextureFormat_RGB_PVRTC_4bit() {
		
		SelectedChangeTextureFormatSettings(TextureImporterFormat.PVRTC_RGB4);
		
	}
	
	
	
	[MenuItem ("Custom/Texture/Change Texture Format/RGBA PVRTC 4bit")]
	
	static void ChangeTextureFormat_RGBA_PVRTC_4bit() {
		
		SelectedChangeTextureFormatSettings(TextureImporterFormat.PVRTC_RGBA4);
		
	}
	
	
	
	// ----------------------------------------------------------------------------
	
	
	
	[MenuItem ("Custom/Texture/Change Texture Size/Change Max Texture Size/32")]
	
	static void ChangeTextureSize_32() {
		
		SelectedChangeMaxTextureSize(32);
		
	}
	
	
	
	[MenuItem ("Custom/Texture/Change Texture Size/Change Max Texture Size/64")]
	
	static void ChangeTextureSize_64() {
		
		SelectedChangeMaxTextureSize(64);
		
	}
	
	
	
	[MenuItem ("Custom/Texture/Change Texture Size/Change Max Texture Size/128")]
	
	static void ChangeTextureSize_128() {
		
		SelectedChangeMaxTextureSize(128);
		
	}
	
	
	
	[MenuItem ("Custom/Texture/Change Texture Size/Change Max Texture Size/256")]
	
	static void ChangeTextureSize_256() {
		
		SelectedChangeMaxTextureSize(256);
		
	}
	
	
	
	[MenuItem ("Custom/Texture/Change Texture Size/Change Max Texture Size/512")]
	
	static void ChangeTextureSize_512() {
		
		SelectedChangeMaxTextureSize(512);
		
	}
	
	
	
	[MenuItem ("Custom/Texture/Change Texture Size/Change Max Texture Size/1024")]
	
	static void ChangeTextureSize_1024() {
		
		SelectedChangeMaxTextureSize(1024);
		
	}
	
	
	
	[MenuItem ("Custom/Texture/Change Texture Size/Change Max Texture Size/2048")]
	
	static void ChangeTextureSize_2048() {
		
		SelectedChangeMaxTextureSize(2048);
		
	}
	
	
	
	// ----------------------------------------------------------------------------
	
	
	
	[MenuItem ("Custom/Texture/Change MipMap/Enable MipMap")]
	
	static void ChangeMipMap_On() {
		
		SelectedChangeMimMap(true);
		
	}
	
	
	
	[MenuItem ("Custom/Texture/Change MipMap/Disable MipMap")]
	
	static void ChangeMipMap_Off() {
		
		SelectedChangeMimMap(false);
		
	}
	
	
	
	// ----------------------------------------------------------------------------
	
	
	
	
	
	[MenuItem ("Custom/Texture/Change Non Power of 2/None")]
	
	static void ChangeNPOT_None() {
		
		SelectedChangeNonPowerOf2(TextureImporterNPOTScale.None);
		
	}
	
	
	
	[MenuItem ("Custom/Texture/Change Non Power of 2/ToNearest")]
	
	static void ChangeNPOT_ToNearest() {
		
		SelectedChangeNonPowerOf2(TextureImporterNPOTScale.ToNearest);
		
	}
	
	
	
	[MenuItem ("Custom/Texture/Change Non Power of 2/ToLarger")]
	
	static void ChangeNPOT_ToLarger() {
		
		SelectedChangeNonPowerOf2(TextureImporterNPOTScale.ToLarger);
		
	}
	
	
	
	[MenuItem ("Custom/Texture/Change Non Power of 2/ToSmaller")]
	
	static void ChangeNPOT_ToSmaller() {
		
		SelectedChangeNonPowerOf2(TextureImporterNPOTScale.ToSmaller);
		
	}    
	
	
	
	// ----------------------------------------------------------------------------
	
	
	
	[MenuItem ("Custom/Texture/Change Is Readable/Enable")]
	
	static void ChangeIsReadable_Yes() {
		
		SelectedChangeIsReadable(true);
		
	}
	
	
	
	[MenuItem ("Custom/Texture/Change Is Readable/Disable")]
	
	static void ChangeIsReadable_No() {
		
		SelectedChangeIsReadable(false);
		
	}    //Unity3D教程手册:www.unitymanual.com
	
	
	
	// ----------------------------------------------------------------------------
	
	
	
	static void SelectedChangeIsReadable(bool enabled) {
		
		
		
		Object[] textures = GetSelectedTextures();
		
		Selection.objects = new Object[0];
		
		foreach (Texture2D texture in textures)  {
			
			string path = AssetDatabase.GetAssetPath(texture);
			
			TextureImporter textureImporter = AssetImporter.GetAtPath(path) as TextureImporter;
			
			textureImporter.isReadable = enabled;    
			
			AssetDatabase.ImportAsset(path);
			
		}
		
	}
	
	
	
	
	
	static void SelectedChangeNonPowerOf2(TextureImporterNPOTScale npot) {
		
		
		
		Object[] textures = GetSelectedTextures();
		
		Selection.objects = new Object[0];
		
		foreach (Texture2D texture in textures)  {
			
			string path = AssetDatabase.GetAssetPath(texture);
			
			TextureImporter textureImporter = AssetImporter.GetAtPath(path) as TextureImporter;
			
			textureImporter.npotScale = npot;    
			
			AssetDatabase.ImportAsset(path);
			
		}
		
	}
	
	
	
	static void SelectedChangeMimMap(bool enabled) {
		
		
		
		Object[] textures = GetSelectedTextures();
		
		Selection.objects = new Object[0];
		
		foreach (Texture2D texture in textures)  {
			
			string path = AssetDatabase.GetAssetPath(texture);
			
			TextureImporter textureImporter = AssetImporter.GetAtPath(path) as TextureImporter;
			
			textureImporter.mipmapEnabled = enabled;    
			
			AssetDatabase.ImportAsset(path);
			
		}
		
	}
	
	//Unity3D教程手册:www.unitymanual.com
	
	static void SelectedChangeMaxTextureSize(int size) {
		
		
		
		Object[] textures = GetSelectedTextures();
		
		Selection.objects = new Object[0];
		
		foreach (Texture2D texture in textures)  {
			
			string path = AssetDatabase.GetAssetPath(texture);
			
			TextureImporter textureImporter = AssetImporter.GetAtPath(path) as TextureImporter;
			
			textureImporter.maxTextureSize = size;  
			
			AssetDatabase.ImportAsset(path);
			
		}
		
	}
	
	
	
	static void SelectedChangeTextureFormatSettings(TextureImporterFormat newFormat) {
		
		
		
		Object[] textures = GetSelectedTextures();
		
		Selection.objects = new Object[0];
		
		foreach (Texture2D texture in textures)  {
			
			string path = AssetDatabase.GetAssetPath(texture);
			
			//Debug.Log("path: " + path);
			
			TextureImporter textureImporter = AssetImporter.GetAtPath(path) as TextureImporter;
			
			textureImporter.textureFormat = newFormat;  
			
			AssetDatabase.ImportAsset(path);
			
		}
		
	}
	
	
	
	static Object[] GetSelectedTextures()
		
	{
		
		return Selection.GetFiltered(typeof(Texture2D), SelectionMode.DeepAssets);
		
	}
	
}


     以上代码参考:Unity3d:批量修改贴图导入设置工具脚本


然后,Unity3D界面如下:


在Project窗口中选中需要设置的纹理(可多选),然后点菜单命令执行对应的转换即可。



--结束END--

本文标题: Unity3D设置纹理格式

本文链接: https://lsjlt.com/news/187055.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Unity3D设置纹理格式
    http://m.blog.csdn.net/article/detailsid=43017487&isappinstalled=1     在PC上开发时,其天空盒的效果很好,但是为Android平台Build之后,其效果简直没法...
    99+
    2023-01-31
    纹理 格式 Unity3D
  • unity3d纹理格式设置
    将Texure Type设置为Advanced时纹理的格式列表格式详解Automatic Compressed压缩RGB纹理,默认选项,常用的漫反射纹理格式。4位/像素(32KB, 256x256)RGB Compressed DXT1压缩...
    99+
    2023-01-31
    纹理 格式 unity3d
  • [Unity3D]关于U3D贴图格式压缩
    因为有不少人都问过我压缩格式的问题,今天飞哥又重新提醒了一次。整理一下发个贴,以供大家查阅和讨论。各种纹理格式,大家参照下U3D MANUAL里面的具体描述介绍,这是官方的东西。但我觉得有一部内容是错的,例如占用内存大小。http://do...
    99+
    2023-01-31
    格式 贴图 Unity3D
  • windows11指纹如何设置
    这篇文章主要介绍“windows11指纹如何设置”,在日常操作中,相信很多人在windows11指纹如何设置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”windows11指纹如何设置”的疑惑有所帮助!接下来...
    99+
    2023-07-01
  • JAVA:POI设置EXCEL单元格格式
    目录 1.Maven引入 2.单元格样式设置  3.单元格值设置 3.1.设置单元格为文本格式 3.2.设置单元格为日期格式 3.3.设置单元格数值格式 3.4.设置单元格为货币格式 3.5.设置单元格为百分比格式 3.6.设置单元格为中文...
    99+
    2023-08-31
    excel
  • mysql设置编码格式-
    创建table的时候就使用utf8编码 在每次创建表的时候都在最后加上 character set = utf8就可以很好的支持中文 create table xxx ( id int auto_inc...
    99+
    2019-01-10
    mysql设置编码格式-
  • EasyExcel设置表格样式
    工具类 package com.alibaba.excel.write.style;import java.util.List;import com.alibaba.excel.metadata.data.WriteCellData;im...
    99+
    2023-09-05
    excel java Powered by 金山文档
  • win10怎么设置指纹登陆
    这篇“win10怎么设置指纹登陆”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“win10怎么设置指纹登陆”文章吧。win10...
    99+
    2023-06-27
  • ppt幻灯片背景水滴纹理怎么设置
    这篇“ppt幻灯片背景水滴纹理怎么设置”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“ppt幻灯片背景水滴纹理怎么设置”文章吧...
    99+
    2023-07-02
  • php怎么设置单元格格式化
    本文操作环境:windows7系统、PHP7.1版,DELL G3电脑php怎么设置单元格格式化?php excel 设置单元格格式为文本格式解决 PHPExcel 长数字串显示为科学计数在excel中如果在一个默认的格中输入或复制超长数字...
    99+
    2020-12-24
    php
  • python---word表格样式设置
    1、word表格样式的设置 from docx import * document = Document() table = document.add_table(3, 3, style="Medium Grid 1 Accent 1")...
    99+
    2023-01-31
    样式 表格 python
  • Java 设置Excel条件格式
    在Excel中,应用条件格式功能可以在很大程度上改进表格的设计和可读性,用户可以指定单个或者多个单元格区域应用一种或者多种条件格式。本篇文章,将通过Java程序示例介绍条件格式的设置方法,设置条件格式时,因不同设置需要,本文分别从以下示例要...
    99+
    2023-06-02
  • windows下redmibook pro14如何设置指纹
    这篇文章主要介绍“windows下redmibook pro14如何设置指纹”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“windows下redmibook pro14如何设置指纹”文章能帮助大家解...
    99+
    2023-07-04
  • logback日志输出格式设置方式
    目录部分标签解释内置转换器部分特殊字符串解释更多内置特殊字符如何自定义输出样式字符颜色定义内置的一些样式代码示例使用内置模板使用自定义模板总结部分标签解释 withJansi: 是否...
    99+
    2023-05-14
    logback日志输出 logback日志格式设置 logback日志
  • PLSQL设置时间格式显示
    首先在首选项设置时间格式转换为char类型,再设置Date和time为windows_format。 在环境变量加入nls_date_format=YYYY-MM-DD HH24:MI:SSnls...
    99+
    2024-04-02
  • css如何设置表格样式
    这篇文章主要为大家展示了“css如何设置表格样式”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“css如何设置表格样式”这篇文章吧。   1、一个简单的表格 ...
    99+
    2024-04-02
  • eclipse怎么设置编码格式
    您可以按照以下步骤设置Eclipse的编码格式:1. 打开Eclipse,选择菜单栏上的"Window"(窗口)选项。2. 在下拉菜...
    99+
    2023-08-26
    eclipse
  • 在Visio中设置形状格式
    在Visio中设置形状格式可以通过以下步骤完成:1. 打开Visio并创建一个新的绘图文件。2. 在绘图文件中选择一个形状,或者从左...
    99+
    2023-09-08
    Visio
  • jdbc怎么设置编码格式
    在使用JDBC连接数据库时,可以通过以下方法设置编码格式:1. 在JDBC连接URL中设置编码格式:   例如:jdbc:...
    99+
    2023-10-25
    jdbc
  • word怎么设置表格样式
    今天小编给大家分享一下word怎么设置表格样式的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。word设置表格样式的方法:首先...
    99+
    2023-07-01
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作