Files
Generic/Assets/Scripts/HandController.cs
2025-04-26 21:54:32 +01:00

76 lines
1.8 KiB
C#

using UnityEngine;
using System.Collections.Generic;
public class HandController : MonoBehaviour
{
public static HandController instance;
void Awake()
{
instance = this;
}
public List<Card> heldCards = new List<Card>();
public Transform minPos, maxPos;
public List<Vector3> cardPositions = new List<Vector3>();
// Start is called once before the first execution of Update after the MonoBehaviour is created
void Start()
{
SetCardPositionsInHand();
}
// Update is called once per frame
void Update()
{
}
public void SetCardPositionsInHand()
{
cardPositions.Clear();
Vector3 distanceBetweenPoints = Vector3.zero;
if(heldCards.Count > 1)
{
distanceBetweenPoints = (maxPos.position - minPos.position) / (heldCards.Count - 1);
}
for(int i = 0; i < heldCards.Count; i++)
{
cardPositions.Add(minPos.position + (distanceBetweenPoints * i));
//heldCards[i].transform.position = cardPositions[i];
//heldCards[i].transform.rotation = minPos.rotation;
heldCards[i].MoveToPoint(cardPositions[i], minPos.rotation);
heldCards[i].inHand = true;
heldCards[i].handPosition = i;
}
}
public void RemoveCardFromHand(Card cardToRemove)
{
if (heldCards[cardToRemove.handPosition] == cardToRemove)
{
heldCards.RemoveAt(cardToRemove.handPosition);
}
else
{
Debug.LogError("Card at position " + cardToRemove.handPosition + " is not the card being removed from the hand.");
}
SetCardPositionsInHand();
}
public void AddCardToHand(Card cardToAdd)
{
heldCards.Add(cardToAdd);
SetCardPositionsInHand();
}
}