
效果图如上,分割各种多边形图,具体操作是通过修改uv过滤显示,具体代码如下:
using System;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine;
using UnityEngine.UI;
public class MeshClipBase : MaskableGraphic, ILayoutElement, ICanvasRaycastFilter
{
{
[SerializeField]
Sprite m_Sprite;
public Sprite sprite
{
get { return m_Sprite; }
set
{
m_Sprite = value;
SetAllDirty();
}
}
Sprite m_Sprite;
public Sprite sprite
{
get { return m_Sprite; }
set
{
m_Sprite = value;
SetAllDirty();
}
}
[NonSerialized]
Sprite m_OverrirdeSprite;
Sprite m_OverrirdeSprite;
public Sprite overrideSprite
{
get { return m_OverrirdeSprite==null?sprite:m_OverrirdeSprite; }
set
{
m_OverrirdeSprite = value;
SetAllDirty();
}
}
{
get { return m_OverrirdeSprite==null?sprite:m_OverrirdeSprite; }
set
{
m_OverrirdeSprite = value;
SetAllDirty();
}
}
public float alphaThreshold = 1;
public override Texture mainTexture
{
get
{
if (overrideSprite != null)
{
return overrideSprite.texture;
}
else if (material != null && material.mainTexture != null)
{
return material.mainTexture;
}
else
{
return s_WhiteTexture;
}
}
}
{
get
{
if (overrideSprite != null)
{
return overrideSprite.texture;
}
else if (material != null && material.mainTexture != null)
{
return material.mainTexture;
}
else
{
return s_WhiteTexture;
}
}
}
public float pixelsPerUnit
{
get
{
float spritePixelsPerUnit = 100;
float ref
{
get
{
float spritePixelsPerUnit = 100;
float ref