3D이기 때문에 카메라를 정중앙 위로 고정시키고 그림자를 조절할 것이다.
R&D:
바구니 이동
아이템 생성
아이템 이동
충돌 판정
점수를 UI에 표시
---------------------------------
화면을 클릭해서 위치 알아내기
화면 클릭 : 스크린 좌표 -> 월드 좌표
아이템 생성 : 사과 , 폭탄 (ItemGenerator)
아이템 아래로 이동
바구니랑 아이템 충돌체크 (태그)
- 둘중 하나에 리지드바디, 둘다 콜라이더
- collision mode : OnCollisionEnter
- trigger mode : OnTriggerEnter
사과 먹으면 득점, 폭탄 먹으면 감점 UI표시
- 속성 : 점수
- XXXGameDirector
우선 월드좌표를 알아야 하는데 클릭을 해서 각각의 좌표를 알 수 있다.
클릭해서 Ray가 지면에 닿을 수 있을정도로 길이를 조절해야 한다.
여기서 제일 많은 실수가 일어나는 것
"왜 레이가 충돌이 안나죠?"
그 이유 :
1. 레이가 짧아서
2. 콜라이더가 없어서
그 후 반올림을 해서 클릭을 했을 시 저 좌표로 바구니를 이동하게 해준다.
우리는 빛의 강도를 조절할 수 있다.
Edit -> Project settings
또한 그림자의 길이도 조절할 수 있다
그리고 나서 ItemController.cs에 사과와 폭탄을 둘다 assign한 후 떨어지게 코딩
그 후 각각의 콜라이더를 조절하여 충돌범위를 잡아주는데
맨 아래에 깔린 stage의 콜라이드가 높을 경우 바구니에 들어가는 인식이 안되고 충돌만 날 수 있으니 주의!
충돌 범위를 잡고 나면 Generator 코드를 정해진 랜덤한 위치에서 사과와 폭탄이 떨어지게 설정해주고
GameDirector 스크립트에 점수 추가와 감점을 넣어준 후 바스켓 컨트롤러와 연결해주면 된다.
이 때 사용할 것 중에 "Tag"라는 것이 있다.
태그를 만들면 끝나는 것이 아닌
이렇게 할당해 주어야 한다.
바스켓 컴포넌트에 Audio Source 컴포넌트를 추가하여
각각 사과, 폭탄을 받을 때 다른 소리가 나오도록 할당하여 주었고,
마지막으로 -300 점일시 Retry 화면을 나오게 만들었으며
버튼을 누를 시 다시 게임을 시작하도록 추가하였다.
보완할 점 : 바구니 종류를 선택하는 창을 만들고 각 바구니별 옵션을 다르게 설정
+ Dontdestroyonload를 사용하여 AppleCatch 오브젝트를 사라지지 않게 하여 재사용하기.
'산대특 > 게임 알고리즘' 카테고리의 다른 글
GameObject.onClick.AddListener() (0) | 2024.02.06 |
---|---|
동기와 비동기 (1) | 2024.02.05 |
직렬화와 역직렬화 (0) | 2024.02.05 |
디자인 패턴과 싱글톤 패턴 (0) | 2024.02.05 |
Process 와 Thread 그리고 Thread 와 Coroutine (1) | 2024.02.04 |