스파르타코딩클럽 - 게임개발 종합반

[1주차] 개발 환경 세팅 및 기본 사용법 익히기

khj4374 2021. 7. 12. 16:41

첫 수업에서는 unity 설치와 간단한 사용법, 그리고 C# 문법에 관한 내용을 진행했다

c#도 객체 지향 언어라 그런지 java와 많이 비슷해서 사용하는 데에 수월했다.

 

1. Unity 설치

  1) 링크에 들어가 Unity Hub 다운로드를 선택하여 exe파일을 설치합니다.

  2) exe 파일을 실행하여 다음과 같이 진행합니다. (동의함 → 설치)

  3) 설치가 완료되면 다음과 같이 실행합니다.

  4) 다음 화면이 나오면 성공입니다!

    위의 화면이 바로 안나올 경우 스킵하기 클릭하면 바로 이 단계로 넘어올 수 있습니다.

 

  5) 우측 상단 로그인 창을 통하여 회원가입을 진행해주시면 됩니다

 

2. 유니티 레이아웃 설정

레이아웃은 다음과 같이 설정합니다.

  1) 상단의 바에서 Windows -> Layouts -> 2 by 3을 클릭합니다.

  2) 화면에 뜬 창 중 Project의 점 3개 버튼을 눌러 One Column Layout을 선택합니다.

  3) Windows → General → Console을 통해서 콘솔 창을 적당한 곳에 붙여줍니다.

 

참고로 상단바 바로 아래 재생, 일시정지 버튼을 누르면 파란 창으로 실제 플레이되는 화면을 확인할 수 있습니다.

 

3. 유니티 구성요소

  1) 씬

  • 게임 오브젝트들이 모여있는 장소
  • 영화에서의 씬과 같은 의미 
  • 이 장소를 카메라로 찍어서 플레이하는 사람들이 볼 수 있도록 준다

  2) 게임 오브젝트

  • 게임을 구성하는 요소들을 통칭한다.
  • 캐릭터(배우), 장애물, 배경 등 다양 한 것이 오브젝트에 포함된다
  • 게임 오브젝트는 오브젝트의 위치, 크기, 회전을 나타내는 Transform과 추가적인 기능을 담당하는 Component 들로 구성

4. 오브젝트 추가

강의자료로 올라온 르탄이 캐릭터를 import해준다.

파일 탐색기에서. unitypackage 파일을 더블클릭하면 자동으로 해당 창이 나오고,

import를 클릭하면 project 창에 Prefab이라는 폴더가 생성된다. import 하는 오브젝트들은 해당 폴더에서 관리되고, 

르탄이 파일은 Perhab - Character 폴더 내에 rtan_playable이라는 이름으로 저장된다.

저장 후 rtan_playable을 Hierarchy 창으로 드래그 앤 드롭해주면 화면상에서 르탄이 캐릭터가 나타난다.

 

오브젝트의 설정값을 조절하는 방법은 2가지가 있는데, 첫 번째는 Hierachy에서 조작하는 것,

다른 하나는 Project 창에서 더블클릭 후 조작하는 것이다.

 

1) Hierachy 창 : 각 오브젝트의 설정을 따로 조작하고 싶을 때 옵션 값 조절

 ex> 르탄이 캐릭터 2개를 생성했을 때 각각을 다른 크기로 조절할 때 설정한다.

 

2) Project 창을 이용해 조절 : 오브젝트의 공통되는 설정을 조작하고 싶을 때 옵션 값 조절

 ex> 르탄이 캐릭터 2개를 생성했을 때 모든 캐릭터에 공통적으로 중력이라는 옵션을 줄 때 설정한다.

 

 

5. 컴포넌트 추가

컴포넌트는 게임 오브젝트에 기능을 추가하기 위해서 새로운 컴포넌트를 생성해서 코드를 작성해 사용할 수 있다.

르탄이의 Prefab에서 Add Component창을 클릭한다.

이때 나오는 창에서 이미 구현되어있는 옵션을 선택할 수도 있고, 직접 스크립트를 작성할 수도 있다.

기본 스크립트 코드는 다음과 같다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Rtan : MonoBehaviour
{
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {

    }
}

 

 

6. 에디터 설정

강의에서는 visual studio를 사용하는데, 쓰던 에디터가 아니라 불편하기도 하고 특유의 무거운 프로그램의 특성 때문에 vscode와 새로 연동해서 코딩을 진행했다.

 

