Unity 如何通过2D Sprite切割一张图为多张

1、理解

在一些2D游戏开发中,我们常常使用2D Sprite把一张大图切割成多个小图使用。

这样做有不少好处,首先,通过精准使用小图,能够一定程度上节省内存,提高渲染性能。

其次把同类的小图做成一张大图在切割使用会更方便我们进行对资源的管理。

再者,在2D游戏中通过使用多图放在大图中做切割使用,在做Sprite帧动画、碰撞检测、UI布局上会更灵活。

2、实现

(1)在【Package Manager】中搜索【2D Sprite】并安装。

(2)在Assets/Resources路径下导入大图图片素材:

 

 (3)修改大图设置

其中,主要修改【Texture Type 】为【Sprite(2D and UI)】类型,【Sprite Mode】模式为【Multiple】模式,勾选可读写【Read/Write】选项,点击【Apply】应用。

(4)点击设置中的【Sprite Editor】,进入切片页面进行相关配置与切片。

点击【Slice】我们会看到下图所示配置,【Type】为切割的类型,有图中所示4种模式,一般使用第二个网格切割或第三个行列切割。

我这里使用第三种,并设置为2列一行,我们会看到图中已通过红框把图片分成了2小块。

点击【Slice】->【Apply】切割-应用。

我们会看到贴图已经切成两块并且在贴图路径下已生成两个小图【aa_0】和【aa_1】

 

(5)获取小图的方法。

 获取小图的方法是:Resources.LoadAll<Sprite>(string path);

如本案例通过上面方法获取切割出的精灵赋值给不同的Image中:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class spriteCon : MonoBehaviour
{
    public Image img1;
    public Image img2;

    // Start is called before the first frame update
    void Start()
    {
        Sprite[] Sprs = Resources.LoadAll<Sprite>("aa");
        img1.sprite = Sprs[0];
        img2.sprite = Sprs[1];
        img1.SetNativeSize();
        img2.SetNativeSize();
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

最终我们看到成功获得切割小图并赋值到Image中,如下图:

  • 17
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不在同一频道上的呆子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值