프로젝트 준비가 완료되고 준비만 남은 시점에서 다시 한번 되짚어보면 좋을 듯 하여 공부해보았다
내 코드 복습
카드이미지 삽입
이 기능은 추가 구현은 아니지만 강의내용과 다른 코드로 작성해야해서 생각을 많이 했던 부분이다
중요 내용만 작성하였다
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를 꾸며주셨는데 우리가 만들고 있는 게임 분위기에 잘 어울렸다
'개발일지' 카테고리의 다른 글
[C# 문법 종합반] 3주차 과제 - 스네이크 게임, 블랙잭 (0) | 2023.08.17 |
---|---|
[C#문법종합반] 2주차 과제 - 틱택토 (feat.Console명령어) (0) | 2023.08.15 |
[미니프로젝트] 금쪽이를 찾아라! - 담당 기능 구현 (0) | 2023.08.08 |
[왕초보 유니티] 4주차 - 르탄이를 찾아라 기능 추가 구현 (0) | 2023.08.06 |
[왕초보 유니티] 5주차(완강) (0) | 2023.08.04 |