当前位置: 首页 > news >正文

Unity2D-Sprite

Sprite Editor

Single图片编辑

SpriteEditor 是什么?

顾名思义,SpriteEditor 就是 精灵图片编辑器 它主要用于编辑 2D 游戏开发中使用的 Sprite 精灵图片 它可以用于编辑 图集中提取元素,设置精灵边框,设置九宫格,设置轴心(中心)点等等功能

新版本的Unity 需要安装2D Sprite包才能使用SpriteEditor

Single 图片编辑主要讲解的就是在设置图片时 将精灵图片模式(Sprite Mode)设置为 Single 的精灵图片在 Sprite Editor 窗口中如何编辑

1.Sprite Editor 基础图片设置(右下角窗口)

主要用于设置单张图片的基础属性

Name:名字
Position:在图片中的偏移位置和宽高
Border:边框,用于设置九宫格的 4 条边
Pivot:轴心(中心)点位置
Pivot Unit Mode:轴心点单位模式
​		Normalized:标准化模式,0~1
​		Pixels:像素模式
Custom Pivot:自定义轴心点

2.Custom Outline(决定渲染区域)

自定义边缘线设置,可以自定义精灵网格的轮廓形状

默认情况下不修改都是在矩形网格上渲染,边缘外部透明区域会被渲染,浪费性能

使用自定义轮廓,可以调小透明区域,提高性能

Snap:将控制点贴近在最近的像素
Outline Tolerance:轮廓点的复杂性和准确性,0~1   值越大轮廓点越多,越准确
Generate:生成网格轮廓

3.Custom Physics Shape(决定碰撞判断区域)

自定义精灵图片的物理形状,主要用于设置需要物理碰撞判断的 2D 图形

它决定了之后产生碰撞检测的区域

4.Secondary Textures (为图片添加特殊效果)

次要纹理设置,可以将其它纹理和该精灵图片关联

着色器可以得到这些辅助纹理然后用于做一些效果处理

让精灵应用其它效果

Multiple图集元素分割

当我们的图片资源是图集时,我们需要在设置时将模式设置为Multiple

这时我们可以使用Sprite Editor自带的功能进行图集元素分割

自动分割

Pivot:单张图片轴心点位置
Custom Pivot:自定义轴心点
Method:如何处理现有对象- Delete Existing:替换掉已经选择的任何矩形
- Smart:尝试创建新矩形同时保留或调整现有矩形
- Safe:添加新矩形而不更改任何已经存在的矩形

按单元格大小分割

Pixel Size:单元格宽高
Offset:偏移位置
Padding:和边缘的偏移位置
Keep Empty Rects:是否保留空矩形

根据行列数进行分割

Trim主要在自动分割后用作最图片的修剪,减少透明范围

Polygon多边形编辑

如果我们使用的资源为多边形资源,可以在设置时将模式设置为Polygon,然后在Sprite Editor中进行快捷设置

Sides:是多边形的边数,支持的范围是3-128

Sprite Renderer

Sprite Renderer是精灵渲染器,所有2D游戏中的资源(除UI外)都是通过Sprite Renderer让我们看到的

它是2D游戏开发中的一个重要组件

2D对象创建

1.直接拖入Sprite图片

2.右键创建

右键【2D Object】 -> 【Sprite】

3.空物体添加脚本

空对象添加组件【Sprite Renderer】,关联图片

参数讲解

Sprite: 渲染的精灵图片

Color: 定义着色,一般没有特殊需求不会修改

Flip: 水平或竖直翻转精灵图片

Draw Mode: 绘制模式,当尺寸变化时的缩放方式

Simple:简单模式,缩放时整个图像一起缩放

Sliced:切片模式,9 宫格切片模式,十字区域缩放,4 个角不变化 一般用于变化不大的纯色图( 注 意:需要把精灵的网格类型设置为 Full Rect)

Tiled:平铺模式,将中间部分进行平铺而不是缩放(注意:需要把精灵的网格类型设置为 Full Rect)

Continuous:当尺寸变化时,中间部分将均匀平铺

Adaptive:当尺寸变化时,类似 Simple 模式,当更改尺寸达到 Stretch Value 时,中间才开始平 铺

Mask Interaction:与精灵遮罩交互时的方式

None:不与场景中任何精灵遮罩交互

Visible inside Mask:精灵遮罩覆盖的地方可见,而遮罩外部不可见

Visible Outside Mask:精灵遮罩外部的地方可见,而遮罩覆盖处不可见

Sprite Sort Point:计算摄像机和精灵之间距离时,使用精灵中心 Center 还是轴心点 Pivot,一般情况下不用修改

Material:材质,可以使用一些自定义材质来显示一些特殊效果;一般情况不修改,默认材质不受光照影响,若要受光照影响可选择 Default-Diffuse

Additional Settings:高级设置

Sorting Layer:排序层选择

Order in Layer:层级序列号,数值越大约会显示在前面

代码设置相关
        GameObject obj = new GameObject();SpriteRenderer sr = obj.AddComponent<SpriteRenderer>();//动态的改变图片sr.sprite = Resources.Load<Sprite>("dead3");//获取图集中的一张Sprite[] sprs = Resources.LoadAll<Sprite>("RobotBoyIdleSprite");sr.sprite = sprs[10];

Sprite Creator

Sprite Creator 是精灵创造者 我们可以利用 Sprite Editor 的多边形工具创造出各种多边形 Unity 也为我们提供了现成的一些多边形

它的主要作用是 2D 游戏的替代资源 在等待美术出资源时我们可以用他们作为替代品 有点类似 Unity 提供的自带几何体

替代资源是做 demo 和学习时的必备品

在【Project】中右键创建

Sprite Mask

