개발일지

[미니프로젝트] 금쪽이를 찾아라! - 내 코드 복습, 팀 코드 이해

Hwone 2023. 8. 10. 19:48

프로젝트 준비가 완료되고 준비만 남은 시점에서 다시 한번 되짚어보면 좋을 듯 하여 공부해보았다 

 

내 코드 복습 

 카드이미지 삽입

이 기능은 추가 구현은 아니지만 강의내용과 다른 코드로 작성해야해서 생각을 많이 했던 부분이다 
중요 내용만 작성하였다 

gameManager.cs

void Start() 
{
   string[] membersName = {"박희원", "박희원", "고영현", "고영현", "신현주", "신현주", "김준영","김준영"}; 
   List imageNames = new List(); // List를 새로 만들고 
  
   foreach(string name in membersName)
   {
     for(int i = 0; i<2; i++)
        imageNames.Add(name + i.ToString()); //List에 멤버들의 이름에 2개씩 숫자를 맞춰서 넣어주었다
   }
}


첫번째 카드 고르고 5초간 카운트다운 및 뒤집기 

float waitTime = 0.0f; 
bool isFlipping = false; 
const float maxWaitTime = 5.0f; // 상수를 사용하여 코드의 가독성을 높이고 다른 코드에서 변경되지 않도록 수정

public void openCard()
{
   if(GameManager.I.firstCard == null)
   {  
      isFlipping = true; 
   }
}

void Update()
{  
   if(isFlipping == true)
   { 
      waitTime += Time.deltaTime; 
      if(waitTime> maxWaitTime && GameManger.I.secondCard == null)
      { 
         closeCardInvoke(); 
        //GameManger.I.firstCard = null; firstCard를 null일 경우에만 isFlipping 변수를 true로 설정했는데 굳이 null을 또 할 필요가   없다고 생각하여 고침 
      }
   }
}      

void closeCardInvoke()
{
    isFlipping = false;
    waitTime = 0.0f;
    GameManger.I.firstCard = null //카드가 뒤집힐 때 null을 해주는게 더 좋은 방법일것 같다
}

EndingCredit 제작

애니메이션 종료 시점을 알아내기 위해 애니메이션에 이벤트를 만들고 스크립트 파일을 만들어 StartScene으로 넘어가는 함수(public void OnEnterNextScene())를 만들어주었고 Scene 전환이 될 때 게임 종료가 되면 Time.timeScale 이 0이 되어 시간이 멈추는데 그럼 애니메이션 재생이 안되었다 다시 시간이 흐르기 위해 1로 값을 변경해주는 코드를 작성하였다 
그 후 이벤트 만들어둔 곳에 함수 이름을 넣어주었다 () 빼고 이름만 적어주기
*BuildSetting에 현재 Scene이 있는지 확인 필요 

코드를 복습하다보니까 수정할 부분이 보여서 좀 더 나은 코드를 짤 수 있었고 다시 기억을 되새길 수 있었다


다른 팀원들의 추가기능 구현 이해

카드 매칭 성공 시 팀원 이름 출력 

GameManager.cs

failsuccessTxt.GetComponent<SuccessFailTxt>().SetText(firstCardImage.Substring(0,3));

 

내가 카드 이미지를 넣어주는 기능을 담당하였는데 여기서 "이미지 이름을 이름0,이름1 이런 식으로 해주시면 이름이 나오도록 코드 구현 해놨습니다 " 라는 말을 들었던 적이 있었는데 어떻게 하신거지 ? 라는 생각이 들어서 따로 한번 찾아보았던 기억이 있다 
문자열을 잘라주는 Substring을 이용해 구현 하신게 신기하고 또 배웠던 것 같다

- 카드 뒤집기 애니메이션(진짜 카드가 뒤집히는 듯한 애니메이션)
원래 강의에서는 카드의 크기를 줄여서 애니메이션을 만들어서 어떻게 하는지 궁금했는데 그냥 카드가 FlipState일 때 15초에 card의 Rotation.y를 180으로 수정하였다 너무 간단해서 놀랐다

그리고 코드 이외에도 팀장님이 Title이미지와 UI를 꾸며주셨는데 우리가 만들고 있는 게임 분위기에 잘 어울렸다