티스토리 뷰

 

오늘은 2D 러닝 게임을 위하여 플레이어 캐릭터를 만들어 보겠습니다.

1. 하이어라키(Hierachy) 뷰에서 마우스 오른쪽 클릭을 한우 Created Empty를 클릭해주세요.

그럼 다음과 같이 SampleScne * 표가 생기며 씬에 무언가 변경되었다는 표시가 뜨고  인스펙터(Inspector) 뷰에 방금 새로 만든 오브젝트의 정보가 보입니다.

 

2. 인스펙터(Inspector)뷰에 보이는 Add Component를 클릭하고 spr를 쳐봅시다.
그럼 Sprite Renderer가 나오는데 이것을 클릭해 줍니다.

그럼 Sprite Renderer라는 컴포넌트가 추가되고 다음과 같은 화면이 되면 성공

 

컴포넌트가 무엇인가 궁금하다면 다음 링크를 클릭하여 읽어봅시다.

docs.unity3d.com/kr/2018.4/Manual/UsingComponents.html#:~:text=%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8(Components)%20%EB%8A%94%20%EA%B2%8C%EC%9E%84%EC%97%90%EC%84%9C,%EB%B6%80%ED%84%B0%20%EC%9D%BD%EC%96%B4%EB%B3%BC%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.

 

컴포넌트 사용 - Unity 매뉴얼

컴포넌트(Components) 는 게임에서 오브젝트와 동작에 관한 기본 구성 요소라 할 수 있습니다. 컴포넌트는 모든 게임 오브젝트 의 작동과 관련한 부품입니다. 아직 컴포넌트와 게임 오브젝트의 관

docs.unity3d.com

 

3. 캐릭터 이미지 넣기 

다음 그림을 마우스 오른쪽 클릭을 하여 이미지를 다른 이름으로 저장한 후 Resources안에 Sprites 폴더에 넣어줍시다.

저장하세요

 

그 후 인스펙터 뷰에 SpriteRenderer에서 Sprite 부분에 동그라미 부분을 클릭하면 Select Sprite에서 우리가 추가한 캐릭터 이미지를 볼 수 있습니다. 더블 클릭해 줍시다. 

 

다음과 같이 Scene 뷰에서 캐릭터가 보인다면 성공! 

가운데 위에 실행 버튼을 클릭하여 실제 게임 화면으로 봅시다.

짜자잔! 퍼런 화면에 방금 만든 오브젝트에 껍데기를 볼 수 있습니다.

 

4. 플레이 캐릭터 

더 진행하기 앞서 앞서 만든 기획서를 토대로 플레이 캐릭터가 무엇을 해야 하는지 생각해봅시다.
기획서가 기억이 안 난다면 아래 링크를 보고 다시 오시면 됩니다.

2021/01/06 - [Unity2D 야매 개발실] - #2 Unity 2D 게임 개발 - 기획하기-

기획서를 토대로 플레이어 캐릭터를 정의하여 봅시다.

  1. 플레이어 캐릭터는 사용자의 입력을 받아 행동한다.
  2. 플레이 캐릭터는 점프를 할 수 있다. 
  3. 플레이 캐릭터는 펀치를 할 수 있다. 
  4. 플레이어 캐릭터는 점수를 획득할 수 있다. 
  5. 플레이어 캐릭터는 죽는다.
  6. 플레이어는 스테미너 게이지가 있다.
  7. 플레이어는 HP 가 있다.

캐릭터 정의가 끝났다면 프로그래밍을 해야겠죠? 다시 영화에 비유 한자면 감독인 우리가 원하는 배우를 감독이 원하는 행동을 하기 위한 작업이 프로그래밍입니다. 대본과도 같죠.

5. 스크립트

우리는 위에서 플레이어 캐릭터는 사용자의 입력을 받아 행동한다.라고 적었습니다. 

그래서 우리는 이 플레이어 캐릭터가 사용자의 입력을 받게 할 스크립트를 만들겠습니다. 

스크립트 이름은 PlayerInput이라고 적겠습니다.  우선 Project 뷰에서 Resources 폴더를 더블 클릭한 후 Scripts 폴더로 이동합니다 그 후 마우스 오른쪽 클릭을 하여 Create에서 C# script를 선택합니다. 

이름까지 작성해서 다음과 같이 뜬다면 일단 성공!

자 이제 PlayerInput을 더블 클릭하여 VisualStudio를 열어줍니다. 

만약 유니티를 설치하였는데 VisualStudio가 깔려이지 않다면 아래 링크에서 다운로드하여주세요
visualstudio.microsoft.com/ko/downloads/ 

 

Windows 및 Mac용 Visual Studio 2019 다운로드

Visual Studio Community, Professional, Enterprise를 다운로드하세요. 지금 Visual Studio IDE, Code 또는 Mac을 무료로 사용해 보세요.

visualstudio.microsoft.com