SpriteMask是精灵遮罩的意思,它主要作用就是对精灵图片产生遮罩

制作一些特殊的功能,比如只显示图片的一部分让玩家看到

右键创建 Sprite Mask

设置图片属性

在遮罩内部显示或者在遮罩外部显示,如图

属性介绍

Sprite:遮罩图片
Alpha Cutoff:如果 Alpha 包含透明区域和不透明区域之间的混合(半透明),则可以手动确定所显示区域的分界点(0~1)
Custom Range:自定义遮罩范围
开启后可以设置遮罩的范围,按照排序层来划分(规则就是,图片层级必须大于back的层级,小于front的层级才能被遮罩影响)

Sorting Group

SortingGroup 是排序分组的意思,它的主要作用就是对多个精灵图片进行分组排序

Unity 会将同一个排序组中的精灵图片一起排序,就好像他们是单个游戏对象一样

主要作用是对于需要分层的 2D 游戏用于整体排序

子排序组,先排子对象 再按父对象和别人一起排(同层和同层比)

多个 挂载排序分组组件的预设体 之间 通过修改 排序索引号来决定前后顺序

Sprite Atlas精灵图集制作

Unity中打开自带的打图集功能

在工程设置面板中打开功能 Edit—>Project Setting—>Editor Sprite Packer (精灵包装器,可以通过 Unity 自带图集工具生成图集) Disabled: 默认设置,不会打包图集

Enabled For Builds (Legacy Sprite Packer) : Unity 仅在构建时打包图集,在编辑模式下不会打包图集 Always Enabled (Legacy Sprite Packer) : Unity 在构建时打包图集,在编辑模式下运行前会打包图集

Legacy Sprite Packer 传统打包模式 相对下面两种模式来说 多了一个设置图片之间的间隔距离 Padding Power: 选择打包算法在计算打包的精灵之间以及精灵与生成的图集边缘之间的间隔距离 这里的数字 代表 2 的 n 次方

Enabled For Build: Unity 进在构建时打包图集,在编辑器模式下不会打包 Always Enabled: Unity 在构建时打包图集,在编辑模式下运行前会打包图集

【Project】中右键创建Sprite Atlas

Master:主图集

Include in Build:选中可以在当前构建中包含图集

Allow Rotation:选中此选项将在打包图集时对图片元素进行旋转,可最大限度提高组合后的图集密度; 注意!!!若为 UI 图集请禁用,否则打包时会旋转场景中 UI 元素

Tight Packing:选中此选项在打包图集时使用图片轮廓打包(非矩形),可最大限度提高组合后的图集 密度

Padding:图集中各图片的间隔像素

Variant:变体类型的图集

Master Atlas:关联的主图集(图集类型必须是 Master)

Include in Build:选中可以在当前构建中包含图集

Scale:设置变体图集的缩放因子(0~1),变体图集大小是主图集乘以Scale的结果

变体图集的主要作用是以主图集为基础,对它进行缩放产生一个新的图集副本。如果想使用变体图集中的内容,只需要勾选变体图集的Include in build选项,而主图集禁用此选项即可

在【Objects for Packing】中添加图片或文件夹选择需要打图集的图片,然后通过【Pack Preview】进行打包

如何观察DrawCall的数量

通过【Game】窗口的stats标签,中的Batches的数量观察,它的数量就是DrawCall的数量

代码控制

        GameObject obj = new GameObject();SpriteRenderer sr = obj.AddComponent<SpriteRenderer>();
//加载图集资源SpriteAtlas sa = Resources.Load<SpriteAtlas>("MyAtlas");
//加载一张名为“1”的图片sr.sprite = sa.GetSprite("1");

http://www.dtcms.com/a/392226.html

相关文章:

  • 本地实现视频分析与总结工具
  • Vue 开发常见报错及解决方案指南
  • Linux 进程状态
  • 基于自然语言处理的文本敏感内容检测系统的设计与实现
  • JDBC小白入门项目创建 IDEA 空项目+模块配置 JavaWeb MySQL
  • 笔记 Docker(离线)安装(24.0.9)
  • Docker-Android+cpolar:移动开发的环境革命
  • uniapp首先对战匹配简单实现
  • [bitcoin白皮书_2] 隐私 | 计算
  • 【杂谈】-重构注意力经济:人工智能重塑短视频内容生态
  • 【杂谈】Godot 4.5下载指南
  • CICD工具选型,Jenkins VS Arbess哪一款更好用?
  • iOS 26 续航测试实战,如何测电池掉电、Adaptive Power 模式功耗、新系统更新后的耗电差异与 App 续航优化指南
  • 数据挖掘与KDD:从理论到实践的最佳流程解析
  • 深入理解Linux网络中的Socket网络套接字——基础概念与核心实现
  • Spark专题-第二部分:Spark SQL 入门(4)-算子介绍-Exchange
  • Spark专题-第二部分:Spark SQL 入门(3)-算子介绍-Aggregate
  • Go基础:Go语言中集合详解(包括:数组、切片、Map、列表等)
  • 《算法闯关指南:优选算法--滑动窗口》--09长度最小的子数串,10无重复字符的最长字串
  • 请卸载xshell,一款国产的终端工具,界面漂亮,功能强大,支持win,mac,linux平台,安全免费
  • 用批处理文件实现Excel和word文件的重造
  • unseping(反序列化漏洞)
  • 麒麟系统 word转为pdf
  • 【Codex CLI 配置指南(小白速通版)】
  • R及RStudio的配置与安装
  • 深度解析:基于 ODBC连接 KingbaseES 数据库的完整操作与实践
  • springboot川剧科普平台(代码+数据库+LW)
  • Vue中的监听方式
  • CentOS 7系统解决yum报错
  • GD32VW553-IOT V2开发版【温湿度检测】