https://gongdolhoon.tistory.com/entry/UnityTutorial-1-Unity%EC%99%80-Visual-Studio-Code-%EC%97%B0%EB%8F%99

 

[Unity/Tutorial] 1. Unity와 Visual Studio Code 연동

서론  게임 프로젝트를 진행하거나 혹은 자신만의 게임을 개발하고 싶은 사람이라면, Unity 엔진은 누구나 한 번쯤은 들어봤을 것이다. Unity는 현재 Epic Games의 Unreal Engine 4와 게임엔진계의 양대

gongdolhoon.tistory.com

 

이미 vscode가 깔려있다면 프로그램이 깔린 위치를 확인한다.

나는 다음 위치에 Code.exe 파일이 있었다.

 

그다음으로 vscode에서 기본 설정을 진행한다.

패키지 파일을 설치하는 건데 

화면의 버튼을 클릭해서 C#, C# Extensions, Debugger for Unity, Unity Code Snippets, Unity Tools를 설치했다.

 

그 후 따로 .Net Framework SDK를 설치해야 한다.

설치 패키지 실행 후 컴퓨터를 다시시작해야햔다.

 

그다음 Unity에 다시 접속해 External Script Editor를 다시 설정해준다.

 

화면 맨 상단에서 Edit - Preferences를 클릭하면 다음 창이 뜬다.

그다음 External Script Editor에서 Visual Studio Code를 선택해주면 되는데, 

만약 안 나올 경우 Browse..를 클릭해 처음에 봐 두었던 Code.exe파일 위치에서 선택한다.

그럼 모든 설정이 끝난다

 

7. 유니티 실습

1) 로그 띄우기

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Rtan : MonoBehaviour
{
    void Start()
    {
		Debug.Log("Start");
    }

    // Update is called once per frame
    void Update()
    {
		Debug.Log("Update");
    }
}

 

2) 중력 적용

RigidBody2D라는 컴포넌트를 추가한다.

AddComponent 클릭 후 Rigidbody2D를 검색하면 나온다.

RigidBody2D는 물체의 중력, 질량 등 물리적인 요소들을 정해준다.

 

해당 옵션을 설정한 후 실행해보면 캐릭터가 아래로 쭉 떨어진다.

 

3) 땅 추가

중력을 받은 캐릭터를 세워두기 위해서 땅을 추가해보도록 한다.

마찬가지로 이미 만들어져 있는 강의자료를 이용해 추가했다.

 

4) 캐릭터 조작

CharacterMove라는 새로운 스크립트를 생성한다.

public class CharacterMove : MonoBehaviour {
    public Rigidbody2D rigid;
    public Transform trans;
		public float moveSpeed;

    public void Update() {

    }
}

그 후 rtan_playable로 해당 컴포넌트를 드래그 앤 드롭한다.

유니티에서 클래스 안에 public이라고 선언했기 때문에 다른 클래스에서 직접 참조가 가능하다.

 

다음과 같이 CharacterMove 항목이 생겼고, 내부에 설정값이 생긴 것을 볼 수 있다.

 

public class CharacterMove : MonoBehaviour {
    public Rigidbody2D rigid;
    public Transform trans;
		public float moveSpeed;

    public void Update() {
        // 기본 방향은 0 입니다.
        // Vector2.zero 는 Vector2(0f, 0f) 와 같습니다
        Vector2 direction = Vector2.zero;

        if (Input.GetKey(KeyCode.LeftArrow))
        {
            // 왼쪽 키를 누른 경우엔 왼쪽 즉 Vector2.left 로 이동합니다
            // Vector2.left 는 Vector2(-1f, 0f) 와 같습니다
            direction = Vector2.left * moveSpeed;
        }
        else if (Input.GetKey(KeyCode.RightArrow))
        {
            direction = Vector2.right * moveSpeed;
        }
        rigid.velocity = direction;
    }
}

코드에 다음과 같은 내용을 입력하면 캐릭터를 왼쪽, 오른쪽으로 움직일 수 있다.

 

6) 카메라 시점 조절

현재는 카메라가 한 곳에 고정되어 있어 르탄이가 화면 밖으로 나가는 일이 있지만, 

Hierachy에서 MainCamera를 르탄이 아래로 붙이면 카메라가 르탄이를 따라다닌다.