using UnityEngine;
[ExecuteAlways]
public class CardHandLayout : MonoBehaviour
{
public float minOverlap = 30f; // 最小重叠量,防止牌太分散
public float maxOverlap = 100f; // 最大重叠量,防止牌完全覆盖
void Update()
{
int count = transform.childCount;
if (count == 0) return;
RectTransform parent = GetComponent<RectTransform>();
RectTransform firstCard = transform.GetChild(0) as RectTransform;
float parentWidth = parent.rect.width;
float cardWidth = firstCard.rect.width;
float overlap = (parentWidth - cardWidth) / (count - 1);
// 限制在合理范围
overlap = Mathf.Clamp(overlap, minOverlap, maxOverlap);
for (int i = 0; i < count; i++)
{
RectTransform child = transform.GetChild(i) as RectTransform;
child.anchoredPosition = new Vector2(i * overlap, 0);
}
}
}

