전체 글 19

유니티 싱글톤과 List<>

게임은 월드 내에서 캐릭터를 조정해서 모험하고 게임에서 얻는 재화를 통해 캐릭터를 업그레이드 하는 재미를 줍니다. 그래서 게임 내 캐릭터를 포함한 각 오브젝트들은 컴포넌트 간에 데이터를 주고 받게 되는데 같은 scene 내에서 주고 받는 방식이 아닌 씬 전환에서도 데이터를 주고 받을 수 있습니다. 아주 간단한 게임은 씬 전환 없이도 같은 씬에서 데이터를 처리하지만 조금 복잡하거나 또는 아주 복잡하지 않더라도 게임 내에 성장 시스템이 약간이라도 있다면 씬 전환은 필요합니다. 예를 들어서 던전이나 필드에서 몬스터를 사냥하면서 게임 내 재화인 골드를 얻으면 마을로 돌아가서 장비를 수리하고 좋은 장비를 구입해서 더 강한 캐릭터를 느낄 수 있는 것이 액션이나 RPG 장르 게임의 기본적인 시스템입니다. 사냥 같은 ..

카테고리 없음 2024.09.24

유니티 오브젝트 객체 컴포넌트, 코루틴

유니티는 각 오브젝트에 Transform, Sprite Renderer, RigidBody, Collider 등 다양한 컴포넌트들을 갖고 있습니다. 이런 컴포넌트에는 오브젝트에 영향을 주는 값들이 있고 inspector뷰에서 이 값을 조정해서 오브젝트가 움직이거나 속성이 바뀌는 이벤트가 발생합니다. 직접 값을 변경하지만 실제 플레이에서는 이 값을 직접 바꿀 수 없기 때문에 스크립트 컴포넌트를 활용해서 데이터 값을 가져와서 사용합니다. 이번에는 TrashObject 스크립트에서 GameController에 있는 함수를 가져와서 사용하는 방법을 해보겠습니다. 먼저 TrashObject를 더블클릭해서 스크립트를 열어줍니다.public class TrashObject : MonoBehaviour{    priv..

카테고리 없음 2024.09.23

유니티 게임 미션 성공 이벤트

게임에서 플레이어는 게임 속 아바타 역할을 하는 캐릭터를 조정하면서 게임 세계를 모험하면서 가상 세계에서 느끼는 색다른 느낌을 경험합니다. 그러나 게임이 단순히 탐험하거나 모험만 하는 것으로 끝난다면 그것은 게임보다는 가상 현실을 그냥 보는 것과 가깝다고 해야 할 것입니다. 그래서 게임은 플레이어에게 어떤 목표를 제시하고 그것을 완수 했을 때에 따른 보상을 주고 그 보상을 통해 캐릭터를 더 강하게 만들면서 플레이어에게 성장의 묘미를 느끼게 만듭니다. 미션 완수, 보상, 성장의 사이클이 되기 위해서는 미션의 목표가 있어야 합니다. 게임 시스템이 복잡한 RPG 장르의 경우에는 퀘스트에 따라서 목표가 다양하지만 단순한 캐주얼 또는 하이퍼 캐주얼 게임 장르는 목표가 단순합니다. 따라서 게임 제작 경험이 부족하거..

카테고리 없음 2024.09.20

유니티 타일맵 시스템

게임에서 플레이어들에게 보여지는 것들은 플레이 캐릭터, npc, 적, UI 그리고 게임 세계인 배경이다. 2D 게임의 탑뷰 방식에서는 어떻게 배경을 보여주는 것이 좋을지 알아보겠습니다. 탑뷰 방식은 고전 게임이나 예전 2D RPG 장르에서 많이 사용하는 방식입니다. 따라서 배경의 그림이 화려하지 않으며 깔끔하면서도 반복적인 지형을 보여 줍니다. 예를 들어 초원의 풀이 있는 곳, 나무 형태, 절벽, 집들이 똑같고 패턴화되어서 배경을 이룹니다. 다양하고 화려한 방법으로도 표현을 할 수 있지만 넓은 게임 세계를 표현하기 위해서 단순한 그림 위주로 패턴을 만들어 게임월드를 만듭니다. 방법은 지형을 정사각형으로 타일화해서 지형을 그려주듯이 생성하는 것입니다.주로 타일 한 개의 크기를 32x32 픽셀로 하기 때문에..

카테고리 없음 2024.09.19

유니티 2D 애니메이션

애니메이션은 게임에서 캐릭터 또는 적이 마치 살아 있는 듯하게 보이도록 하는 것으로 개발과정에서 중요한 파트입니다. 스크립트를 통해 아무 변화가 없는 이미지의 이동은 게임답지 못하기 때문인데요. 게임이 시작되면 게임 캐릭터나 적에게 여러가지 동작변화를 주어야 게임처럼 보입니다.애니메이션에는 2D와 3D가 있지만 여기서는 2D 애니메이션 만드는 방법을 다루겠습니다. 애니메이션을 만드는 방법은 다음 3가지가 있습니다. 1. 프레임 바이 프레임 애니메이션:고전 방식이며, 오래된 2D 게임에서 사용하는 방법이지만 다양한 동작을 표현하는데는 이 방식밖에는 없습니다. 캐릭터의 동작이 매우 다양한 격투 게임이 대표적인 예입니다. 기술 공격이 매우 다양할 뿐만 아니라 그 표현을 매우 화려하게 만들기 때문에 이 방식을 ..

카테고리 없음 2024.09.18

유니티 카메라 이동과 활용

게임을 만들다 보면 스크립트를 적용하고 플레이를 하면 예상 밖의 결과를 보는 경우가 종종 있습니다. 캐릭터 이동을 적용해서 확인하면 움직이는 캐릭터를 당연히 카메라를 통해 계속 볼 것이라는 착각을 말하는 것입니다. 카메라 이동에 대해 명령어가 없다면 캐릭터가 카메라 프레임 밖을 벗어나서 사라지는 것은 당연한 결과입니다. 그럼 카메라도 이동시켜 보겠습니다. 아주 간단한 스크립트로 카메라가 플레이어 캐릭터를 중심에 두고 따라다니게 됩니다.using System.Collections; using System.Collections.Generic; using UnityEngine; public class CameraFollow : MonoBehaviour {      public float cameraMoveSp..

카테고리 없음 2024.09.18

유니티 플레이 캐릭터 이동시키기

내가 만들어서 조정하는 캐릭터를 어떻게 이동시켜 볼까를 다뤄보겠습니다. 캐릭터의 측면을 보는 2D 플랫폼 타입은 좌우 이동, 점프, 사다리 타고 오르고 내리기, 낙하가 있으나 이번 예시에서는 위에서 내려다 보는 캐릭터의 이동을 한 번 만들어 볼까 합니다. 점프가 필요없기 때문에 물리적인 부분을 배제할 예정입니다. 제가 생각하는 플레이 캐릭터는 '스테이크 게임'이라고 한 번쯤 접해 보셨을 것이라 생각합니다. 이 게임은 시작하면 뱀이 있고 상하좌우로 조작하여 수직 이동만 가능하며 한 번 이동을 하면 한 방향으로만 멈추지 않고 직진 이동을 하는 게임입니다. 뱀이 음식을 먹고 꼬리가 길어지는데 자신의 꼬리나 벽에 부딪히면 끝나는 단순한 게임인데요. 이 조작 방식으로 게임 캐릭터를 만들어 볼까 합니다. 1. 캐릭..

카테고리 없음 2024.09.16

유니티 씬(scene) 전환, UI 배치

게임 틀 구성 화면 만들기게임은 몇 개의 화면(scene 이하 씬)을 구성하고, 씬 간의 이동 전환을 합니다. 씬은 시작 화면, 메인 씬 또는 레벨 선택 씬, 플레이 씬 등으로 구성하면서 플레이 또는 캐릭터 업그레이드 및 장비 준비 등을 하게 됩니다. 1. 카메라 세팅씬 전환에 앞서 카메라를 세팅해야 합니다. 씬을 구성하는 UI 배치를 어떤 방식으로 할지를 정해야 합니다. 게임이 16:9 비율로 진행하는 생각했기 때문에 Game뷰에 있는 해상도를 클릭해서 화면 비율을 먼저 세팅해 줍니다. 2. 유니티 씬 전환레벨씬(levelSelect)과 플레이씬(Stage) UI 배치 만들기레벨씬 UI구성- 캐릭터 모습(image)과 제목(text)- 레벨 선택 버튼(예시 5개 button)- 레벨씬 배경(image)..

카테고리 없음 2024.09.16

유니티 2D 게임 만들기 전 준비

게임 만들기 준비단계저는 이 글을 유니티를 모르지만 게임은 만들어 보고 싶은 분들을 위해서 쓰기로 했습니다. 유니티에 익숙하시거나 전문적인 개발자 분들은 이미 알고 계시는 내용들이니 참고해 주세요.어렸을 때 게임을 하면서 저는 게임에 내가 생각하는 것을 적용해 보고 싶었던 적이 있었습니다. 그러나 그 때는 전문가 외에는 게임 개발은 엄두도 할 수 없었던 90년대 시절이었습니다. 아마도 저 말고도 나의 게임을 만들어 보고 싶다는 생각은 게임을 좋아하는 사람이면 한 번쯤 해 볼 수 있는 생각해 보셨을 겁니다. 이제는 간단한 게임은 '유니티 게임엔진(이하 유니티)'을 통해 만들어 볼 수 있는 시대가 되었습니다. 유니티는 게임 개발을 잘 모르는 사람들에게도 의지만 있다면 기초적인 부분은 쉽게 이해하고 실행할 수..

카테고리 없음 2024.09.12