일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Unity #Unity2D #Portal
- 정처기 필기
- 정처기
- 게임 제작
- 유니티3d
- Vampire Survivors
- 합격
- 유니티
- 게임제작
- 필기
- 프로그래머스 #최소힙 #우선순위 큐
- 자바스크립트 게임
- 퐁
- 정보처리기사
- 1인 개발
- 게임
- Unity
- Pong
- portal
- 자바스크립트
- 토이 프로젝트
- 3회차
- 1인 게임
- 1인 게임 제작
- 유니티 3D
- 게임 개발
- unity3d
- FPS
- 1인 게임 개발
- Unity2D
- Today
- Total
Coding Feature.
[Unity 3D] 3D 퐁 만들기 #11 버그 수정, Itch.io 게임 출시까지 본문
[Unity 3D] 3D 퐁 만들기 #11 버그 수정, Itch.io 게임 출시까지
codingfeature 2024. 1. 24. 18:07우선 이전에 공이 맵 밖으로 나가는 버그에 대해서 처리했던 코드가 미흡해서 제대로 처리하기 위해 수정했습니다.
https://codingfeature.tistory.com/96
if (transform.position.x < GameManager.Instance.wallLeft.transform.position.x
|| transform.position.x > GameManager.Instance.wallRight.transform.position.x
|| transform.position.y < GameManager.Instance.wallBottom.transform.position.y
|| transform.position.y > GameManager.Instance.wallTop.transform.position.y)
{
transform.Translate(-1 * ballMovementVector.normalized * ballSpeed * Time.deltaTime);
RotateBallVector(180f);
}
이전까지는 위 코드와 같이 상하좌우 벽에 대해서만 공이 뚫고 지나가는 버그만 처리를 했었습니다. 또한 어느 벽이든 똑같이 180도로 공을 회전시킴으로써 해결을 했었습니다.
다만 위 코드는 뒷쪽의 벽에 대해서 버그 처리를 하지 못하고, 벽을 뚫고 지나가도 벽이 상하좌우 그리고 뒷면과 관계없이 180도 회전시키는 건 공의 궤적을 이상하게 만드는 처리였습니다.
따라서 아래 코드와 같이 상하 벽에 대해서는 공의 이동 벡터 y축 성분을 반전시키고, 좌우 벽은 x축, 뒷면의 벽은 z 축의 성분을 반전시킴으로써 좀 더 일관적이고 자연스러운 처리를 구현하였습니다!
if (transform.position.x < GameManager.Instance.wallLeft.transform.position.x
|| transform.position.x > GameManager.Instance.wallRight.transform.position.x)
{
transform.Translate(-1 * ballMovementVector.normalized * ballSpeed * Time.deltaTime);
ballMovementVector.x *= -1;
}
if (transform.position.y < GameManager.Instance.wallBottom.transform.position.y
|| transform.position.y > GameManager.Instance.wallTop.transform.position.y)
{
transform.Translate(-1 * ballMovementVector.normalized * ballSpeed * Time.deltaTime);
ballMovementVector.y *= -1;
}
if(transform.position.z > GameManager.Instance.wallBack.transform.position.z)
{
transform.Translate(-1 * ballMovementVector.normalized * ballSpeed * Time.deltaTime);
ballMovementVector.z *= -1;
}
그리고 UI와 관련해서는 제가 조금 약해서 일단은 블랙 앤 화이트 톤으로 최대한 깔끔하게 만들기 위해 노력했습니다..!
그리고 리더보드 데이터를 가져오기전 로딩 텍스트를 띄어서 UI를 좀 더 깔끔하게 만들었습니다.
그 다음 플레이어가 더욱 큰 재미를 느낄 수 있도록 게임 밸런스를 조금 수정했습니다.
처음 공의 속도는 20이었지만 초반에 속도를 빠르게 하는 대신 맵의 크기를 키우고 점수를 얻으면서 가속이 붙는 Ratio를 조금 낮춰서 계속해서 재미있게 플레이할 수 있도록 했습니다.
그 다음 게임의 여러 이미지, GIF 등을 만들어서 Itch.io 사이트에 게임을 등록했습니다!
아래 링크에서 플레이 해보실 수 있습니다!
MICRO-PONG by CodingFeature (itch.io)
프로젝트 인원
1인 개발
프로젝트 기간
1월 18일 - 1월 24일 (7일), 약 35시간
프로젝트 결과물
- 작성한 코드 총 1520 줄.
Github Link - https://github.com/MovieGoers/MICRO-PINGPONG
- 웹 상에서 플레이 또는 다운로드가 가능한 게임 소프트웨어.
프로젝트 성과
- 첫 Unity3D 게임 온라인 출시 (Itch.io)
- 유니티 게이밍 서비스(Unity Gaming Service)의 리더보드 기능을 활용한 실시간 온라인 리더보드 구현
- 포스트 프로세싱과 유니티 이펙트 시스템를 활용한 네온-레트로 테마 구현.
- 옵션 메뉴, 해상도 변경 기능 등 구현.
추후 계획
구글 플레이 스토어 출시 (광고 포함).
다음 프로젝트는 하이퍼 FPS를 생각하고 있습니다!