This commit is contained in:
mnjnhuang 2025-11-27 14:28:49 +08:00
parent 836d12e381
commit 92ec506123
3 changed files with 15 additions and 29 deletions

View File

@ -71,24 +71,18 @@ public class Card : MonoBehaviour
} }
private void OnMouseUp() private void OnMouseUp()
{
if (!isCardDragAnimationPlayed)
reset_card_status();
else
{ {
Sequence seq = DOTween.Sequence(); Sequence seq = DOTween.Sequence();
seq.Join(transform.DOMove(cardTransformFromHand.POSITION, cardAnimationDuration)); seq.Join(transform.DOMove(cardTransformFromHand.POSITION, cardAnimationDuration));
seq.Join(transform.DOScale(cardTransformFromHand.SCALE, cardAnimationDuration)); seq.Join(transform.DOScale(cardTransformFromHand.SCALE, cardAnimationDuration));
seq.Join(transform.DORotateQuaternion(cardTransformFromHand.ROTATION, cardAnimationDuration)); seq.Join(transform.DORotateQuaternion(cardTransformFromHand.ROTATION, cardAnimationDuration));
seq.onComplete = reset_card_status; seq.onComplete = reset_card_status;
}
return; return;
void reset_card_status() void reset_card_status()
{ {
cardState = CardHandleState.WAIT; cardState = CardHandleState.WAIT;
isCardDragAnimationPlayed = false; // isCardDragAnimationPlayed = false;
turnSingleton.SetCardManagerLockOneCardBeingUsed(false); // 解锁 turnSingleton.SetCardManagerLockOneCardBeingUsed(false); // 解锁
if (turnSingleton.GetNeedDebugLog()) turnSingleton.PrintMsg("Card", instanceID.ToString(), "卡牌已返回手牌"); if (turnSingleton.GetNeedDebugLog()) turnSingleton.PrintMsg("Card", instanceID.ToString(), "卡牌已返回手牌");
} }
@ -97,27 +91,19 @@ public class Card : MonoBehaviour
private void OnMouseDrag() private void OnMouseDrag()
{ {
if (cardState != CardHandleState.DRAG) return; if (cardState != CardHandleState.DRAG) return;
if (!turnSingleton.CompareManagerState(TurnManager.TurnManagerStateEnum.STAY_SELF_TURN)) return;
Vector3 mousePosition = mainCamera.ScreenToWorldPoint(Input.mousePosition); Vector3 mousePosition = mainCamera.ScreenToWorldPoint(Input.mousePosition);
bool isInsideHandCardArea = areaCollider2D.OverlapPoint(mousePosition); bool isInsideHandCardArea = areaCollider2D.OverlapPoint(mousePosition);
if (isInsideHandCardArea) if (isInsideHandCardArea)
{ {
if (!isCardDragAnimationPlayed) return; transform.localScale = cardTransformFromHand.SCALE;
Sequence seq = DOTween.Sequence(); transform.rotation = cardTransformFromHand.ROTATION;
seq.Join(transform.DOMove(cardTransformFromHand.POSITION, cardAnimationDuration)); transform.position = cardTransformFromHand.POSITION;
seq.Join(transform.DOScale(cardTransformFromHand.SCALE, cardAnimationDuration));
seq.Join(transform.DORotateQuaternion(cardTransformFromHand.ROTATION, cardAnimationDuration));
isCardDragAnimationPlayed = false;
} }
else else
{ {
if (!isCardDragAnimationPlayed) transform.localScale = cardTransformFromHand.SCALE / 3f;
{ transform.rotation = Quaternion.identity;
Sequence seq = DOTween.Sequence();
seq.Join(transform.DOScale(cardTransformFromHand.SCALE / 3f, cardAnimationDuration));
seq.Join(transform.DORotateQuaternion(Quaternion.identity, cardAnimationDuration));
isCardDragAnimationPlayed = true;
}
mousePosition.z = 0f; mousePosition.z = 0f;
transform.position = mousePosition; transform.position = mousePosition;
if (turnSingleton.GetNeedDebugLog()) turnSingleton.PrintMsg("Card", instanceID.ToString(), "卡牌正在被拖拽"); if (turnSingleton.GetNeedDebugLog()) turnSingleton.PrintMsg("Card", instanceID.ToString(), "卡牌正在被拖拽");
@ -148,6 +134,7 @@ public class Card : MonoBehaviour
UnSetAreaCollider2D(); UnSetAreaCollider2D();
transform.parent = dropCardChildContainer; transform.parent = dropCardChildContainer;
transform.localPosition = Vector3.zero; transform.localPosition = Vector3.zero;
gameObject.SetActive(false);
}); });
return seq; return seq;
} }

View File

@ -100,7 +100,6 @@ public class TurnCardManager : MonoBehaviour
Transform card = dropCardContainer.GetChild(i); Transform card = dropCardContainer.GetChild(i);
card.SetParent(cardDeckContainer); card.SetParent(cardDeckContainer);
card.localPosition = Vector3.zero; card.localPosition = Vector3.zero;
card.gameObject.SetActive(false);
} }
} }

View File

@ -50,7 +50,7 @@ public class TurnManager : MonoBehaviour
enemyManager = GetComponent<TurnEnemyManager>(); enemyManager = GetComponent<TurnEnemyManager>();
TurnManagerEvent.OnTurnManagerStaySelfTurn += TurnManagerStaySelfTurn; TurnManagerEvent.OnTurnManagerStaySelfTurn += TurnManagerStaySelfTurn;
TurnManagerEvent.OnTurnManagerEndSelfTurn += TurnManagerEndSelfTurn; TurnManagerEvent.OnTurnManagerEndSelfTurn += TurnManagerEndSelfTurn;
TurnManagerEvent.OnTurnManagerEnterEnemyTurn += TurnManagerShuffleCard; // 弃牌以后判断是否需要洗牌再进入敌方回合 TurnManagerEvent.OnTurnManagerEnterEnemyTurn += TurnManagerBeforeEndSelfTurn; // 弃牌以后判断是否需要洗牌再进入敌方回合
TurnManagerEvent.OnTurnManagerExitEnemyTurn += TurnManagerEndEnemyTurn; TurnManagerEvent.OnTurnManagerExitEnemyTurn += TurnManagerEndEnemyTurn;
SetupTurnManager(); SetupTurnManager();
} }
@ -143,7 +143,7 @@ public class TurnManager : MonoBehaviour
TurnManagerEnterSelfTurn(cardPileList.Count == 0 ? 6 : 5); TurnManagerEnterSelfTurn(cardPileList.Count == 0 ? 6 : 5);
} }
private void TurnManagerShuffleCard() private void TurnManagerBeforeEndSelfTurn()
{ {
if (cardDeckList.Count != 0) if (cardDeckList.Count != 0)
{ {