71 lines
2.9 KiB
C#
71 lines
2.9 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using DG.Tweening;
|
|
using UnityEngine;
|
|
|
|
public class Card : MonoBehaviour
|
|
{
|
|
// ========= serializeField ========
|
|
[SerializeField] private int ID;
|
|
[SerializeField] private int instanceID;
|
|
|
|
// ========= private =========
|
|
private Collider2D areaCollider2D;
|
|
private TurnManagerSingleton turnSingleton;
|
|
private SpriteRenderer spriteRender;
|
|
private Canvas canvas;
|
|
private SpriteRenderer cardBackgroundUI;
|
|
|
|
|
|
public void SetAreaCollider2D(Collider2D collider2) => areaCollider2D = collider2;
|
|
public void UnSetAreaCollider2D() => areaCollider2D = null;
|
|
|
|
public void SetupCard(int id)
|
|
{
|
|
if (!turnSingleton) turnSingleton = TurnManagerSingleton.Instance;
|
|
if (!turnSingleton.CompareManagerState(TurnManager.TurnManagerStateEnum.SETUP_STATE)) return;
|
|
if (!spriteRender) spriteRender = GetComponent<SpriteRenderer>();
|
|
if (!cardBackgroundUI) cardBackgroundUI = transform.GetChild(0).GetComponent<SpriteRenderer>();
|
|
if (!canvas) canvas = transform.GetChild(1).GetComponent<Canvas>();
|
|
instanceID = id;
|
|
}
|
|
|
|
public Sequence GetTweenMoveCardGoDeck(Vector3 doGoPosition, Quaternion doGoRotation, Vector3 doGoScale, float doGoDuration)
|
|
{
|
|
transform.localScale = Vector3.zero;
|
|
gameObject.SetActive(true);
|
|
Sequence seq = DOTween.Sequence();
|
|
seq.Pause();
|
|
seq.Join(transform.DOMove(doGoPosition, doGoDuration));
|
|
seq.Join(transform.DOScale(doGoScale, doGoDuration));
|
|
seq.Join(transform.DORotateQuaternion(doGoRotation, doGoDuration));
|
|
return seq;
|
|
}
|
|
|
|
|
|
// public void MoveCard(MoveMessage moveMessage)
|
|
// {
|
|
// if (!turnSingleton.CompareManagerState(TurnManager.TurnManagerStateEnum.SELF_STATE_START)) return;
|
|
// Vector3 movePosition = moveMessage.GO_POSITION;
|
|
// Quaternion doRotation = moveMessage.GO_ROTATION;
|
|
// Vector3 doScale = moveMessage.GO_SCALE;
|
|
// float duration = moveMessage.DURATION;
|
|
// int layerSortOrder = moveMessage.GO_LAYER_SORT_ORDER;
|
|
// movePosition.z = -layerSortOrder * 0.5f;
|
|
// spriteRender.sortingOrder = layerSortOrder * 3;
|
|
// cardBackgroundUI.sortingOrder = layerSortOrder * 3 - 1;
|
|
// canvas.sortingOrder = layerSortOrder * 3 + 1;
|
|
// Sequence seq = DOTween.Sequence();
|
|
// seq.Join(transform.DOMove(movePosition, duration));
|
|
// seq.Join(transform.DOScale(doScale, duration));
|
|
// seq.Join(transform.DORotateQuaternion(doRotation, duration));
|
|
// seq.OnComplete(() => // 记录默认数值
|
|
// {
|
|
// cardTransform.POSITION = movePosition;
|
|
// cardTransform.ROTATION = doRotation;
|
|
// cardTransform.SCALE = transform.localScale;
|
|
// cardTransform.LAYER_SORT_ORDER = layerSortOrder;
|
|
// });
|
|
// }
|
|
} |