95 lines
3.0 KiB
C#
95 lines
3.0 KiB
C#
using System.Threading.Tasks;
|
|
using Capsule.Reward;
|
|
using DG.Tweening;
|
|
using UnityEngine;
|
|
|
|
namespace Capsule.Pack.UIPanel
|
|
{
|
|
public class CapsuleRewardCell : AbstractCapsuleRewardCell
|
|
{
|
|
private GameObject bg1;
|
|
private GameObject bg2;
|
|
private GameObject bg3;
|
|
[SerializeField] private Vector2 startPos;
|
|
[SerializeField] private Vector2 endPos;
|
|
[SerializeField] private float time;
|
|
[SerializeField] private Ease easeCurve;
|
|
[SerializeField] private float startAlpha=0;
|
|
private Rigidbody2D _rigidbody2D;
|
|
public Rigidbody2D Rigidbody2D=>_rigidbody2D??=GetComponent<Rigidbody2D>();
|
|
private CanvasGroup _canvasGroup;
|
|
private CanvasGroup CanvasGroup=>_canvasGroup??=gameObject.GetOrAddComponent<CanvasGroup>();
|
|
private CapsuleCollider2D _collider;
|
|
public CapsuleCollider2D Collider=>_collider??=GetComponent<CapsuleCollider2D>();
|
|
public RectTransform RectTransform=>(RectTransform)transform;
|
|
protected override void Awake()
|
|
{
|
|
base.Awake();
|
|
bg1 = gameObject.FindChildGameObject("bg1");
|
|
bg2 = gameObject.FindChildGameObject("bg2");
|
|
bg3 = gameObject.FindChildGameObject("bg3");
|
|
}
|
|
public void Init()
|
|
{
|
|
if(CanvasGroup)CanvasGroup.alpha=startAlpha;
|
|
SetCurrentPosByStartPos();
|
|
}
|
|
public async Task PlayEnterAni(float capsuleShowTime)
|
|
{
|
|
RectTransform.DOAnchorPos(endPos, time).SetEase(easeCurve);
|
|
if(CanvasGroup)CanvasGroup.DOFadeAlpha(1, time);
|
|
await Awaiters.Seconds(capsuleShowTime);
|
|
}
|
|
public void PlayEnterAni2()
|
|
{
|
|
Init();
|
|
_=PlayEnterAni(0);
|
|
}
|
|
public override void SetData(ICapsuleReward rewardData)
|
|
{
|
|
_rewardData = rewardData;
|
|
}
|
|
|
|
public override void ShowUI()
|
|
{
|
|
SetRewardItem(_rewardData);
|
|
SetBackground(_rewardData);
|
|
}
|
|
|
|
protected override void SetBackground(ICapsuleReward rewardData)
|
|
{
|
|
bg1?.SetActive(rewardData.Quality == 1);
|
|
bg2?.SetActive(rewardData.Quality == 2);
|
|
bg3?.SetActive(rewardData.Quality == 3);
|
|
}
|
|
|
|
protected override string GetBackgroundSprite(ICapsuleReward reward)
|
|
{
|
|
return string.Empty;
|
|
}
|
|
|
|
[ContextMenu("SetStartPos")]
|
|
private void SetStartPos()
|
|
{
|
|
startPos = RectTransform.anchoredPosition;
|
|
}
|
|
|
|
[ContextMenu("SetEndPos")]
|
|
private void SetEndPos()
|
|
{
|
|
endPos = RectTransform.anchoredPosition;
|
|
}
|
|
|
|
[ContextMenu("SetCurrentPosByStartPos")]
|
|
private void SetCurrentPosByStartPos()
|
|
{
|
|
RectTransform.anchoredPosition = startPos;
|
|
}
|
|
|
|
[ContextMenu("SetCurrentPosByEndPos")]
|
|
private void SetCurrentPosByEndPos()
|
|
{
|
|
RectTransform.anchoredPosition = endPos;
|
|
}
|
|
}
|
|
} |