반응형
배치 아이디어
Board 클래스에서 카드를 생성할 때, 하단부에 생성 되도록 했습니다.
이후에 카드가 배치되어야할 위치를 Card 객체로 전송 후 Card 클래스의 Update 함수에서 해당 위치로 이동하도록 했습니다.
private void Update()
{
Vector3 dir = (cardPosition - gameObject.transform.position);
if (dir.magnitude > 0.1f)
gameObject.transform.position += dir.normalized * 10.0f * Time.deltaTime;
}
자연스러운 카드 이동
카드를 생성할 때, 모든 카드를 한번에 생성하고 보내는건 기획 의도에서 벗어난 것이라 생각했습니다.
이에 간격을 두고 생성되도록 하였고 코루틴 함수를 이용했습니다.
IEnumerator SpawnCard(int[] arr)
{
while(...)
{
...
...
go.transform.position = new Vector2(0, -5);
go.GetComponent<Card>().Setting(arr[i], new Vector2(x, y));
yield return new WaitForSeconds(0.1f);
}
}
카드 뒤집어서 보여주기
모든 카드의 배치를 끝낸 후에 한번에 카드를 뒤집어서 보여줄 수 있도록 생성한 카드를 List에 담고 반복문을 통해
동시에 실행되도록 했습니다.
for (....)
{
Card cd = go.GetComponent<Card>();
cards.Add(cd);
...
...
}
yield return new WaitForSeconds(0.5f);
foreach (Card cd in cards)
cd.StartCard();
적절한 시간에 작동되는 타이머
카드를 보내는 중에도 타이머가 작동하는 것은 맞지 않다고 생각했습니다.
이에 카드를 다 보여주고 난 후에 타이머가 실행되도록 다시 한번 Yield return을 하였고
GameManager의 StartTimer함수를 통해 작동되도록 했습니다.
yield return new WaitForSeconds(2.0f);
GameManager.Instance.StartTimer();
반응형
LIST
'내일배움캠프' 카테고리의 다른 글
LINQ 정리 (0) | 2025.01.27 |
---|---|
틱택톡 C# (0) | 2025.01.25 |
행맨 게임 (0) | 2025.01.16 |
사칙연산간 우선순위 (0) | 2025.01.14 |
Convert와 Parse의 차이점 (0) | 2025.01.14 |