UNITY

UNITY

[유니티] 개인 프로젝트 게임 개발 1

만들고자 하는 게임은? 1인칭 FPS 게임이 목표이지만, 개발되는 게임의 환경에 따라 3인칭 TPS 게임이 될 수도 있음. W, A, S, D 키를 이용하여 이동할 수 있고, 왼쪽 shift 키(달리기)를 누르면 이동속도가 빨라지고, c 키(걷기)를 누르면 이동속도가 느려지고, space bar를 누르면 점프합니다. 마우스 왼쪽을 누르게 되면 총을 쏘게 됩니다. R 키를 누르면 탄을 갈 수 있게 합니다. 주변에서 랜덤으로 기본 몬스터가 출현합니다. 기본 몬스터는 플레이어를 따라오고 공격하게 됩니다. 플레이어가 몬스터의 공격에 맞게 되면 일정 체력이 깎이게 됩니다. 몬스터의 종류는 누구나 흔하게 생각할 수 있는 좀비뿐 아니라 골렘, 사자, 호랑이 등 몬스터로 적합한 여러 아이디어를 활용합니다. 맵 곳곳에 ..

UNITY

[UNITY] Flappy Bird 만들기

#1. Flappy Bird 게임이란? Flappy Bird 게임은 2013년에 베트남의 게임 개발자인 응우옌하동이 개발한 모바일 게임이다. 위와 같은 게임을 본 적이 있을 것이다. 내가 만들 Flappy Bird Style 게임 방법은 아래와 같다.  새를 조정하여 가능한 많은 장애물을 피하는 게임  새는 기본적으로 아래로 떨어짐  마우스 왼쪽 버튼을 누르면 새는 날갯짓을(flap)하여 위로 떠오름  새가 땅에 닿거나 장애물에 닿으면 게임 종료  게임종료 후 마우스 왼쪽 버튼을 누르면 게임 재시작 #2. 개발 환경 위의 게임을 만들기 위해 아래와 같이 프로젝트를 생성해준다. 그런 다음 프로젝트가 만들어지는 동안 개발에 사용할 Flappy Bird의 asset을 미리 다운로드하여 놓는다. 프로젝..

UNITY

[유니티] #7 탄막 슈팅 게임 - 닷지3

# 탄알 제작 # 탄알 오브젝트 생성 탄알 게임 오브젝트를 만들고 필요한 컴포넌트를 추가할 거다. 탄알은 생성되고 난 후 앞쪽 방향으로 일정 속도로 날아간다. 또한 플레이어와 충돌하게 되면 플레이어를 파괴한다. 탄알은 Sphere을 이용해 만들 것이다. 위와 같이 빨간색 material을 생성하여 구에 입혀준 뒤 구의 설정의 위와 같이 해준다. 그리고 탄알이 속도를 가지도록 rigidbody 컴포넌트를 추가해준다. 그리고 탄알의 인스펙터 창에서 Is Trigger를 체크해준다. 실시간으로 탄알을 복제하기 위해 prefab을 만들어준다. prefab을 만드는 방법은 하이어 라키 창에 있는 탄알을 프로젝트 창으로 드래그&드롭하면 된다. # 탄알 스크립트 작성 탄알의 코드는 올리지 않습니다. 궁금하다면 비댓을..

UNITY

[유니티] #6 탄막 슈팅 게임 - 닷지 2

# 닷지 플레이어 제작 2 #1 플레이어 스크립트 생성 Player 게임 오브젝트를 조종하는 PlayerController 스크립트를 준비한다. 이 스크립트에서는 사용자의 키보드 입력을 감지해야 하고, 리지드바디를 사용하여 Player 게임 오브젝트를 움직일 수 있어야 한다. 프로젝트 창에서 스크립트를 생성해준다. 스크립트를 생성하고 코드를 아래와 같이 적어주어 기본 세팅을 해주자. #2 사용자 입력 감지 입력을 감지하기 위해, Update() 메서드와 Input 클래스의 입력 감지 메서드가 필요하다. Update() 메서드는 Start() 메서드처럼 특정 시점에 자동으로 실행되는 유니티 이벤트 메서드이다. Update() 메서드는 한 프레임에 한 번, 매 프레임마다 반복 실행된다. 만약 60 FPS로 ..

UNITY

[유니티] #5 탄막 슈팅 게임 - 닷지 1

# 닷지 플레이어 제작 1 #1 씬 구성하기 먼저 프로젝트를 생성하고 플레이어가 움직일 공간을 만들어 줄 거다. 제작할 씬은 정사각형의 공간에 사방이 벽으로 막혀있고, 플레이어가 그 안에서 자유롭게 움직일 수 있어야 한다. 우선 유니티 허브를 실행하고 아래와 같이 새로운 프로젝트를 만들어준다. 그다음 레벨의 바닥과 벽을 만들어 줄 거다. 하이어리키 창에서 Create -> 3D Object -> Plane을 클릭해준다. 그다음 가로와 세로의 길이를 늘려줘야 한다. 인스펙터 창에서 게임 오브젝트의 트랜스폼 컴포넌트의 스케일을 (2, 1, 2)로 변경해준다. 유니티에서 게임 오브젝트의 컬러는 머티리얼이 결정한다. 머티리얼은 셰이더와 텍스처가 합쳐진 에셋으로, 오브젝트의 픽셀 컬러를 결정한다. 프로젝트 창에서..

