unity 9

유니티 프리팹 Prefab, 부모와 자식 오브젝트, 인스펙터창에 오브젝트 일괄 적용 팁

이번에는 레벨 씬에서 LevelDataList 오브젝트에 있는 Data의 Element를 활용해서 스테이지 버튼의 상태를 보여주는 방법을 포스팅하겠습니다. 어떻게 구현할지를 이미 구현하고 스샷을 남긴 그림을 첨부해보겠습니다. LevelDataList 오브젝트에 있는 Data Element에는 isOpen 값을 가지고 있고 미션 성공한 스테이지를 포함해서 다음 스테이지까지 값을 1로 바꾸어 저장하도록 되어 있습니다. 이제 이 값을 불러와서 시작함수를 통해서 버튼 상태에 적용하겠습니다. 먼저 위 그림에서 UI를 어떤 것이 필요할지를 분석해 봅시다. 첫번째 할 일은 버튼 UI image 컴포넌트와 button 컴포넌트 접근이며, 두번째 할 일은 스테이지를 표시하는 UI Text 상태 변경을 위한 text 컴포..

카테고리 없음 2024.09.26

유니티 Save and Load

게임에서 플레이 진행 상황을 저장하고 다시 불러오는 기능은 매우 중요합니다. 오랜 시간 게임을 지속해서 하기 어렵기 때문에 내 캐릭터의 레벨, 스테이터스, 재화, 탐험 구간, 퀘스트 진행 데이터로 만들어서 게임을 저장하고 다시 게임할 때 불러 올 필요가 있습니다. 하이퍼 캐주얼 장르 같은 간단한 게임에서는 게임저장 및 불러오기를 안 하는 경우도 있으나 최소한의 진행 레벨 상황이나 캐릭터 스킨 적용 목적을 위한 재화 때문에 간단한 게임저장 및 불러오기 기능을 사용하기도 합니다. 구글 플레이 스토어나 앱 스토어에서 다운로드 및 플레이 가능한 Helix jump라는 게임이 있는데 이 게임은 공이 계속 통통 튕길 때 플레이어가 좌우 조작만으로 공을 위험 지역이 아닌 안전 지역에서만 점프하면서 내려가도록 하는 게..

카테고리 없음 2024.09.25

유니티 싱글톤과 List<>

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

카테고리 없음 2024.09.24

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

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