본문 바로가기

유니티108

게임개발 중급(13) - 2D 플랫포머 게임 만들기(8) 2D 플랫포머 게임 만들기(8) 이전에는 프리팹으로 생성한 오브젝트의 고정위치 생성 및 이동과 더불어 플레이어가 맵을 이탈하지 못하도록 경계를 설정해주는 작업을 하였습니다. 이번에는 프리팹으로 계속해서 생성되는 오브젝트를 플레이어가 먹지 않고 지나치게 되면 계속해서 쌓여 게임의 성능과 용량을 크게 차지하게 될 수 있으니 이를 방지하기 위한 작업을 하겠습니다. 오브젝트 삭제 저희가 사용하는 게임의 화면은 기본적으로 X축 -10 에서 10, Y축 -5 에서 5의 범위를 가지고 있습니다. 사실상 이 범위 바깥으로 나가면 보이지 않고, 게임에서 제외됩니다. 그렇지만, 오브젝트를 생성하고 삭제해주지 않는다면, 실제로 보이는 오브젝트는 몇개 되지 않아도 계속해서 보이지 않는 공간에 쌓여 메모리공간 및 성능의 영향을.. 2023. 5. 3.
게임개발 중급(12) - 2D 플랫포머 게임 만들기(7) 2D 플랫포머 게임 만들기(7) 지난 시간에는 만들어진 프리팹 Coin을 사용하여 정해진 바운더리 안에서 3초마다 랜덤하게 생성되도록 하는 제너레이터 스크립트를 작성해 보았습니다. 이번에는 좀 더 플랫포머 게임다운 방식으로 게임에 변화를 줄 것입니다. 코인이 랜덤위치에 생성되는 것이 아닌 정해진 위치에서 생성되고, 일정속도로 왼쪽방향으로 움직이도록 만들고, 플레이어가 맵을 이탈하지 않도록 경계를 설정해 줄 것입니다. CoinSpawner 변경 using System.Collections; using System.Collections.Generic; using UnityEngine; public class CoinSpawner : MonoBehaviour { public GameObject coinPref.. 2023. 5. 1.
게임개발 중급(10) - 2D 플랫포머 게임 만들기(5), 프리팹(Prefab) 2D 플랫포머 게임 만들기(5), 프리팹(Prefab) 저번에 진행했던 코인을 먹으면 점수가 오르도록 하는 코드, 그리고 최적화에 이어서 진행하겠습니다. 코인으로 저희가 예제를 작성할 때, 콜라이더를 가진 코인 오브젝트를 여러개 만들었습니다. 예제에서는 4개정도 만드는 것에 그쳤지만, 실제로 저희가 게임을 만들다 보면 계속해서 사용되고, 등장하는 오브젝트들이 있습니다. 그 대표적인 예시가 바로 코인입니다. 근데 수많은 오브젝트를 일일이 만드는 것은 개발자 답지 않고, 쓸데없이 불편합니다. 그래서 유니티에서는 프리팹(Prefab)이라는 것을 사용합니다. 프리팹은 재사용 가능한 게임 오브젝트(Game Object)를 의미합니다. 프리팹은 게임 오브젝트와 그것이 가지고 있는 모든 컴포넌트들을 하나의 파일로 묶.. 2023. 4. 29.
게임개발 중급(9) - 2D 플랫포머 게임 만들기(4) 2D 플랫포머 게임 만들기(4) 이전 시간에 플레이어 움직임과 코인을 먹으면 점수가 올라가는 단계까지 진행하였습니다. 이번에는 스크립트 작성할 때, 최적화 혹은 더 간편하게 코드를 짜는 방법에 대해서 이야기 해보겠습니다. 사실 최적화 같은 기술은 한번 배운다고 하루아침에 잘하게 되는것은 아닙니다. 해당 코드와 게임의 구조를 생각하고, 어울리도록 만들 줄 아는 능력이 요구됩니다. 저도 게임 프로그래밍을 배우면서 작성하는 사람인지라 완벽하게 최적화하거나 간결한 코드를 만들 순 없습니다. 사람마다 코드를 짜는 방식도 다르고, 스타일도 다르기 때문에 항상 더 좋은 코드를 찾아서 나아가는 것이 최적화의 길입니다. 추후에 프로젝트가 커지는 것까지 고려한다면, 구조를 상당히 잘 짜야하지만, 일단 저는 간단한 예제로 .. 2023. 4. 28.
게임개발 중급(8) - 2D 플랫포머 게임 만들기(3) 2D 플랫포머 게임 만들기(3) 저번시간에는 바닥을 통해 좌우로 이동하고, 점프하는 플레이어를 만들어 보았습니다. 이번엔 아이템을 먹고 점수가 올라가도록 이어서 설계해보겠습니다. 먼저 아이템으로 사용할 오브젝트를 가져옵니다. 유니티 시스템에 있는 2D 오브젝트를 생성해서 사용해도 되지만, 유니티에는 수많은 무료 리소스를 사용할 수 있는 에셋스토어가 존재합니다. 저는 유니티 기본 UI를 사용하겠습니다. 우선 UI로 Text를 추가하고, 2D 오브젝트 Circle을 만들어 줍니다. UI는 추가하면 Scene 뷰에서는 엄청나게 큰 테두리가 생성됩니다. 그것과 별개로 게임뷰에서는, 왼쪽아래 구석에 Text 글자가 조그만하게 보일 것입니다. 저희는 점수로 사용할 것이기 때문에 화면 중앙에 위치하도록 옮겨주고, S.. 2023. 4. 27.
게임개발 중급(7) - 2D 플랫포머 게임 만들기(2) 2D 플랫포머 게임 만들기(2) 저번 시간에 이어서 2D 플랫포머 게임을 제작해 보겠습니다. 저번에는 게임의 설계방식을 통해 가장 먼저 해야할 오브젝트 배치, 컨트롤러 스크립트를 통한 오브젝트 움직이기 까지 진행하였습니다. 저번에 진행했던 내용에 이어서 진행하겠습니다. 우선 플레이어에 적용한 Rigidbody2D는 물리엔진 같은 개념이기 때문에, 중력이 작용합니다. 그렇기 때문에 이전 코드를 그대로 플레이어에 적용하고 실행시키면, 방향키를 통해 플레이어를 움직이지 않아도 자동으로 밑으로 천천히 내려가는 모습을 볼 수 있습니다. 하지만 이전에 저희가 했던 컨트롤러 코드는 단순히 움직임만 구현하기 위해 작성한 것입니다. 이제부터는 플랫포머에 걸맞는 코드를 작성하며 플랫포머 게임을 만들어 나가보려 합니다. 간.. 2023. 4. 26.
게임개발 중급(6) - 2D 플랫포머 게임 만들기(1) 2D 플랫포머 게임 만들기(1) 저번에 미리 이야기 했듯이, 오늘은 다시 2D 게임을 만드는 법에 대해 설명하겠습니다. 이번 예제에서는 유니티 내부에서 제공하는 기능을 활용하여 키보드 조작으로 캐릭터를 움직이는 플랫포머 게임을 만들어보겠습니다. 플랫포머(Platformer)는 주인공 캐릭터를 조작하여 스테이지를 통과하거나 목표물을 획득하는 게임의 장르 중 하나입니다. 일반적으로 2D 그래픽으로 제작되며, 플레이어가 플랫폼(바닥)을 오르내리며 장애물을 피해가는 것이 특징입니다. 플랫포머 게임은 점프, 던지기, 공격 등 다양한 액션 요소가 있으며, 보스전과 같은 스테이지의 끝에 보스가 출현하는 것도 일반적입니다. 매우 인기 있는 장르 중 하나이며, 대표적인 예시로는 슈퍼 마리오 브라더스가 있습니다. 먼저, .. 2023. 4. 25.
게임개발 중급(5) - 다양한 환경에서 게임 빌드하기 다양한 환경에서 게임 빌드하기 게임을 만들고 나면, 그 게임을 할 수 있어야 합니다. 그런데 게임을 플레이하는 환경은 PC만 있는게 아닙니다. 오늘은 다양한 환경에서 만든 게임을 빌드하는 방법에 대해 알아보겠습니다. 유니티에서 만든 게임을 빌드하려면 해당 플랫폼에 맞는 빌드 설정을 해야 합니다. 다음은 유니티에서 다양한 플랫폼으로 빌드하는 방법에 대한 간단한 설명입니다. 1. PC용 빌드 PC용 빌드는 윈도우, 맥OS, 리눅스 등에서 실행할 수 있는 실행 파일을 만드는 것을 말합니다. 2. 모바일용 빌드 모바일용 빌드는 안드로이드, iOS 등 모바일 기기에서 실행할 수 있는 apk, ipa 파일을 만드는 것을 말합니다. 3. 웹용 빌드 웹용 빌드는 웹 브라우저에서 실행할 수 있는 WebGL 파일을 만드는.. 2023. 4. 24.
게임개발 중급(4) - 2D 룰렛 게임 만들기 2D 룰렛 게임 만들기 이번에는 저번에 이야기 했던대로 2D로 룰렛게임을 만들어 보겠습니다. 우선 게임이라고 하면, 사용자가 어떤 동작을 통해 오브젝트를 움직이게 할 수 있어야 합니다. 저희가 움직여야 할 오브젝트 요소는 룰렛 입니다. 게임의 기획을 간단하게 살펴본다면, 저희가 필요한 리소스는 룰렛이미지, 혹은 2D 오브젝트를 통해 직접 제작한 룰렛 그리고 룰렛바늘 이미지가 필요합니다. 필요한 이미지나 오브젝트를 먼저 위치에 맞게 씬에 배치하는 것이 1단계입니다. 2단계는, 사용자가 터치 혹은 클릭했을 때, 룰렛이 돌아가도록 해주어야 합니다. 그렇다면 컨트롤러 스크립트를 만들고, 돌아가는 주체가 룰렛이므로 룰렛 오브젝트에게 스크립트를 적용 시켜 주어야 합니다. 그리고 마지막으로 3단계는 룰렛이 돌기만 하.. 2023. 4. 23.
게임개발 중급(3) - 2D 게임제작 기초 2D 게임제작 기초 이제 본격적으로 2D 게임을 만드는 방법에 대해 말해볼까 합니다. 2D와 3D 등등 다양한 프로젝트를 진행할 때에는 각 프로젝트 종류에 따라 사용되는 기술이나 필요한 컴포넌트 등이 달라집니다. 우선 2D 게임 제작에서 알아야할 기본적인 사항에 대해 알아보겠습니다. 1. 스프라이트(Sprites) : 2D 게임에서 이미지, 캐릭터, 배경 등을 나타내는 그래픽 요소입니다. 유니티에서는 스프라이트를 사용하여 2D 그래픽을 렌더링할 수 있습니다. 2. 씬(Scene) : 게임에서 사용할 수 있는 요소들을 배치하고 관리하는 공간입니다. 씬에서는 게임에 필요한 스프라이트, 카메라, 조명, 콜리더 등을 추가하거나 제거할 수 있습니다. 3. 카메라(Camera) : 게임을 플레이하는 플레이어가 볼 .. 2023. 4. 22.