| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- using System;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- namespace Coffee.UIEffects
- {
- [DisallowMultipleComponent]
- [AddComponentMenu("UI/UIEffects/UIFlip", 102)]
- public class UIFlip : BaseMeshEffect
- {
- [Tooltip("Flip horizontally.")] [SerializeField]
- private bool m_Horizontal = false;
- [Tooltip("Flip vertically.")] [SerializeField]
- private bool m_Veritical = false;
- /// <summary>
- /// Gets or sets a value indicating whether this <see cref="Coffee.UIEffects.UIFlip"/> should be flipped horizontally.
- /// </summary>
- /// <value><c>true</c> if be flipped horizontally; otherwise, <c>false</c>.</value>
- public bool horizontal
- {
- get { return m_Horizontal; }
- set
- {
- if (m_Horizontal == value) return;
- m_Horizontal = value;
- SetEffectParamsDirty();
- }
- }
- /// <summary>
- /// Gets or sets a value indicating whether this <see cref="Coffee.UIEffects.UIFlip"/> should be flipped vertically.
- /// </summary>
- /// <value><c>true</c> if be flipped horizontally; otherwise, <c>false</c>.</value>
- public bool vertical
- {
- get { return m_Veritical; }
- set
- {
- if (m_Veritical == value) return;
- m_Veritical = value;
- SetEffectParamsDirty();
- }
- }
- /// <summary>
- /// Call used to modify mesh.
- /// </summary>
- /// <param name="vh">VertexHelper.</param>
- public override void ModifyMesh(VertexHelper vh, Graphic graphic)
- {
- if (!isActiveAndEnabled) return;
- var vt = default(UIVertex);
- for (var i = 0; i < vh.currentVertCount; i++)
- {
- vh.PopulateUIVertex(ref vt, i);
- var pos = vt.position;
- vt.position = new Vector3(
- m_Horizontal ? -pos.x : pos.x,
- m_Veritical ? -pos.y : pos.y
- );
- vh.SetUIVertex(vt, i);
- }
- }
- }
- }
|