精华内容
下载资源
问答
  • unity-pixel-editor:用于在Unity Engine中创建图片的像素编辑器
  • unity里利用Sprite Editor切割本图片为多张图片,让Batches和SetPass calls的值处于最小值,用以减少性能损耗。 上图可以见到,尽管图片有十多张,但是Batches和SetPass calls都是维持3的值。笼统一点的说,...

    原图片
    在unity里利用Sprite Editor切割本图片为多张图片,让Batches和SetPass calls的值处于最小值,用以减少性能损耗。
    分割后
    性能展示
    上图可以见到,尽管图片有十多张,但是Batches和SetPass calls都是维持3的值。笼统一点的说,Batches和SetPass calls的值越大,游戏运行需要消耗的资源也越多,也会导致游戏运行变慢、卡顿等情况,所以尽量减少这两个值变得尤为重要。

    图片切割步骤:
    1、导入未分割图片资源(如图1)后点击图片,在Inspector栏里修改Texture Type为Sprite(2D and UI)
    2、修改Sprite Mode项为Multiple
    3、点击进入Sprite Editor
    在这里插入图片描述
    PS:如进入不了Sprite Editor,请检查是否已经安装该插件。
    安装方法:Window - Package Manager 搜索 2D Sprite 并单击右下角安装。
    4、进入Sprite Editor后点击左上角Slice选择好合适的切割方式,按Sclice确定切割。(切割后可以根据自己需要再每个进行手动调整)
    在这里插入图片描述
    (我这里是用了Grid By Cell Size设置每个统一的大小,然后再手动进行细微调整)
    5、调整完成后按右上角Apply确定。
    在这里插入图片描述
    至此完成。

    展开全文
  • 创建保存Texture: private void CreateSampleSprite() { int minRadius = 64;... //图片尺寸 int spriteSize = maxRadius * 2; //创建Texture2D Texture2D texture2D = new Texture2D(spriteSize,sprite.

     创建保存Texture:

        private void CreateSampleSprite()
        {
            int minRadius = 64;
            int maxRadius = 128;
    
            //图片尺寸
            int spriteSize = maxRadius * 2;
            //创建Texture2D
            Texture2D texture2D = new Texture2D(spriteSize,spriteSize);
            //图片中心像素点坐标
            Vector2 centerPixel = new Vector2(maxRadius,maxRadius);
            //遍历像素点
            Vector2 tempPixel;
            float tempDis;
            for(int x = 0; x < spriteSize; x++)
            {
                for(int y = 0; y < spriteSize; y++)
                {
                    //以中心作为起点,获取像素点向量
                    tempPixel.x = x - centerPixel.x;
                    tempPixel.y = y - centerPixel.y;
                    //是否在半径范围内
                    tempDis = tempPixel.magnitude;
                    if(tempDis >= minRadius && tempDis <= maxRadius)
                        texture2D.SetPixel(x,y,Color.red);
                    else
                        texture2D.SetPixel(x,y,Color.white);
                }
            }
            texture2D.Apply();
            //保存图片
            byte[] dataBytes = texture2D.EncodeToPNG();
            string savePath = Application.dataPath + "/SampleCircle.png";
            FileStream fileStream = File.Open(savePath,FileMode.OpenOrCreate);
            fileStream.Write(dataBytes,0,dataBytes.Length);
            fileStream.Close();
            UnityEditor.AssetDatabase.SaveAssets();
            UnityEditor.AssetDatabase.Refresh();
        }

     创建保存Mesh:

        private void CreateSampleMesh()
        {
            float halfWidth = 50;
            float halfHeight = 50;
    
            Vector3[] vertices = new Vector3[4];
            vertices[0] = new Vector3(-halfWidth,0,-halfHeight);
            vertices[1] = new Vector3(-halfWidth,0,halfHeight);
            vertices[2] = new Vector3(halfWidth,0,halfHeight);
            vertices[3] = new Vector3(halfWidth,0,-halfHeight);
    
            int[] triangles = new int[6];
            triangles[0] = 0;
            triangles[1] = 1;
            triangles[2] = 3;
            triangles[3] = 3;
            triangles[4] = 1;
            triangles[5] = 2;
    
            Mesh newMesh = new Mesh();
            newMesh.vertices = vertices;
            newMesh.triangles = triangles;
            newMesh.name = "SampleMesh";
    
            string savePath = "Assets/SampleMesh.asset";
            UnityEditor.AssetDatabase.CreateAsset(newMesh,savePath);
            UnityEditor.AssetDatabase.SaveAssets();
            UnityEditor.AssetDatabase.Refresh();
        }

    展开全文
  • 基于TexturePacker和ugui,可具体查看精灵在预制中的引用,可以查看精灵名在代码中的引用,以便于清理冗余和无用资源。根据自己的工程在 AtlasSourceDataManagerConfigData(配置文件)中设置具体路径。...
  • 本文实例为大家分享了Unity3D选择本地图片并加载的具体代码,供大家参考,具体内容如下 ①找到System.Windows.Forms.dll:在unity的安装目录中找到它,如  E:\ProgramFiles(x86)\Unity\Editor\Data\Mono\lib\mono\...
  • Unity3D Editor】导入图片自动转换成Sprite https://blog.csdn.net/july_unity/article/details/79275097 一,导入 1,无论是什么格式的图片(最好直接使用PS直接导出的PSD格式),Unity都会自己搞一套格式,...

    【Unity3D Editor】导入图片自动转换成Sprite

    https://blog.csdn.net/july_unity/article/details/79275097

    一,导入

     

    1,无论是什么格式的图片(最好直接使用PS直接导出的PSD格式),Unity都会自己搞一套格式,并且打包的时候也不会用你文件夹下图片的格式,而是Unity自己的格式。

    2,都可以在导入时设置,图片在发生拉伸变化时使用那种滤波模式,point ,Biliner,Trilinear,得到依次滤波效果提升的图片,point 使用最邻近滤波,采样像素通常只有一个,图像放大缩小后会有像素风格,在制作棋盘时,不希望有模糊效果选择这这种模式更好。Biliner使用线性滤波,找相邻四个像素差值,放大缩小后会有模糊效果,会被模糊,Trilinear,几乎和Biliner是一样的,只是Triliner在多级纹理渐变中进行了混合,如果一个纹理没有使用该技术(Creat MitMap)几乎是一样效果。Splite 可以直接选CreatMipMap,Texture需要把图片设置为Advance后选择是否使用多级纹理渐变技术(unity会根据相机距离对象距离,生成8个Mip,该做法在3D场景UI是很好的做法,如果UI都在平面就暴露出了它的弊端,因为都在平面,所以不会有距离相机距离的变化,勾选就行,不然会增加内存,切记。)

    3.Texture 在导入设置是Warp Mode 设置可以纹理在渲染超过纹理坐标时,Climp只选择重复纹理边缘像素,还是repeat模式重复整个纹理的模式

    4.MaxSize 该纹理的最大尺寸,如原图尺寸为1024*568,该项设置成4096,unity也只会使用它的原尺寸大小,改值的大小大于等于图片原尺寸,如果小于该纹理质量会有损失

     

    5.Format 格式设置

    1. Compressed 压缩格式,如果纹理没有透明通道,一般使用该项,优化内存量,如果有透明通道,显示原图片有可能出现问题。4位
    2. 16bit 低质量真彩格式。16位
    3. TrueColor 真彩模式。质量最高,是压缩格式的8倍,但也更消耗内存,32位
    4. Crunched 这种类型将会根据显卡的GPU来选择合适的压缩格式进行压缩然后会选用一种CPU上就能处理的压缩格式再压缩一遍。如果在制作供人下载的资源包的时候这种类型非常的合适。这个类型的压缩需要很长时间,但在运行时解压是非常快的。

     

     6.使用Advance 进一步设置Sprite 或者Texture 

     你的贴图无论如何都必须是2的幂次方。因为只有2的幂次方图片 并且没有透明通道才会被压缩,IOS会压缩成pvr格  式,Android会压缩成ETC格式,压缩以后图片会小很多的,好几倍的小

     如果原图不是2的幂次方,可以在advance设置Non Power of 2值,

    1. ToNearest :转换成距离该图片最近的2的幂次方值。
    2. ToLarger : 转换成比该图片大的2的幂次方值。
    3. ToSmaller : 转换成比该图片小的2的幂次方值。

    二,对比

    Sprite,精灵

    1.2D--UI

    1.Sprite 用在 Image 组件上.,可以用来制作动画,

    可以设置Simple模式,作为一般UI,

    设置为Sliced模式,即九宫格模式,在图集中设置图图片边界后,使图片的拉伸只拉伸中间部分,不拉伸边界

    设置为Tiled 模式,实现过个图片重复平铺的效果,

    设置为Filed模式,实现图片的部分到整体的播放,可以用来做技能冷却,或者游戏的进度条(不是压缩的拉伸)

    材质通常不需要选择,很少用到,可以用来实现一些特殊效果,如凹凸感觉

      2.Sprite 有图集的概念,可以选择整图导入,UNITY中使用SpriteEditor切割,也可以选择导入后设置图片的packageTag系统       自动打包图集,图片小的,重复性比较高的图片最好打成图集,

     

      注意:1,一个图集内的图片用UISprite,那么它就是一个DrawCall。但是如果你做了一个图集是1024X1024的。此时你的界面   上只用了图集中的一张很小的图,那么很抱歉1024X1024这张大图都需要载入你的内存里面,1024就是4M的内存,如   果你做了10个1024的图集,你的界面上刚好都只用了每个图集里面的一张小图,那么再次抱歉你的内存直接飙40M

                2.带透明通道和不带透明通道的,CreatMipMap和不Create 的,不能制作成同一图集  

    2.3D---场景

      1.单个Sprite 直接拖入场景中,系统自动添加SpriteRanderder 组件,作为3D物体直接使用,

      2. 多个Sprite直接拖入场景,可以直接制作帧动画,在2D中同样也可以。

    2.Texture 纹理

     2D.---UI

    1.Texture用在Raw Image组件上,可以用来制作动画

    2.tuxture没有图集的概念,这样内存里只会占用你这一张图的大小,内存虽然小了但是DrawCall就上去了。因为每一

    张UITexture就是一次DrawCall。原画,或者背景图建议直接使用UITexture。

     3.可以通过UV 调节图片显示的偏移,和重复(可以用来制作多格子血条)

    3D--场景

    1.无论单个,多个,不可以直接拖入3D场景中!!,2D也不行

    2.用于3D模型贴图,(Shader代码把贴图和纹理坐标映射),再由GPU把模型渲染出来

    MeshFiiter组件中模型网格,存储的纹理坐标信息(Unity自己创建的Cube会自动添加纹理坐标所以创建后就能贴上纹理,3D建模时如果忽略 没有给模型生成纹理坐标,会导致模型贴上贴图没有效果)

    MesherRenderder 物体渲染组件

    补充:

     

    材质纹理贴图的关系:
    材质 Material包含贴图 Map,贴图包含纹理 Texture。

    纹理是最基本的数据输入单位,游戏领域基本上都用的是位图。此外还有程序化生成的纹理 Procedural Texture。

    贴图的英语 Map 其实包含了另一层含义就是“映射”。其功能就是把纹理通过 UV 坐标映射到3D 物体表面。贴图包含了除了纹理以外其他很多信息,比方说 UV 坐标、贴图输入输出控制等等。

    材质是一个数据集,主要功能就是给渲染器提供数据和光照算法。贴图就是其中数据的一部分,根据用途不同,贴图也会被分成不同的类型,比方说 Diffuse Map,Specular Map,Normal Map 和 Gloss Map 等等。另外一个重要部分就是光照(高光,漫反射,环境等信息),通过Shader语言,调用CG,HLSL,GLSL图像编程接口写入一个文本中,构成材质的数据集合。

    同时材质可以提供接口可以方便调试。

     

    像素,分辨率
    像素是计算机屏幕上所能显示的最小单位。用来表示图像的单位。

    一个像素有多大呢?主要取决于显示器的分辨率,相同面积不同分辨率的显示屏,其像素点大小就不相同。

    如一张640X480的图片,表示这张图片在每一个长度的方向上都有640个像素点,而每一个宽度方向上都480个像素点,总数就是640X480=307200(个像素),简称30万像素

    分辨率指屏幕上像素的数目,为了控制像素的亮度和彩色深度,每个像素需要很多个二进制位来表示,如果要显示256种颜色,则每个像素至少需要8位(一个字节)来表示,即2的8次方等于256;当显示真彩色时,每个像素要用3个字节的存储量.像素值也是长度定义中使用最为普遍的单位像素值的英文名称为pixel

    用像素值定义长度的时候,一定要考虑屏幕分辨率的兼容性,例如,一个设计者设置了一个张图片的显示宽度是800像素,在800*600像素分辨率的屏幕上它能够占据整个宽度,而在1600*1200像素宽度的屏幕上,它只能占有屏幕宽度的一半。

    大小=分辨率*位深/8     分辨率=宽*高(如:1024*768,640*480)    位深:如24位,16位,8位       /8计算的是字节数。

    例如:

     

     

     

     

    一幅图像分辨率:1024*768,24位,则其大小计算如下: 不考虑压缩,占位等。。。。
    大小=1024*768*24/8=2359296byte=2304KB

    1、厘米和像素

    厘米和像素没任何关系,厘米是长度单位,什么是象素呢?像素是组成图像的最基本单元。它是一个小的方形的颜色块。

    一个图像通常由许多像素组成,这些像素被排成横行或纵列,每个像素都是方形的。当你用缩放工具将图像放到足够大时,就可以看到类似马赛克的效果,每个小方块就是一个像素。

    每个像素都有不同的颜色值。单位面积内的像素越多,分辨率(dpi)越高,图像的效果就越好。

    显示器上正常显示的图像,当放大到一定比例后,就会看到类似马赛克的效果。每个小方块为一个像素,也可称为栅格。像素图的质量是由分辨率决定的,单位面积内的像素越多,分辨率越高,图像的效果就越好。

    显示屏的尺寸是指其对角线的长度,用英寸表示,1英寸=25.4毫米。

    我们以一款手机为例来说明这个问题。其主屏尺寸:4寸,主屏分辨率:800x480像素,通过勾股定理计算可知其长宽为3.430寸X2.058寸(87.1毫米X52.3毫米)。800/3.430=233,即每英寸长度有233个像素,每一个像素有87.1/800=0.109毫米大。

    显示屏的尺寸是指其对角线的长度,用英寸表示,1英寸=25.4毫米。

    就是说这个手机的显示屏共由800X480=384000个边长为0.109毫米大小相等的像素点所组成。任何一张图片在这个显示器里百分之百全屏显示时(图片作为墙纸或屏保时效果最好),其像素点都是这么大。如果图片大过显示屏,则要滑动滚动条才能看完全图,如果小于显示屏,则会居中显示,无图显示处为黑框显示。对于640X480分辨率的图在此显示屏中会居中显示,在长度方向上两端会有一截为黑框显示。这个图片的尺寸长为69.68毫米,宽为52.3毫米。如果是在光线不足的条件下照得的相片,你会看到一格格的马赛克,画面很是粗糙。

    而对于4.3寸主屏,若其分辨率:1280x720像素,则长和宽3.746X2.108(95.2毫米X53.5毫米),1280/3.746=341,即每英寸长度有341个像素,每一个像素有95.2/1280=0.074毫米大。显而易见这个屏幕比前面那个屏显示的效果好得多了。640X480分辨率的图片在这里的长和宽分别为47.6毫米和35.7毫米。对于4.5寸主屏,若其分辨率为:1280x720像素,则长和宽3.923X2.206(99.6毫米X56.0毫米),1280/3.923=326,即每英寸长度上有326个像素,每一个像素有99.6/1280=0.078毫米。和前面的4.3寸屏差不多

     

     

     

     

     

     

     

    展开全文
  • 很久很久没有更新了,最近忙着参加比赛 没有多少空闲...然后再window窗口打开Sprite Editor编辑器 之后先点击Tirm即可开始裁剪 我们会发现下边多出来很多小绿格 我们可以手动调整大小 做到随心所欲的裁剪 总之 uni

    很久很久没有更新了,最近忙着参加比赛 没有多少空闲时间
    然后几天抽空写一篇关于2D图片切割的博客

    在做项目的时候很多下载的图片都是一整张的
    比如这种
    在这里插入图片描述

    就拿这张图说 如果我们想得到一个字母或数字的话我们就得去切割了
    如果是2019版本在Window下面的2D中没有找到Sprite Editor的话
    我们要在Package Manager下面搜索2D Sprite去Install

    首先修改导入图片的格式修改为sprite(2D and UI)还要把Sprite Mode换成Multiple
    在这里插入图片描述
    然后再window窗口打开Sprite Editor编辑器
    在这里插入图片描述
    在这里插入图片描述
    之后先点击Tirm即可开始裁剪
    我们会发现下边多出来很多小绿格 我们可以手动调整大小
    做到随心所欲的裁剪
    总之 unity的功能真的很强大
    如果你也是unity游戏开发爱好者欢迎关注我
    我会不定期更新我的学习过程

    展开全文
  • Skinning Editor 入口 界面介绍 本文书写使用的Unity版本为2019.3.4f1, Packages版本: 2D Animation - 3.1.1 2D PSD Importer - 2.1.4 前言 使用Unity自带2D Animation制作动画,相比使用Spine...
  • 网上很多代码设置图片压缩格式的案例,都很简单,提供思路,随时百度。 本篇文章是为了满足项目需求,加了一些功能: ...本文涉及大部分的Unity Editor的UI绘制API,互相学习。 效果如下: 获取所有信息
  • Unity UGUI Font Editor

    2018-04-07 16:57:23
    游戏制作中,经常需要使用各种花哨...将包里面的数据放置到unity的资源目录下,右键点击fnt文件,在右键菜单中选择BatchCreateArtistFont来生成相关的字体文件, fnt文件为BMFont导出的文件,BMFont如何使用请自行百度
  • 查了很多资料,Unity编辑器中没有看到单独显示图片的方式,这里贴出完整的代码。希望对大家有帮助,这个也是我搜集的一些资料。 GUI.DrawTexture(LeftIconArea, EditorSkillNewUtil.GetTexture($"UI/HeroIcon/...
  • Unity 图片修改

    千次阅读 2018-01-24 17:43:31
    检测图片,修改图片格式 ...using UnityEditor; using System.IO; using System.Collections.Generic; using System.Text; using System.Reflection; public class TextureCheck { [MenuItem("检查图片/检查文件
  • 文章目录一、前言二、图片导入到Unity中尺寸会变成2的N次方三、为什么非要是2的N次方呢四、每个平台使用的默认格式五、常用的压缩格式 一、前言 虽然 Unity支持许多常见的图像格式作为导入纹理的源文件(例如 JPG、...
  • 适用于Unity的Polygon2D编辑器 使用PolygonCollider2D对撞器为游戏对象生成网格,让您通过“编辑对撞器”按钮在Unity版本中绘制多边形平台。 只需将脚本拖到平台GameObject上,就可以了。 该脚本使用类。 安装/...
  • Unity图片导入设置

    千次阅读 2019-12-19 11:33:53
    https://docs.unity3d.com/Manual/class-TextureImporter.html Texture Type(纹理类型) 有用于2D的,法线贴图的,鼠标贴图的等 Texture Shape(纹理形状) 默认情况下设置为2D Alpha Source 是否导入Alpha通道 ...
  • unity3d-EditorWindow

    2020-01-02 09:20:13
    EditorWindow: 编辑器中的GUI系统有4大类: 1.GUI 2.GUILayout 3.EditorGUI 4.EditorGUILayout 1、2的命名空间是UnityEngine;3、4的命名空间是UnityEditor。...EditorWindow是用于开发unity3d编...
  • 在阅读本教程之前,你需要对Unity的操作流程有一些基础的认识,并且最好了解内置的GUI系统如何使用。如何让编辑器运行你的代码Unity3D可以通过事件触发来执行你的编辑器代码,但是我们需要一些编译器参数来告知...
  • 本文为 Unity3D 入门小伙伴整理 Unity 编辑器中的常用快捷键。 本文内容调节工具视图调节窗口调整进入退出播放模式所有快捷键 调节工具 Unity 编辑器左上角的一组按钮,正好也对应着键盘左上角的字母: 图标 ...
  • unity图片切割

    2021-06-03 16:23:19
    unity3d将一张图片切成多张图片 需要切成单个图片再组成Atlas。 解决方法 利用NGUI的Sprite编辑,把图片Texture Type改为Sprite,Sprite Mode改为Multiple,如图所示: 打开Sprite Editor,左上角选择Slice,可以...
  • Unity插件—导出利用SpriteEditor分割完的图片 我们在搜集资源的时候会碰到把很多UI集成到一张png图片的情况,这个时候我们会用SpriteEditor将其分割,但是如果我们用NGUI的话就需要制作图集,这个时候我们需要小的...
  • 通过Editor编程显示和调试游戏中武器的运作 在我们的战争游戏项目中,往往会用到各式各样的武器,但是武器的子弹轨迹并...在本节课中,我们会通过Unity Editor的编程一步一步带大家实现一个抛射武器的功能以及它在...
  • using System.Collections; using System.Collections.Generic; using System.Threading; ...using UnityEditor; using System; using System.IO; public class ScaleOne : EditorWindow { [M...
  • 功能:Unity中将一张Sprite分割成多个图片,前提是Sprite包含多个子图片
  • EditorWindow(Skin界面展示) ...using UnityEditor; using UnityEngine; namespace Miss { public class EditorStyleViewer : EditorWindow { static EditorStyleViewer window = null; [Men
  • Unity2D Sprite Editor 图片切割

    千次阅读 2016-07-01 16:24:19
    http://blog.csdn.net/akof1314/article/details/38845933
  • Unity图片资源的分类 在Unity中,图片一般可以分为两种:贴图(Texture)和精灵(Sprite)。我们可以简单的理解为3D(模型使用的)图片和2D(UI使用的)图片。在可以直接选择Texture Type去更改你的导入方式。 ...
  • 挂到节点上 public class Data { public int left; public int right; public int top; public int bottom; } public class Test : MonoBehaviour ...//放在Editor目录下 ...using UnityEditor; [CustomEdi...
  • ###Unity Editor自定义窗口 目标: 1.了解一些属性的使用 2.创建一个自定义窗口 最终目标: 利用学到的东西制作自己的工具(自定义的窗口、Inspector、菜单、插件等等)。 最终效果: 准备工作: 在之前的项目...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,820
精华内容 2,328
关键字:

editorunity图片