Sprite和SpriteRenderer 下

文章介绍了Unity中的SpriteRenderer组件用于显示和操作2D精灵的功能,包括更换精灵、叠加颜色、翻转精灵、调整排序层以及排序值。通过SortingLayer和OrderinLayer属性,可以实现2D场景中的对象层级控制,使游戏逻辑更符合视觉预期。同时,文章提到了通过代码动态修改这些属性的方法。
摘要由CSDN通过智能技术生成

SpriteRenderer组件(精灵渲染器)

---一个用来显示Sprite(精灵)的组件

 

里面有很多选项,我们先看这几个:

1.Sprite(精灵):表示当前显示Sprite(精灵的)组件。

如果我们想把一个精灵换成另一个精灵(一个水果换成另一个水果)的话,需要先删除场景中的精灵,再把项目里的精灵拖到场景中,这样是不是很麻烦呢?有没有简便的方法呢?当然有啊,不然我为什么要写这么多话?

点击精灵的选项进行更换就行了!

 

西瓜成功变成番茄。

 

 

还有一种方法,可以直接拽过去:

 

2.Color:给Sprite(精灵)叠加的颜色。

只是叠加一个颜色,并不是更改颜色,注意!不是更改颜色!

3.Flip:翻转。

翻转精灵的方向。

4.SortingLayer:排序层。

当我们做2D游戏的时候,建筑物或者背景图一般情况下,都会在玩家的背后,所以,我们肯定要让玩家操控的人物挡住建筑物,这样玩家才能看见自己干了什么,怎么做才可以呢?

假设西红柿是任务,西瓜是建筑物,这样肯定不行。

 

改变的方法有两种:

1.改成3D场景,通过Z轴改变:

 

就可以变成我们预想的这样:

 

但是这样改很烦,一但物体多了之后,就需要一个一个去改;而且我们这个游戏是2D的,修改Z轴显然不合理。

所以我们需要用到SortingLayer(排序图层)选项

先添加

 

 

这里这个命名的是番茄

 

这里上面命名的就是西瓜。

 

Layer越往下,优先级越高,就离我们的屏幕越近。

5.OrderinLayer:排序值。

这里的数值又是什么呢?先说结论:修改同级的优先级,什么意思呢?看图吧:

 

 

这两个的图层都是番茄吧,相同图层的顺序,数值越高的离屏幕越近,相反数值越低的,离屏幕越远。

也可以在代码里面修改:

 

 

这样游戏运行后就会变成,精灵3--橙子的模样。

public class L3_2Demo : MonoBehaviour
{
    private SpriteRenderer SR;
    public Sprite sp;
    
    void Start()
    {
        SR = GetComponent<SpriteRenderer>(); //获取游戏物体身上的组件给 SR
        SR.sprite = sp;
        SR.color = Color.black;
​
    }
​
}

                
Unity 中,`SpriteRenderer` 是用于渲染 2D 精灵(Sprite)的组件。它可以将指定的 Sprite 显示在场景中,并支持一些常见的渲染设置,比如颜色、透明度、层级等。 `SpriteRenderer` 组件可以在 Unity 的编辑器中通过 `Add Component` 菜单添加到游戏对象上。要使用 `SpriteRenderer` 渲染精灵,需要将 Sprite 赋值给其 `sprite` 属性。 以下是 `SpriteRenderer` 常见的属性: - `sprite`:要渲染的精灵。 - `color`:精灵的颜色。 - `flipX` 和 `flipY`:精灵是否水平/垂直翻转。 - `sortingLayerName` 和 `sortingOrder`:精灵的层级和排序。 - `material`:精灵使用的材质。 `SpriteRenderer` 组件还可以通过设置 `Sorting Layer` 和 `Order in Layer` 属性来控制精灵的层级和排序。可以在 `Edit` -> `Project Settings` -> `Tags and Layers` 中添加自定义的 Sorting Layer。 例如,以下代码可以在场景中创建一个渲染指定 Sprite 的精灵: ```csharp using UnityEngine; public class SpriteRendererDemo : MonoBehaviour { public Sprite spriteToRender; void Start() { // 创建一个新的游戏对象 GameObject spriteObject = new GameObject("Sprite"); // 添加 SpriteRenderer 组件 SpriteRenderer renderer = spriteObject.AddComponent<SpriteRenderer>(); // 设置要渲染的精灵 renderer.sprite = spriteToRender; // 设置精灵的颜色 renderer.color = Color.white; // 设置精灵的层级和排序 renderer.sortingLayerName = "Foreground"; renderer.sortingOrder = 0; } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值