少年修仙传客户端代码仓库
client_linchunjie
2018-11-02 b3925060e1fc26864e835b5fa9ab387f8014f320
4398 【前端】【1.2】添加翻转图片组件
2个文件已添加
62 ■■■■■ 已修改文件
UI/Decorate/Graph/FlipImage.cs 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI/Decorate/Graph/FlipImage.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI/Decorate/Graph/FlipImage.cs
New file
@@ -0,0 +1,50 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
[DisallowMultipleComponent]
[RequireComponent(typeof(Image))]
public class FlipImage : BaseMeshEffect
{
    [SerializeField] bool flipHorizontal = false;
    [SerializeField] bool flipVertical = false;
    public override void ModifyMesh(VertexHelper vh)
    {
        if (!IsActive() || vh.currentVertCount == 0)
        {
            return;
        }
        var vertexs = new List<UIVertex>();
        vh.GetUIVertexStream(vertexs);
        if (flipHorizontal || flipVertical)
        {
            Flip(vertexs);
        }
        vh.Clear();
        vh.AddUIVertexTriangleStream(vertexs);
    }
    void Flip(List<UIVertex> vertexs)
    {
        var rect = graphic.GetPixelAdjustedRect();
        var count = vertexs.Count;
        for (int i = 0; i < count; i++)
        {
            var vertex = vertexs[i];
            var position = vertex.position;
            if (flipHorizontal)
            {
                position.x = -position.x + rect.max.x + rect.min.x;
            }
            if (flipVertical)
            {
                position.y = -position.y + rect.max.y + rect.min.y;
            }
            vertex.position = position;
            vertexs[i] = vertex;
        }
    }
}
UI/Decorate/Graph/FlipImage.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: d01ab0c7706729e48ac25411506e3a18
timeCreated: 1541129037
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant: