您当前的位置: 首页 >  unity

蔗理苦

暂无认证

  • 3浏览

    0关注

    88博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

2022-04-30 Unity核心2——Sprite

蔗理苦 发布时间:2022-04-30 22:26:35 ,浏览量:3

文章目录
        • 一、Single 图片编辑
        • 二、Multiple 图片编辑
        • 三、Polygon 多边形编辑
        • 四、Sprite Renderer 精灵渲染器
        • 五、Sprite Creator 精灵创造者
        • 六、Sprite Mask 精灵遮罩
        • 七、Sorting Group 排序分组
        • 八、Sprite Atlas 制作图集
​ 顾名思义,Sprite Editor 就是精灵图片编辑器,它主要用于编辑 2D 游戏开发中使用的 Sprite 精灵图片

​ 它可以用于编辑,图集中提取元素,设置精灵边框,设置九宫格,设置轴心(中心)点等等功能

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

​ 点击 Sprite Editor,进入编辑模式

一、Single 图片编辑

(一)Sprite Editor

​ 基础图片设置(右下角窗口)

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

  1. Name:图片名字
  2. Position:在图片中的偏移位置和宽高。单张图片无法设置,默认左下角位置为 (0, 0)
  3. Border:边框,用于设置九宫格的 4 条边
  4. Pivot:轴心(中心)点位置
  5. Pivot Unit Mode:轴心点单位模式
    • Normalized:标准化模式,0 ~ 1 表示百分比
    • Pixels:像素模式
  6. Custom Pivot:自定义轴心点,Pivot 为 Custom 时可以设置

(二)Custom Outline(决定渲染区域)

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

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

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

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

​ 我们也可以手动添加点,自定义编辑点的位置,从而手动控制网格

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

​ 自定义精灵图片的物理形状,主要用于设置需要物理碰撞判断的 2D 图形,它决定了之后产生碰撞检测的区域

​ 和 Custom Outline 设置类似,但设置的是物理碰撞的网格

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

​ 次要纹理设置,可以将其它纹理和该精灵图片关联,着色器可以得到这些辅助纹理然后用于做一些效果处理,让精灵应用其它效果

​ 需要结合 Shader 使用

二、Multiple 图片编辑

​ Multiple 图集元素分割

​ 当我们的图片资源是图集时,我们需要在设置时将模式设置为 Multiple,这时我们可以使用 Sprite Editor 自带的功能进行图集元素分割

​ 打开 Sprite Editor,可看见如下界面。左上角的 Slice 表示如何对该图进行分割,其中的 Type 表示 Unity 切割该图片的类型

(一)Automatic:自动切割(常用)

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

(二)Grid By Cell Size:按单元格大小分割

  1. Pixel Size:单元格宽高
  2. Offset:偏移位置
  3. Padding:盒边缘的偏移位置
  4. Keep Empty Rects:是否保留空矩形
  5. Pivot:单张图片轴心点的位置
  6. Custom Pivot:自定义轴心点
  7. Method:如何处理现有对象
    • Delete Existing:替换掉已经选择的矩形
    • Smart:尝试创建新矩形同时保留或调整现有的矩形
    • Safe:添加新矩形而不更改任何已经存在的矩形

(三)Grid By Cell Count:按行列数分割

  1. Column & Row:行数和列数
  2. Offset:偏移位置
  3. Padding:盒边缘的偏移位置
  4. Keep Empty Rects:是否保留空矩形
  5. Pivot:单张图片轴心点的位置
  6. Custom Pivot:自定义轴心点
  7. Method:如何处理现有对象
    • Delete Existing:替换掉已经选择的矩形
    • Smart:尝试创建新矩形同时保留或调整现有的矩形
    • Safe:添加新矩形而不更改任何已经存在的矩形

​ 同时,我们也可以自己在主图上画出一个矩形进行手动切割

:切割去除图片矩形边缘多余的透明区域

三、Polygon 多边形编辑

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

  • Slides:多边形边数

​ 在设置完多边形后,Polygon 模式下会自动帮我们设置渲染区域 Custom Outline

​ 但是一般这种模式在实际开发中使用较少,因为规矩的多边形很少用到

四、Sprite Renderer 精灵渲染器

​ 所有 2D 游戏中游戏资源(除 UI 外)都是通过 Sprite Renderer 让我们看到的,它是 2D 游戏开发中的一个极为重要的组件