프로젝트 뷰에서 스크립트 파일 이름인 PlayerInput과 VisualStdio에서 Class 이름은 꼭 동일하여야 합니다. 

MonoBehaviour 가 무엇인지, 무슨 기능들이 있는지 확인하고 싶으시다면, 아래 링크에 들어가서 확인해주시면 됩니다.
간단하게 말하면 우리가 게임을 만들기 위해서 필요한 기능들을 미리 만들어둔 클래스라고 생각하시면 됩니다.

만약 나는 프로그래밍 지식이 아예 없다고 생각하시면 일단 따라서 해보시면서, 상속, 클래스 등 C#에 대한 공부도 같이 해주시면 됩니다.

docs.unity3d.com/kr/530/ScriptReference/MonoBehaviour.html#:~:text=MonoBehaviour%EB%8A%94%20%EB%AA%A8%EB%93%A0%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EA%B0%80,MonoBehaviour%EB%A5%BC%20%EC%83%81%EC%86%8D%EB%B0%9B%EC%95%84%EC%95%BC%20%ED%95%A9%EB%8B%88%EB%8B%A4.

 

Unity - 스크립팅 API: MonoBehaviour

Javascript를 사용하는 경우에, 자동으로 MonoBehaviour를 상속받습니다. C# 또는 Boo언어를 사용하는 경우에는 명시적으로 MonoBehaviour를 상속받아야 합니다. Note: MonoBehaviour를 비활성화 하는 체크박스(에

docs.unity3d.com

Visual Stdio에서 다음과 같이 작성한 후 Ctrl + S를 눌러줍니다. 무슨 일이 일어날지 모르니 항상 Ctrl + S를 생활해 주세요!

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

public class PlayerInput : MonoBehaviour
{
    // Start is called before the first frame update
    // 첫 번째 프레임 업데이트 전에 Start가 호출됩니다.
    private void Start()
    {
        
    }
    // Update is called once per frame
    // 업데이트는 프레임 당 한 번 호출됩니다.
    private void Update()
    {
        PCInput();
    }

    private void FixedUpdate()
    {
        
    }
    
    private void PCInput()
    {
        if (Input.GetButtonDown("Fire1"))
        {
            Debug.Log("Fire1 Click");
        }
    }    
}

그 후 다시 유니티 창으로 돌아온 후 인스펙터(Inspector) 창에서 Add Component를 클릭 후 방금 만든 PlayerInput를 추가하여줍니다.

다음 그림과 같이 된다면 성공!

자 우리는 이제 Play 버튼을 눌러봅시다.

아무 변화가 없죠? 먼가 잘못된 건가 싶죠? 아닙니다 우리는 아직 ctrl 키를 눌러보지 않았습니다. ctrl키를 눌러보세요.

누르면 왼쪽 아래 다음과 같이! 표와 같이 메시지가 나올 것입니다.

우리는 이 메시지를 한 번만 클릭해봅시다. 다음과 같이 콘솔 창이 나온다면 성공!

우리는 이 콘솔 창을 움직여서 프로젝트 창 옆에 붙여 줍시다.

 콘솔 창에 대해 간단히 설명하면 

Clear는 모든 로그를 지워줍니다.

Collapse는 같은 내용의 로그를 여러 줄에 표시하지 않고 한 줄로 모아서 같은 내용의 로그가 몇 번이나 출력됐는지 보여줍니다. 

Clear On Play 버튼은 Play 버튼을 눌렀을 때, 남아있는 모든 로그를 지우고 시작하게 만듭니다.

Erro pause는 플레이 도중 에러 로그가 발생하면 일시정지를 실행합니다.

Editor는 에디터에 로그를 출력합니다. *컴퓨터와 모바일 기기를 연결하여 모바일 기기에 앱(Apk)을 빌드 하였 때, 모바일 기기에서 실행되는 실시간 로그를 보기 위해여 사용된다.  

6. 스크립트 설명

private void Update()는 매 프레임마다 호출됩니다 이때 그 안에 있는 PCInput() 또한 같이 호출되며

PCInput()에서는 Fire1 버튼이 눌렸지 확인하여 눌렸다면 Fire1 Click이라는 로그를 남깁니다.

 

7. 마무리

오늘은 프로젝트를 실행하여 캐릭터의 껍데기와 사용자의 입력의 맛보기를 진행하였습니다.
Sprite Renderer, Input Manager, Update와 FixedUpdate의 차이 대한 링크는 아래에 있으니
확인해 보길 바랍니다.

Sprite Renderer

2019/05/16 - [Unity 이론] - #3 Unity 스프라이트 렌더러 속성 (Sprite Renderer)


Input Manager

2019/05/20 - [Unity 이론] - #10 Unity input 매니저


Update와 FixedUpdate의 차이 

2021/01/09 - [Unity 이론] - #13 Unity Update FixedUpdate 차이

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함