Unity 镜像sprite

为节省资源,美术只需提供一半对称图片,通过Unity编程实现镜像效果。关键点包括理解RectTransform属性,掌握ModifyMesh调用时机,以及利用VertexHelper操作顶点数据,针对Simple和Sliced类型的Sprite进行处理。
摘要由CSDN通过智能技术生成

项目中有使用到了很多对称的图片,于是美术哥为了减少图片占用的大小,提出要程序来将做对称,美术只需要出一半的图,剩余的一半有程序实现对称。参考文章:点击打开链接。 

 自己实现了一版本,将这个组件挂在拥有Image的对象上就可以了,要弄清楚几个点:

1.RectTransform中各项数值的意思

2.ModifyMesh调用时机(UGUI填充了图元数据后,会调用虚函数ModifyMesh给用户修改数据的机会)

3.获取的顶点数据的方法(VertexHelper)

4.Sprite的类型(Simple,Sliced)

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


public class MirrorSprite : BaseMeshEffect
{
    public enum eMirrorType
    {
        eHor,
        eVer,
    }

    [SerializeField]
    private eMirrorType mMirrorType;

    private List<UIVertex> mVerts = new List<UIVertex>();
    private List<int> mIndices = new List<int>();
    private UIVertex mVertex = new UIVertex();

    protected override void Awake()
    {
        mMirror
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值