​ 2D 对象创建的方法:

  • 直接拖入 Sprite 图片
  • 右键创建 Sprite
  • 空物体添加脚本

(一)参数介绍

  1. Sprite:渲染的精灵图片

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

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

  4. Draw Mode:

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

    • Sliced:九宫格切片模式,十字区域缩放,四个角不变化,一般用于变化不大的纯色图,类似 UGUI 中 Image 的 Sliced

      (需要把精灵的网格类型 Mesh Type 设置为 Full Rect)

    • Tiled:平铺模式,将中间部分进行平铺而不是缩放

      (需要把精灵的网格类型 Mesh Type 设置为 Full Rect)

      • Tile Mode:平铺模式

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

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

    • Size:缩放大小,仅当 Draw Mode 为 Sliced 或 Tiled 才显示

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

    • None:不与场景中任何精灵遮罩交互
    • Visible Inside mask:精灵遮罩覆盖的地方可见,而遮罩外部不可见
    • Visible Outside mask:精灵遮罩外部的地方可见,而遮罩覆盖处不可见
  6. Sprite Sort Point:计算摄像机和精灵之间距离时,使用精灵中心点 Center 还是轴心点 Pivot,一般情况下不修改

  7. Material:精灵材质

    可以使用一些自定义材质来显示一些特殊效果,一般不用修改

    默认材质是不会受到光源影响的,如果想要受光照影响,可以设置为 Default

  8. Additional Settings:额外设置

    • Sorting Layer:所在排序层
    • Order in Layer:排序层的序号

    也可以直接修改 Sprite 的 Z 轴,因为 2D 游戏中摄像机的模式是正交 Orthographic 的,但修改 Z 轴的优先级小于 Sorting Layer

(二)代码示例

GameObject     obj = new GameObject();
SpriteRenderer sr  = obj.AddComponent();

// 动态的改变图片
sr.sprite = Resources.Load("dead1");

// 动态的加载 图集中的图
Sprite[] sprs = Resources.LoadAll("RobotBoyIdleSprite");
sr.sprite = sprs[10];
五、Sprite Creator 精灵创造者

​ 我们可以利用 Sprite Editor 的多边形工具创造出各种多边形,Unity 也为我们提供了现成的一些多边形,它的主要作用是 2D 游戏的替代资源

​ 在等待美术出资源时我们可以用他们作为替代品,有点类似 Unity 提供的自带几何体,替代资源是做 demo 和学习时的必备品

​ 在 Project 窗口右键创建各种形状的 Sprite 精灵图片

​ 这里的精灵图片都是 Polygon 类型,通过设置边的个数来控制其形状

六、Sprite Mask 精灵遮罩

​ Sprite Mask 是精灵遮罩的意思,它的主要作用就是对精灵图片产生遮罩,制作一些特殊的功能,比如只显示图片的一部分让玩家看到

​ Sprite 有颜色的部分会作为遮罩,透明的部分不会

  1. Sprite:遮罩图片

  2. Alpha Cutoff:如果 Alpha 包含透明区域和不透明区域之间的混合(半透明),则可以手动确定所显示区域的分界点(0 ~ 1)

    小于 Alpha Cutoff 的部分不会被显示

  3. Custom Range:自定义遮罩范围

    Font 和 Back 可以定义遮罩影响的层级,遮罩影响的范围是 Back ~ Font 之间,超出这个范围的层级的 Sprite 不会受遮罩影响

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

七、Sorting Group 排序分组

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

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

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

  • 添加三个空物体,分别为 Top、Mid、Bot,表示三个层级,为三者都添加 Sorting Group 组件
  • 将 Top 的 Order in Layer 设置为 2,Mid 的 Order in Layer 设置为 1,Bot 的 Order in Layer 设置为 0
  • 这时,Top 的子物体将显示在最前面,Bot 的子物体将显示在最下面,Mid 的子物体将显示在二者中间

​ 注意:

  • 子排序组,先排子对象,再按父对象和别人一起排 (同层和同层比)
  • 多个挂载排序分组组件的预设体之间,通过修改排序索引号来决定前后顺序
八、Sprite Atlas 制作图集

​ 打图集的目的就是减少 DrawCall,提高性能

​ 在工程设置面板中打开功能,Edit --> Project Setting --> Editor,选择 Sprite Packer(精灵包装器,可以通过 Unity 自带图集工具生成图集)

关注
打赏
1657823434
查看更多评论
立即登录/注册

微信扫码登录

0.1080s