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

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

View File

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

View File

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