Unity) Find Party Parrot (完)
안녕하세요 뱁새입니다 (۶•<•)۶❗️
오늘은 카드에 애니메이션을 입히는 과정과
카드를 뒤집고 매칭하는 과정에 대해 정리해볼 예정입니다
이전 과정을 보고 싶으시다면 Find Party Parrot (1) / Find Party Parrot (2)을 클릭해주세요❗️
그럼 가봅쉬다❗️
첫 번째, 카드 랜덤 배치
1. 카드들을 랜덤하게 배치해주기 위해 리스트를 만들고
리스트 아래에 위와 같은 코드를 작성해주었습니다
이 코드는 parrots를 해당 범위 내에서 랜덤하게 정렬해달라는 의미를 가져요!
2. parrot 이미지를 코드로 지정하기 위해 Images 폴더 내 있는 이미지들을 Resources 폴더로 옮겨주었습니다
3. 코드로 지정한 이미지들을 가져오기 위해 위와 같은 코드를 작성해주었는데요
여기서 string parrotName = "parrot" + parrots[i].ToString(); 은 이미지 이름을 만드는 것,
newCard.transform.Find("front").GetComponent<SpriteRenderer>().sprite = 은 새 카드 아래 front를 찾아 sprite를 변경하는 것,
Resources.Load<Sprite>(parrotName); 은 Resources 폴더에 있는 parrotName을 가져오는 것을 의미한답니다
4. Unity로 돌아와 Prefab에서 front는 활성화, back은 비활성화를 해둔 뒤 실행을 해보면
이미지들이 랜덤하게 배치가 된 것을 확인할 수 있습니다
근데 이미지 위치가 중구난방이네 쉬이벌.. ㅋㅋ
두 번째, 카드 애니메이션 적용
이번 게임에서 카드에 적용해줄 애니메이션은 두 가지인데
하나는 카드가 까딱거리는 애니메이션
또 하나는 카드를 눌렀을 때 카드가 작아지는 애니메이션입니다
한 번 적용시켜볼까요?
1. 카드가 까딱거리는 기본 애니메이션을 만들어준 후 Prefabs 내 폴더에 있는 Card에 붙여넣고
2. Animation 편집기를 열어 카드의 rotation z좌표를 조정해주었습니다
3. 카드를 눌렀을 때 카드의 크기가 작아지는 flip 애니메이션을 만든 후 Card에 붙여넣고
4. Scale의 x, y좌표를 조정해주었습니다
5. 두 가지 애니메이션을 어느 조건에서 발동시킬 것인지를 관리하기 위해 컨트롤러에서 쌍방향 transition을 만든 후
각 transition에 대해 has exit time에 체크 해제하고, transition duration을 0으로 변경해주었습니다
6. 이후 각각의 transition에 파라미터 조건을 붙여주었는데요
idle ⇒ flip : bool이 true 가 되면 발동하게
flip ⇒ idle : bool이 false 가 되면 발동하게끔 하였습니다
세 번째, 카드 뒤집기
위에서 만든 애니메이션이 정상적으로 작동하기 위해서는 cs가 필요하므로 card.cs를 만드는 것으로 시작해볼게요
1. Card에 button 요소를 추가해주고
2. card.cs에서 카드를 클릭하면 front가 보이게 코드를 작성해주었습니다
3. Unity로 돌아와 On Click에 openCard 함수를 적용시켜주고
4. public Animator anim;과 anim.SetBool("isOpen", true);를 추가 작성해 애니메이션이 적용되도록 하였습니다
5. 실행해보면 카드가 정상적으로 뒤집어지는 것을 확인할 수 있습니다
네 번째, 카드 매칭하기
카드를 매칭하기 위해서는 gameManager가 첫 번째 카드의 이름을 갖고 있다가 두 번째 카드의 이름과 일치하는지 확인해야 합니다
1. 우선 card.cs에서 gameManager를 불러올 수 있도록 싱글톤 처리를 해주었습니다
2. 이후 매칭 로직 함수를 만들어두었습니다
3. 그리고 card.cs에서 openCard를 했을 때 firstCard가 공란일 경우 I가 firstCard가 되게
firstCard가 공란이 아닐 경우 I가 secondCard가 되도록 코드를 작성해주었습니다
4. gameManager.cs에서 isMatched 함수를 위와 같이 작성해
첫 번째 카드의 이름이 두 번째 카드의 이름과 같을 경우 "굿" 이 출력되게
같지 않을 경우 "우우" 가 출력되게 하였습니다
그리고 매칭이 끝나면 카드 이름을 비우도록 하였습니다
5. 확인해보니 두 카드가 서로 달라 "우우"가 출력되었군요
6. 그런데 아직 카드 매치 후 다시 뒤집는 로직을 만들지 않았기 때문에 card.cs에 위와 같이 네 가지 함수를 작성해주고
7. gameManager.cs에서 firstCard.GetComponent<card>().destroyCard()를 작성해
firstCard에 붙어있는 card.cs에서 destoryCard를 부를 수 있도록 하였습니다
다섯 번째, 이번 과정에서의 완성본
실행해보면? 카드 애니메이션부터 카드 매칭까지 모든 것이 성공적으로 구현되었네요!
이궈궈던 ㅋㅋ
이렇게 Find Party Parrot을 만드는 과정이 모두 끝이 났습니다❗
반복문부터 리스트 그리고 이미지 코드화 등등 꽤나 다양한 것들을 배우고 적용해보면서
한 층 더 성장한 것 같아 기쁘네요❗️
근데 요즘 유니티만 달려서 프론트엔드 다 까먹어버린
아아..
그럼 다음 개발 일지에서 뵈어요❗️
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
1컷 48은 뭐 좆같지만 넘어가더라도 2컷 44 3컷 42? 이건 도무지 인정 못한다
-
얼또기 2
얼리 또리 기상
-
그 과목 못하는사람이라는뜻임?
-
수능친게 엊그제 같은데
-
현역이 정시로 3
부경전충 문과 간거면 잘 간거임?
-
여캐일러 투척 11
3일차(?)
-
홀로 보내게 생겼구만...
-
패스 반뗑할분 0
제가 구매햇어요!
-
졸린기상 5일차 1
오늘도 힘내봅세
-
탐구 하나는 생1할건데 나머지 하나를 못정하겠습니다 투포좀요
-
그릇 새로 삼 0
오늘부터 1일1컵라면 하기로 했다
-
연고대 0
07이고 현재 내신 2점대 초 정도인데 정시로 갈거여서 기말부터 버리려고요 생기부도...
-
아무 치대나 가능할까요..?
-
공부좀 불안한 상태로 그만하고 싶음
-
제 주변 의반 친구들은 그냥 안넣고 성적표 기다리길래.. 다른분들은 어떤가요
-
숭배해라 대 르 비
-
ㅈㄱㄴ
-
블부이 기상 4
졸려
-
기상 완료 오늘도 ㅍㅇㅌ
-
의대에서도 본1 내신망하면 휴학하고 내신 리셋했는데 1
고1도 내신 망하면 그냥 리세마라 하는게 재수 삼수 하는것보다 백배는 나아보임...
-
킹받네 지도 내년에 고3이면서 ㅠ
-
오르새쌤 인강 0
커리큘럼 영상이랑 문풀 강의 살짝 보고 맘에 들어서 수강하려는데 듣기로는 인강...
-
킹 덕 여 대
-
의사증원에 반대하는 국민들에게 개돼지같다고 하는게 잘못된 이유 0
개돼지가 조스로 보임?
-
내가 국민들의 생명이 달린 응급실을 버리고 해외여행 가는 이유 0
우리 뽀삐 산후조리 해야함
-
국어 주간지 0
고3 평가원 모고치면 2정도는 나오다가 고중에 아예 공부를 놔버려서 3~4 정도...
-
기차지나간다 2
부지런행
-
생투 0
지투로 바꿀까요 말까요 근데 염기조성 코돈이 일년 더한다고 느는 유형은 맞음??
-
ㅇㅂㄱ 2
또 자고왔어요
-
국숭 이상은 꿈도 안 꾸고 있는데 혹시 이 정도 성적이면 어디 정도 갈 수 있을까요...
-
미치겟네 5
왜잠이안오지
-
의사들이 무슨 감사한 의사 명단을 만들어서 교묘하게 사직, 휴학에 동참 안하는 분들...
-
야식 먹을까 1
그보다 아침에 가까운데 벼고프당
-
안자는 사람 3
ㅇㅇ
-
낙서 재밌음 1
공부보다 백배
-
봐주셔서 감사합니다.
-
기하 사탐러라 미적, 물리를 안했는데 산업공학과에서 학점 따기 많이 버거운가여..?
-
아이고 사람살려
-
잔다 2
르크
-
시대는 6%라 하고 메가는 13%라는데 차이가 너무 심한거 아닌가
-
수능도 5과목인데 비슷한거 아님?
-
기차지나간당 11
부지런행
-
잘 잤당 2
일찍 일어나쏭
-
이거 치 가능? 7
어디든 제발….
-
이지영 풀커리 타는건 비추인가요?? 대성 끊을거라 임정환 이지영 중에 고민중이에요
-
왜내가하면그맛이안나지
-
의뱃 색도 바꿔주면 안되나??
-
얼버잠 1
다들 굿밤
-
지금 굳이 자려고 애쓸 필요는 없는듯
-
캬 4
ㅁㅌㅊ?
흐흐 항상 감사합미다!
뱁새바보
오 재밌다
뱁뱁이
다음게임나올때까지숨참음
진짜 똑똑하신듯