You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.3 KiB
C#
55 lines
1.3 KiB
C#
3 months ago
|
using System;
|
||
|
using System.Collections.Generic;
|
||
|
using System.Linq;
|
||
|
using DG.Tweening;
|
||
|
using MPUIKIT;
|
||
|
using UnityEngine;
|
||
|
|
||
|
namespace D2D.UI
|
||
|
{
|
||
|
public class RoundnessUIAnim : UIAnim
|
||
|
{
|
||
|
[SerializeField] private float to = 12;
|
||
|
[SerializeField] private List<MPImage> targets;
|
||
|
|
||
|
private Vector4 originalRadius;
|
||
|
|
||
|
private void OnDrawGizmosSelected()
|
||
|
{
|
||
|
if (targets == null || targets.Count == 0)
|
||
|
targets = GetComponentsInChildren<MPImage>().ToList();
|
||
|
}
|
||
|
|
||
|
private void Awake()
|
||
|
{
|
||
|
originalRadius = targets[0].Rectangle.CornerRadius;
|
||
|
}
|
||
|
|
||
|
private void Animate(float endValue)
|
||
|
{
|
||
|
foreach (var t in targets)
|
||
|
{
|
||
|
DOTween.To(
|
||
|
() => t.Rectangle.CornerRadius.x,
|
||
|
x =>
|
||
|
{
|
||
|
var rect = t.Rectangle;
|
||
|
rect.CornerRadius = new Vector4(x, x, x, x);
|
||
|
t.Rectangle = rect;
|
||
|
},
|
||
|
endValue,
|
||
|
duration);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
protected override void Positive()
|
||
|
{
|
||
|
Animate(to);
|
||
|
}
|
||
|
|
||
|
protected override void Negative()
|
||
|
{
|
||
|
Animate(originalRadius.x);
|
||
|
}
|
||
|
}
|
||
|
}
|