U3L4——Sprite Renderer

我们目前已经学习了如何设置导入的图片
如果我们想将导入的图片用于2D游戏开发,需要将图片类型设置为 Sprite精灵类型

我们还学习了使用Sprite Editor精灵图片编辑器来对精灵图片进行编辑

但是我们还没有真正的使用这些图片
这节课我们就来讲解Sprite精灵图片的使用

本章代码关键字

1
2
3
4
SpriteRenderer            //Sprite渲染器类
Sprite //Sprite类
spriteRenderer.sprite //Sprite渲染器类的Sprite属性,可以修改其显示的Sprite图片
//所有的SpriteRenderer上的参数都可以通过代码来修改

Sprite Renderer

顾名思义,Sprite Renderer是精灵渲染器
所有2D游戏中游戏资源(除UI外)都是通过Sprite Renderer让我们看到的
它是2D游戏开发中的一个极为重要的组件

主要掌握参数含义 和 如何代码控制
其中重要的参数是

  1. 绘制模式 控制缩放规则
  2. 遮罩相关
  3. 层级相关

2D对象创建

  1. 直接拖入Sprite图片
  2. 右键创建
  3. 空物体添加脚本

2D对象的本质就是一个空物体附加了一个Sprite Renderer控件

参数讲解

image

  • Sprite: 渲染的精灵图片

  • Color: 定义着色,一般没有特殊需求不会修改
    可以用于受伤时闪烁等

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

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

    • image

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

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

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

      • image
      • Continuous:当尺寸变化时,中间部分将均匀平铺
      • Adaptive:当尺寸变化时,类似Simple模式,当更改尺寸达到Stretch Value时,中间才开始平铺
  • Mask Interaction:与精灵遮罩交互时的方式

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

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

  • Additional Settings:高级设置

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

代码控制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using UnityEngine;

public class Lesson10 : MonoBehaviour
{
void Start()
{
GameObject obj = new GameObject();
SpriteRenderer sr = obj.AddComponent<SpriteRenderer>();
//动态的改变图片
sr.sprite = Resources.Load<Sprite>("dead1");

//动态的加载 图集中的图
Sprite[] sprs = Resources.LoadAll<Sprite>("RobotBoyIdleSprite");
sr.sprite = sprs[10];
//可以调用Sprite类的成员
print(sprs[10].name);
}
}