UNITY

[유니티] #4 게임 오브젝트 제어

# 게임 오브젝트 제어하기 #1 클래스와 오브젝트 클래스와 오브젝트는 객체지향(사람이 현실 세상을 보는 방식)의 핵심이다. 사람은 사물을 분해하여 생각하지 않고, 하나의 온전한 독립체로 여기는 경향이 있다. 예를 들어 사람은 컴퓨터를 보고 cpu, ram 그리고 그래픽과 같은 여러 부품으로 이루어져 있는 집합으로 여기지 않고 컴퓨터라는 온전한 물건으로 본다. 객체지향은 이러한 오브젝트의 집합으로 구성하는 방식이다. #클래스 클래스는 묘사할 대상과 관련된 코드를 묶는 틀이다. 예를 들어 Human 클래스에는 사람의 특징을 규정하는 변수와 메서드가 구현된다. 사람, 동물, 꽃 등 다양한 사물에 관한 코드를 각자의 클래스로 만들어 묶어두면 코드 관리가 쉬워진다. #오브젝트 물건의 설계도인 클래스와 달리 오브젝..

UNITY

[유니티] #3 C# 프로그래밍 시작하기 2

# 유니티에서의 C# 프로그래밍 2 #1 코딩 기본규칙 #주석 주석은 컴퓨터가 처리하지 않는 영역이다. 보통 메모 용도로 사용하며, 코드를 주석으로 바꾸어 잠시 비활성화시키는 용도로도 사용할 수 있다. 한 줄 주석은 /(슬래시)를 두 번 연속 타이핑하고 입력한다. 여러 줄을 주석할 때에는 /*와 */사용하여 시작과 끝을 표시한다. // 보통 메모 용도로 사용하는 한줄 주석 /*여러줄에 걸쳐 주석을 사용할때에는 슬래시와 별을 사용하여 앞뒤로 사용하여 주석처리를 해준다 */ #주석 콘솔에 메시지를 출력할 때는 Debug.Log() 메서드를 사용한다. 문장을 출력하는 경우에는 아래와 같이 문장을 큰따옴표로 묶어준다. Debug.Log("출력 되는 내용"); #세미콜론 코드 한 문장이 끝나면 반드시 세미콜론을 ..

UNITY

[유니티] #2 C# 프로그래밍 시작하기 1

# 유니티에서의 C# 프로그래밍 1 #1 변수 개념 잡기 변수는 값을 저장하는 장소이다. 변수에 저장한 값은 게임 도중 언제든지 접근하고 수정할 수 있다. 변수를 사용하는 이유는 원하는 값을 기억하고 다시 사용하기 위해서이다. 변수를 사용하기 위해서는 변수를 선언해 줘야 한다. int num; 위 코드는 정수 타입의 값을 다루는 'num' 변수를 선언한 것이다. int는 정수(integer)의 약자이다. int num = 10; 위와 같이 'num' 변수에 초기값(10)을 할당해 줄 수도 있다. 나는 변수 이름은 편하게 보기 위해 'num'을 사용한 것이고 각자 사용용도를 생각해서 마음껏 설정해주면 된다. 변수의 타입에는 int 뿐만 아니라 실수를 저장하는 float, 참과 거짓을 저장하는 bool, 문..

UNITY

[유니티] #1 unity 인터페이스 둘러보기

#유니티 인터페이스 둘러보기 #1 유니티 레이아웃 변형하기 유니티 레이아웃은 창이 배치되어 있는 모양이다. 아래 사진은 기본으로 되어있는 'default' 레이아웃이다. 레이아웃은 개발에 영향을 미치진 않지만 좀 더 편하게 활용하기 위해 보기 쉽게 아래 사진처럼 변형해 보았다. #2 3D 큐브 오브젝트 생성하기 Hierarchy 창에서 아래 사진에 표시된 +(create) 버튼을 클릭하고 3D object에서 Cube를 선택해서 새로운 Cube 게임 오브젝트를 생성해 준다. 그러면 Hierarchy 창에 Cube 게임 오브젝트가 새로 추가가 되고, Scene 창의 중앙에 Cube 게임 오브젝트가 표시가 된다. #3 큐브에 중력 주기 큐브가 중력의 영향을 받아 아래로 떨어지게 해보자. 단, 바닥을 만들어주..

바큥
'UNITY' 카테고리의 글 목록