개발단에 가입하여 베르의 게임 개발 유튜브를 후원해주세요!

 

베르의 게임 개발 유튜브

안녕하세요! 여러분들과 함께 게임 개발을 공부하는 베르입니다! 게임 개발에 도움이 되는 강좌들을 올리는 채널입니다! [유니티 어필리에이트 프로그램] 아래의 링크를 통해 에셋을 구매하시

www.youtube.com

안녕하세요! 여러분들과 함께 게임 개발을 공부하는 베르입니다!

이번에는 유니티와 VS2022를 함께 사용하는 방법과 새로 추가된 기능을 알아봅시다.

 

사용 엔진 버전 : 2021.3

 

타임라인

0:00 인트로

0:09 VS2022 설치

0:56 유니티와 VS2022 연결

1:23 VS2022 테스트

2:25 아웃트로

 

스크립트

인트로

안녕하세요. 여러분들과 함께 게임 개발을 공부하는 베르입니다.

이번에는 유니티와 비주얼 스튜디오 2022를 함께 사용하는 것에 대해 알아보겠습니다.

VS2022 설치

먼저 비주얼 스튜디오 2022를 설치해야 합니다.

구글에서 비주얼 스튜디오 2022를 검색해서 가장 상단에 표시되는 Visual Studio 2022 IDE 페이지를 선택합니다.

설치 파일을 다운로드 받고 실행합니다.

그 다음에는 워크로드에서 필요한 개발 도구를 선택하면 됩니다.

우리는 유니티나 언리얼로 게임 개발을 할 예정이기 때문에 아래로 내려서 게임 카테고리에 있는 [Unity를 사용한 게임 개발] 도구와 [C++를 사용한 게임 개발] 도구를 선택합니다.

그리고 [설치] 버튼을 눌러서 설치를 진행합니다.

설치가 완료된 다음에는 재부팅을 한 번 해줍니다.

유니티와 VS2022 연결

비주얼 2022 설치와 재부팅이 완료된 다음에는 유니티 허브를 실행하고 새 프로젝트를 생성합니다.

프로젝트 생성이 완료된 다음에는 에디터 상단 메뉴 바에서 [Edit > Preferences] 항목을 선택해서 Preferences 창을 열어줍니다.

그리고 왼쪽의 리스트에서 External Tools 항목을 선택하고 External Script Editor로 설치한 Visual Studio Community 2022를 선택해줍니다.

VS2022 테스트

연결이 완료된 다음에는 새 스크립트를 생성하고 더블클릭해서 스크립트 에디터를 엽니다.

그러면 새로 연결된 비주얼 스튜디오 2022로 스크립트 에디터가 열리는 것을 볼 수 있습니다.

코드를 작성해보면 당연하게도 이전 비주얼 스튜디오와 거의 같게 동작하지만 2022에서 새로 도입된 기능이 있습니다.

바로 작성중인 코드를 기반으로 뒤에 작성할 코드를 추천해주는 기능입니다.

추천받은 코드를 사용하기 위해 탭 키를 눌러주면 바로 자동으로 코드가 완성됩니다.

물론 작성하려는 코드와 완벽하게 일치하게 코드를 추천해주지는 않기 때문에 조금씩 수정하면서 작성할 필요는 있지만 간단한 코드의 경우에는 거의 들어맞기 때문에 조금씩 살피면서 작업해야 합니다.

그래도 며칠간 사용해본 경험으로는 처음에는 엉뚱한 코드를 추천해주는 경우가 꽤 있었지만 어느 정도 사용하다보면 어떤 코드를 추천해야 하는지 데이터가 쌓여서 조금씩 정확도가 올라가는 것으로 보입니다.

아웃트로

생산성 향상을 위한 자동완성 기능에 관심이 있다면 비주얼 스튜디오 2022를 한 번 사용해보는 것도 좋을 것 같습니다.

이 강좌는 시청자 여러분들의 시청과 후원으로 제작되었습니다.

이상 베르의 게임 개발 유튜브였습니다. 감사합니다.

 

 

[유니티 어필리에이트 프로그램]

아래의 링크를 통해 에셋을 구매하시거나 유니티를 구독하시면 수익의 일부가 베르에게 수수료로 지급되어 채널의 운영에 도움이 됩니다.

 

에셋스토어

여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다.

assetstore.unity.com

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Create 2D & 3D Experiences With Unity's Game Engine | Unity Pro - Unity Store

Unity Pro software is a real-time 3D platform for teams who want to design cross-platform, 2D, 3D, VR, AR & mobile experiences with a full suite of advanced tools.

store.unity.com

[투네이션]

 

-

 

toon.at

[Patreon]

 

WER's GAME DEVELOP CHANNEL님이 Game making class videos 창작 중 | Patreon

WER's GAME DEVELOP CHANNEL의 후원자가 되어보세요. 아티스트와 크리에이터를 위한 세계 최대의 멤버십 플랫폼에서 멤버십 전용 콘텐츠와 체험을 즐길 수 있습니다.

www.patreon.com

[디스코드 채널]

 

Join the 베르의 게임 개발 채널 Discord Server!

Check out the 베르의 게임 개발 채널 community on Discord - hang out with 399 other members and enjoy free voice and text chat.

discord.com

 

반응형

개발단에 가입하여 베르의 게임 개발 유튜브를 후원해주세요! https://www.youtube.com/channel/UC9j37A2ACL9ooSbsT4mtGww/join

안녕하세요! 여러분들과 함께 게임 개발을 공부하는 베르입니다!

이번에는 유니티 씬 뷰 조작법에 대해서 알아보겠습니다.

 

사용 엔진 버전 : 2021.3

 

타임라인

0:00 인트로

0:16 준비

0:33 씬 기즈모

1:03 씬에서의 이동 방법

2:45 아웃트로

 

스크립트

인트로

안녕하세요. 여러분들과 함께 게임 개발을 공부하는 베르입니다.

이번 영상에서는 유니티의 게임 오브젝트와 컴포넌트에 대해서 알아보도록 하겠습니다.

게임 오브젝트

게임 오브젝트는 유니티 엔진에서 가장 중요한 개념이며, 씬에 배치되는 가장 기본 단위의 오브젝트입니다.

한마디로, 캐릭터나 바닥에 떨어진 아이템, 배경으로 배치된 건물이나 소품, 폭발하면서 발생하는 이펙트, 빛을 밝히는 광원, 모든 장면을 찍는 카메라까지 씬 안에 배치되는 모든 것은 게임 오브젝트입니다.

그리고 이 게임 오브젝트에 어떤 컴포넌트가 추가되느냐에 따라서 게임 속에서 그 게임 오브젝트의 역할이 결정되는 구조입니다.

한마디로 게임 오브젝트는 기능을 구현하는 컴포넌트들을 담는 하나의 컨테이너 역할을 하는 것입니다.

게임 오브젝트는 기본적으로 이름, 태그, 레이어를 가지고 있는데 이것을 이용해서 나중에 원하는 오브젝트를 찾는 등의 처리를 할 수 있습니다.

컴포넌트

컴포넌트는 게임 오브젝트에 붙일 수 있는 다양한 기능을 가진 구성요소입니다.

앞서 이야기했듯이 비어있는 게임 오브젝트에 어떤 컴포넌트를 붙이느냐에 따라서 그 게임 오브젝트의 역할이 달라집니다.

간단한 예시를 들기 위해서 빈 게임 오브젝트를 하나 만들어 보겠습니다.

하이어라키 뷰에 우클릭 한 뒤 Create Empty 메뉴를 선택합니다. 이것은 비어있는 게임 오브젝트를 만든다는 의미입니다.

새로 생성된 게임 오브젝트를 보면 트랜스폼 컴포넌트가 붙어있는 것을 볼 수 있습니다.

비어있는 게임 오브젝트를 만들겠다고 했는데 왜 트랜스폼 컴포넌트가 붙어있는지 의문이 들 수도 있습니다.

유니티 엔진에서 트랜스폼 컴포넌트는 모든 게임 오브젝트에 기본 컴포넌트로 반드시 부착되어 있도록 되어 있으며 게임 오브젝트로부터 제거할 수 없게 되어 있습니다.

트랜스폼 컴포넌트는 이 게임 오브젝트가 씬의 어느 위치에 어떻게 회전되어서 어떤 크기로 배치되어 있는지를 결정합니다.

그럼 게임 오브젝트에 컴포넌트를 추가하는 방법을 배우기 위해서 방금 만든 빈 게임 오브젝트에 카메라 컴포넌트를 부착해서 새로운 카메라로 만들어보겠습니다.

컴포넌트를 추가할 게임 오브젝트를 선택하고 인스펙터창에서 Add Component 버튼을 누르면 게임 오브젝트에 추가할 수 있는 컴포넌트들의 목록이 보입니다.

이 중에서 게임 오브젝트에 추가할 컴포넌트를 찾아서 선택하면 됩니다.

하지만 이 상태로는 카메라 컴포넌트를 빠르게 찾기 어렵기 때문에, 검색창에 camera를 검색하여 선택합니다.

그러면 비어있던 게임 오브젝트 자리에 카메라 모양이 생기며 게임 오브젝트가 카메라가 된 것을 확인할 수 있습니다.

이렇게 유니티에서 제공하는 기본적인 컴포넌트 외에도 개발자가 직접 컴포넌트를 만들어서 게임 오브젝트에 붙일 수도 있습니다.

대부분의 실제 게임 기능을 하는 시스템들은 이런 커스텀 컴포넌트로 만들어지고 게임 오브젝트에 추가됩니다.

커스텀 컴포넌트를 만드는 방법은 프로젝트 뷰에서 우클릭한 뒤 Create > C# Script 항목을 선택하는 것입니다.

그러면 New BehaviourScript라는 이름으로 C# 스크립트 파일이 생성됩니다.

이렇게 만든 컴포넌트는 보통 용도에 맞게 이름을 지어줍니다.

커스텀 기능이 만들어지는 예시를 위해서 만든 스크립트를 더블 클릭해서 스크립트 에디터를 엽니다.

그리고 업데이트 함수에서 스페이스 바를 누르면 간단한 로그를 출력하도록 코드를 작성하겠습니다.

코드를 저장하고 에디터로 돌아갑니다.

이렇게 생성한 컴포넌트를 다른 컴포넌트와 마찬가지로, 게임 오브젝트를 선택하고, Add Component 버튼을 누른 뒤, 추가할 컴포넌트의 이름을 검색해서 게임 오브젝트에 붙일 수 있습니다.

그리고 게임을 플레이하고 스페이스 바를 누르면 작성한 코드대로 로그가 출력됩니다.

이런 간단한 예시를 확장해서 앞으로 여러분들이 게임에 필요한 기능들을 만들어 나가는 방식으로 개발을 하게 되는 겁니다.

아웃트로

이번 영상에서는 유니티의 게임 오브젝트와 컴포넌트에 대해서 알아보았습니다.

이 강좌는 시청자 여러분들의 시청과 후원으로 제작되었습니다.

이상 베르의 게임 개발 유튜브였습니다. 감사합니다.

 

 

[유니티 어필리에이트 프로그램]

아래의 링크를 통해 에셋을 구매하시거나 유니티를 구독하시면 수익의 일부가 베르에게 수수료로 지급되어 채널의 운영에 도움이 됩니다.

 

에셋스토어

여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다.

assetstore.unity.com

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Create 2D & 3D Experiences With Unity's Game Engine | Unity Pro - Unity Store

Unity Pro software is a real-time 3D platform for teams who want to design cross-platform, 2D, 3D, VR, AR & mobile experiences with a full suite of advanced tools.

store.unity.com

[투네이션]

 

-

 

toon.at

[Patreon]

 

WER's GAME DEVELOP CHANNEL님이 Game making class videos 창작 중 | Patreon

WER's GAME DEVELOP CHANNEL의 후원자가 되어보세요. 아티스트와 크리에이터를 위한 세계 최대의 멤버십 플랫폼에서 멤버십 전용 콘텐츠와 체험을 즐길 수 있습니다.

www.patreon.com

[디스코드 채널]

 

Join the 베르의 게임 개발 채널 Discord Server!

Check out the 베르의 게임 개발 채널 community on Discord - hang out with 399 other members and enjoy free voice and text chat.

discord.com

 

반응형

안녕하세요! 여러분들과 함께 게임 개발을 공부하는 베르입니다!

유니티 에셋 스토어에서 인디 이노베이션 세일이 계속되고 있습니다!

 

지난 7월 27일부터 8월 9일까지는 인스퍼레이션 기간으로 개발자의 프로젝트에 영감을 주는 에셋들이라는 컨셉으로 180종의 에셋을 할인했습니다. 그리고 이번 8월 10일부터 8월 22일까지는 개발자의 시간을 절약하고 효율성을 높이기 위한 에셋 180종을 할인하는 스피드 업 할인이 시작되었습니다.

 

컨셉이 바뀌면서 할인되는 에셋의 종류 역시 바뀌었으니 필요한 에셋을 찾아보시고 구매하시면 좋을 듯 합니다.

 

그리고 지난 인스퍼레이션 기간과 마찬가지로 스피드 업 기간에도 인디 이노베이션 세일의 일환으로 구매 금액별 할인 쿠폰이 제공됩니다. 이 쿠폰을 사용하면 일정 금액 이상 구매할 때마다 추가 할인을 받을 수 있습니다. 100달러 이상 구매 시 5% 추가 할인을 받을 수 있고 175달러 이상 구매 시 10%, 250달러 이상 구매시 15% 추가 할인을 받을 수 있습니다. 할인은 세일 중인 항목에 대해서만 적용이 되며, 각 세일 기간마다 쿠폰 코드가 달라지므로 주의하셔야 합니다. 하지만 쿠폰 사용 횟수의 제한이 없으므로 마음껏 사용하셔도 됩니다.

 

이번 인디 이노베이션 세일 스피드 업 기간의 쿠폰 코드는 이것입니다.

 

[스피드 업 기간 추가 할인 코드]

SPEEDUP2022

영상 하단의 링크를 통해서 에셋 스토어에 방문하여 할인하는 에셋들을 살펴본 뒤 필요한 에셋들을 구매하면 됩니다.

이 링크를 통해 에셋을 구매하면 저에게 수수료가 지급됩니다.

물론 이렇게 저에게 수수료가 지급된다고 해서 구매하는 에셋의 비용이 증가한다던가 하지는 않으니 여러분들은 필요한 에셋을 구매하면서 제 채널을 후원해주실 수 있게 됩니다.

 

[인디 이노베이션 스피드 업 세일 에셋 보러가기]

 

당신의 게임 개발 속도를 높이세요 - Asset Store

게임 제작은 시간이 오래 걸리는 작업입니다. 에셋스토어의 에셋으로 개발 프로세스의 속도를 높이세요.

assetstore.unity.com

 

 

 

[유니티 어필리에이트 프로그램]

아래의 링크를 통해 에셋을 구매하시거나 유니티를 구독하시면 수익의 일부가 베르에게 수수료로 지급되어 채널의 운영에 도움이 됩니다.

 

에셋스토어

여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다.

assetstore.unity.com

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Create 2D & 3D Experiences With Unity's Game Engine | Unity Pro - Unity Store

Unity Pro software is a real-time 3D platform for teams who want to design cross-platform, 2D, 3D, VR, AR & mobile experiences with a full suite of advanced tools.

store.unity.com

[투네이션]

 

-

 

toon.at

[Patreon]

 

WER's GAME DEVELOP CHANNEL님이 Game making class videos 창작 중 | Patreon

WER's GAME DEVELOP CHANNEL의 후원자가 되어보세요. 아티스트와 크리에이터를 위한 세계 최대의 멤버십 플랫폼에서 멤버십 전용 콘텐츠와 체험을 즐길 수 있습니다.

www.patreon.com

[디스코드 채널]

 

Join the 베르의 게임 개발 채널 Discord Server!

Check out the 베르의 게임 개발 채널 community on Discord - hang out with 399 other members and enjoy free voice and text chat.

discord.com

 

반응형

개발단에 가입하여 베르의 게임 개발 유튜브를 후원해주세요! 

 

베르의 게임 개발 유튜브

안녕하세요! 여러분들과 함께 게임 개발을 공부하는 베르입니다! 게임 개발에 도움이 되는 강좌들을 올리는 채널입니다! [투네이션 후원] https://toon.at/donate/637735212761460238 [유니티 어필리에이트

www.youtube.com

안녕하세요! 여러분들과 함께 게임 개발을 공부하는 베르입니다!

이번에는 유니티에서 공식 지원하는 오브젝트 풀링을 알아봅시다.

 

[패키지 다운로드]

https://github.com/WERGIA/WerGameDevChan/blob/main/Unity/unity-object-pool.unitypackage

 

사용 엔진 버전 : 2021.3

 

타임라인

0:00 인트로

0:10 오브젝트 생성과 파괴 방식의 문제

2:26 오브젝트 풀링의 개념

3:02 유니티 오브젝트 풀링

6:14 아웃트로

스크립트

인트로

안녕하세요. 여러분들과 함께 게임 개발을 공부하는 베르입니다.

이번에는 유니티 2021부터 정식 기능으로 포함된 오브젝트 풀링에 대해서 알아보도록 하겠습니다.

오브젝트 생성과 파괴 방식의 문제

오브젝트 풀링이 무엇인지는 이전에 만든 오브젝트 풀링 영상에서 이야기했었지만 그래도 한 번 더 간단하게 설명해보도록 하겠습니다.

먼저 오브젝트 풀링을 사용하지 않고 오브젝트를 생성하거나 파괴하면 두 가지 문제가 발생할 수 있습니다.

첫 번째 문제는 가비지 컬렉팅으로 인한 프레임 드랍입니다.

프로그래밍에서 오브젝트를 생성하거나 파괴하는 작업은 꽤나 무거운 작업으로 분류됩니다.

오브젝트 생성은 메모리를 새로 할당하고 리소스를 로드하는 등의 초기화 과정이 필요하고, 오브젝트 파괴는 파괴 이후에 발생하는 가비지 컬렉팅으로 인한 프레임 드랍이 발생할 수 있습니다.

가비지 컬렉팅이란 유니티 스크립팅의 기반이 되는 C# 프로그래밍에서 제공되는 기능입니다.

우리가 Destroy 함수로 게임 오브젝트를 파괴한다고 선언하면 곧바로 메모리에서 사라지는 것이 아닙니다.

그 게임 오브젝트는 게임에서 보이지 않게 되지만 가비지 콜렉터라고 부르는 것이 그것을 수거해서 파괴하기 전까지 메모리에 남아있습니다.

그래서 오브젝트를 파괴한다고 선언하면 일정 사이클이 지난 이후에 가비지 컬렉터가 메모리를 뒤져서 파괴 선언된 오브젝트를 수거해서 파괴합니다.

이렇게 파괴 선언된 오브젝트가 적으면 수거해서 파괴하는 시간이 짧지만, 많은 양의 오브젝트가 쌓여있다면 당연히 수거하고 파괴하는 데 더 많은 시간이 걸리게 됩니다.

거기에 컴퓨터는 이렇게 파괴한 오브젝트를 수거해서 정리하는 작업만 진행하고 있는게 아닙니다.

게임이 동작하는 로직도 처리하고 있고 게임 화면을 보여주기 위해서 렌더링 작업까지 진행하고 있습니다.

그렇기 때문에 파괴된 오브젝트가 많다면 많은 양의 메모리를 정리하기 위해서 게임의 프레임이 일시적으로 떨어지는 문제가 발생합니다.

두 번째 문제는 메모리 파편화입니다.

프로그램에서는 처음부터 정해진 메모리의 양도 있지만, 동작하는 도중에 필요한 양에 따라 새로 할당받는 경우도 있습니다.

그런데 이 예시 이미지처럼 64바이트의 A, B, C, D를 할당받은 상태에서 A와 C를 할당 해제하면 3번과 같이 빈 공간이 생겨납니다.

이 때 128바이트의 오브젝트를 생성하려고 하면 A와 C 자리에는 공간이 부족에서 D의 뒤에 있는 공간에 할당해야 합니다.

이 할당 이 후에 128바이트 짜리 오브젝트를 하나 더 생성하려고 하면, 메모리 빈 공간만 따졌을 때는 128바이트의 공간이 존재하지만, 연결된 크기가 128바이트인 공간이 없어서 오브젝트 생성에 실패합니다.

한마디로 메모리는 남아 있는데 메모리가 부족한 역설적인 상황이 발생하는 것입니다.

이런 문제들을 해결하기 위해서 고안된 개념이 바로 오브젝트 풀링입니다.

오브젝트 풀링의 개념

오브젝트 풀링의 개념은 생각보다 간단합니다.

먼저 오브젝트를 담아둘 오브젝트 풀을 만들고 여기에 빌려줄 오브젝트를 생성해서 담아둔 뒤 외부에서 이 오브젝트가 필요하면 오브젝트 풀에서 빌려가는 갑니다.

그리고 빌려온 오브젝트를 모두 사용하고 나면 다시 오브젝트 풀에 돌려주는 겁니다.

그런데 만약 외부에서 오브젝트 풀 안에 있는 모든 오브젝트를 다 빌려가서 더 빌려줄 수 없는 상황이 되면 그때서야 새로운 오브젝트를 생성해서 꺼내줍니다.

그리고 이렇게 새로 만든 오브젝트 역시 사용이 끝나서 돌려 받으면 파괴하지 않고 오브젝트 풀이 보관하고 있으면 됩니다.

이게 바로 오브젝트 풀링의 개념입니다.

유니티 오브젝트 풀링

유니티 오브젝트 풀링을 사용하는 방법을 알아보기 전에 영상 하단의 링크에서 자료를 다운로드 받아서 프로젝트에 임포트합니다.

패키지를 임포트한 다음에 Pooling Test Scene을 열고 플레이시켜보면 클릭하는 동안에 많은 수의 총알 오브젝트가 생성되는 모습을 볼 수 있습니다.

총알을 발사하는 역할의 Shooter 클래스를 보면 지금은 오브젝트 풀을 사용하지 않고 총알을 생성하고 있습니다.

이제 이 총알 생성과 파괴 부분을 유니티 오브젝트 풀로 대체해보겠습니다.

유니티 오브젝트 풀을 사용하기 위해서는 UnityEngine.Pool 네임스페이스가 필요합니다.

그리고 오브젝트 풀을 적용하기 위해서는 풀링의 대상이 될 오브젝트의 클래스와 풀링된 오브젝트를 관리할 클래스, 두 군데에 작업을 해줘야합니다.

먼저 풀링의 대상이 될 Bullet 클래스로 이동합니다.

그리고 클래스의 상단에 UnityEngine.Pool 네임스페이스를 선언해줍니다.

IObjectPool<Bullet> 타입으로 이 총알 오브젝트를 관리 중인 풀을 캐싱할 _ManagedPool 멤버 변수를 선언합니다.

그리고 SetManagedPool 함수를 만들고 매개변수로 받은 풀을 _ManagedPool에 저장하도록 만들어줍니다.

그 다음에는 DestroyBullet 함수를 만들고 호출되면 총알 오브젝트를 풀에 반환하도록 코드를 작성합니다.

그리고 Shoot 함수에서 총알을 5초 후에 파괴하는 부분을 5초 후에 DestroyBullet 함수를 호출하도록 수정합니다.

그 다음에는 Shooter 클래스로 이동해서 상단에 UnityEngine.Pool 네임스페이스를 선언해줍니다.

그리고 멤버 변수로 총알 오브젝트들을 관리할 IObjectPool<Bullet> 타입의 _Pool 변수를 선언해줍니다.

그리고 Awake 함수를 만들어서 _Pool 멤버 변수에 Object Pool을 생성해서 넣어줍니다.

여기서 생성자의 매개 변수에 넣어줄 것이 좀 많습니다.

먼저 총알 오브젝트를 생성할 때 호출될 함수인 CreateBullet 함수를 만들고 가지고 있는 프리팹으로 총알 오브젝트를 생성한 다음 생성된 bullet 오브젝트에 자신이 등록되어야할 풀을 알려주고 반환합니다.

그리고 풀에서 오브젝트를 빌려올 때 사용될 OnGetBullet 함수와 오브젝트를 풀에 돌려줄 때 사용될 OnReleaseBullet 함수를 선언하고 코드를 작성합니다.

마지막으로 풀에서 오브젝트를 파괴할 때 사용될 OnDestroyBullet 함수 역시 작성해줍니다.

그리고 이렇게 만든 함수들을 풀의 생성자 매개변수에 넣어주고, 생성가능한 오브젝트 최대 갯수 역시 넣어줍니다.

오브젝트 풀과 관련된 코드를 모두 작성한 다음에는 Update 함수로 가서 프리팹을 인스턴스화해서 총알 오브젝트를 생성하는 부분의 코드를 오브젝트 풀을 사용하도록 코드를 수정합니다.

코드를 모두 작성한 다음에는 저장하고 에디터로 돌아갑니다.

그리고 게임을 플레이해서 테스트해보면 처음에는 총알 오브젝트가 없지만 총알을 발사할 때 생겨납니다.

그리고 총알이 사라질 때가 되면 풀에 설정해놓은 최대 갯수만 남아서 비활성화되고 나머지는 완전히 파괴되는 모습을 볼 수 있습니다.

다시 한 번 총알을 발사해보면 비활성화된 총알들이 재활용되고 모자란 총알들만 생성되는 모습을 볼 수 있습니다.

아웃트로

이번 영상에서는 2021 버전부터 정식 지원되는 유니티 오브젝트 풀링에 대해서 알아보았습니다.

이 강좌는 시청자 여러분들의 시청과 후원으로 제작되었습니다.

이상 베르의 게임 개발 유튜브였습니다. 감사합니다.

 

[유니티 어필리에이트 프로그램]

아래의 링크를 통해 에셋을 구매하시거나 유니티를 구독하시면 수익의 일부가 베르에게 수수료로 지급되어 채널의 운영에 도움이 됩니다.

 

에셋스토어

여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다.

assetstore.unity.com

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Create 2D & 3D Experiences With Unity's Game Engine | Unity Pro - Unity Store

Unity Pro software is a real-time 3D platform for teams who want to design cross-platform, 2D, 3D, VR, AR & mobile experiences with a full suite of advanced tools.

store.unity.com

[투네이션]

 

-

 

toon.at

[Patreon]

 

WER's GAME DEVELOP CHANNEL님이 Game making class videos 창작 중 | Patreon

WER's GAME DEVELOP CHANNEL의 후원자가 되어보세요. 아티스트와 크리에이터를 위한 세계 최대의 멤버십 플랫폼에서 멤버십 전용 콘텐츠와 체험을 즐길 수 있습니다.

www.patreon.com

[디스코드 채널]

 

Join the 베르의 게임 개발 채널 Discord Server!

Check out the 베르의 게임 개발 채널 community on Discord - hang out with 399 other members and enjoy free voice and text chat.

discord.com

 

[참고자료]

https://luv-n-interest.tistory.com/1368

https://docs.unity3d.com/ScriptReference/Pool.ObjectPool_1.html

https://workinprogress.kr/wiki/programming/do-not-feed-the-gc/

반응형

개발단에 가입하여 베르의 게임 개발 유튜브를 후원해주세요! 

 

베르의 게임 개발 유튜브

안녕하세요! 여러분들과 함께 게임 개발을 공부하는 베르입니다! 게임 개발에 도움이 되는 강좌들을 올리는 채널입니다! [투네이션 후원] https://toon.at/donate/637735212761460238 [유니티 어필리에이트

www.youtube.com

 

안녕하세요! 여러분들과 함께 게임 개발을 공부하는 베르입니다!

이번에는 유니티의 기본 개념인 게임 오브젝트와 컴포넌트에 대해서 알아봅시다!

 

사용 엔진 버전 : 2021.3

 

타임라인

0:00 인트로

0:10 게임 오브젝트

0:51 컴포넌트

3:29 아웃트로

스크립트

인트로

안녕하세요. 여러분들과 함께 게임 개발을 공부하는 베르입니다.

이번 영상에서는 유니티의 게임 오브젝트와 컴포넌트에 대해서 알아보도록 하겠습니다.

게임 오브젝트

게임 오브젝트는 유니티 엔진에서 가장 중요한 개념이며 씬에 배치되는 가장 기본 단위의 오브젝트입니다.

한마디로, 캐릭터나 바닥에 떨어진 아이템, 배경으로 배치된 건물이나 소품, 폭발하면서 발생하는 이펙트, 빛을 밝히는 광원, 모든 장면을 찍는 카메라까지 씬 안에 배치되는 모든 것은 게임 오브젝트입니다.

그리고 이 게임 오브젝트에 어떤 컴포넌트가 추가되느냐에 따라서 게임 속에서 그 게임 오브젝트의 역할이 결정되는 구조입니다.

한마디로 게임 오브젝트는 기능을 구현하는 컴포넌트들을 담는 하나의 컨테이너 역할을 하는 것입니다.

게임 오브젝트는 기본적으로 이름, 태그, 레이어를 가지고 있는데 이것을 이용해서 나중에 원하는 오브젝트를 찾는 등의 처리를 할 수 있습니다.

컴포넌트

컴포넌트는 게임 오브젝트에 붙일 수 있는 다양한 기능을 가진 구성요소입니다.

앞서 이야기했듯이 비어있는 게임 오브젝트에 어떤 컴포넌트를 붙이느냐에 따라서 그 게임 오브젝트의 역할이 달라집니다.

간단한 예시를 들기 위해 빈 게임 오브젝트를 하나 만들어 보겠습니다.

하이어라키 뷰에 우클릭 한 뒤 Create Empty 메뉴를 선택합니다.

이것은 비어있는 게임 오브젝트를 만든다는 의미입니다.

새로 생성된 게임 오브젝트를 보면 트랜스폼 컴포넌트가 붙어있는 것을 볼 수 있습니다.

비어있는 게임 오브젝트를 만들겠다고 했는데 왜 트랜스폼 컴포넌트가 붙어있는지 의문이 들 수도 있습니다.

유니티 엔진에서 트랜스폼 컴포넌트는 모든 게임 오브젝트에 기본 컴포넌트로 반드시 부착되어 있도록 되어 있으며 게임 오브젝트로부터 제거할 수 없게 되어 있습니다.

트랜스폼 컴포넌트는 이 게임 오브젝트가 씬의 어느 위치에 어떻게 회전되어서 어떤 크기로 배치되어 있는지를 결정합니다.

그럼 게임 오브젝트에 컴포넌트를 추가하는 방법을 배우기 위해서 방금 만든 빈 게임 오브젝트에 카메라 컴포넌트를 부착해서 새로운 카메라로 만들어보겠습니다.

컴포넌트를 추가할 게임 오브젝트를 선택하고 인스펙터창에서 Add Component 버튼을 누르면 게임 오브젝트에 추가할 수 있는 컴포넌트들의 목록이 보입니다.

이 중에서 게임 오브젝트에 추가할 컴포넌트를 찾아서 선택하면 됩니다.

하지만 이 상태로는 카메라 컴포넌트를 빠르게 찾기 어렵기 때문에, 검색창에 camera를 검색하여 선택합니다.

그러면 비어있던 게임 오브젝트 자리에 카메라 모양이 생기며 게임 오브젝트가 카메라가 된 것을 확인할 수 있습니다.

이렇게 유니티에서 제공하는 기본적인 컴포넌트 이외에도 개발자가 직접 컴포넌트를 만들어서 게임 오브젝트에 붙일 수도 있습니다.

대부분 실제 게임 기능을 하는 시스템들은 이런 커스텀 컴포넌트로 만들어지고 게임 오브젝트에 추가됩니다.

커스텀 컴포넌트를 만드는 방법은 프로젝트 뷰에서 우클릭한 뒤 Create > C# Script 항목을 선택하는 것입니다.

그러면 New BehaviourScript라는 이름으로 C# 스크립트 파일이 생성됩니다.

이렇게 만든 컴포넌트는 보통 용도에 맞게 이름을 지어줍니다.

커스텀 기능이 만들어지는 예시를 위해서 만든 스크립트를 더블 클릭해서 스크립트 에디터를 엽니다.

그리고 업데이트 함수에서 스페이스 바를 누르면 간단한 로그를 출력하도록 코드를 작성하겠습니다.

코드를 저장하고 에디터로 돌아갑니다.

이렇게 생성한 컴포넌트를 다른 컴포넌트와 마찬가지로 게임 오브젝트를 선택하고 Add Component 버튼을 누른 뒤 추가할 컴포넌트의 이름을 검색해서 게임 오브젝트에 붙일 수 있습니다.

그리고 게임을 플레이하고 스페이스 바를 누르면 작성한 코드대로 로그가 출력됩니다.

이런 간단한 예시를 확장해서 앞으로 여러분들이 게임에 필요한 기능들을 만들어 나가는 방식으로 개발을 하게 되는 겁니다.

아웃트로

이번 영상에서는 유니티의 게임 오브젝트와 컴포넌트에 대해서 알아보았습니다.

이 강좌는 시청자 여러분들의 시청과 후원으로 제작되었습니다.

이상 베르의 게임 개발 유튜브였습니다. 감사합니다.

 

[유니티 어필리에이트 프로그램]

아래의 링크를 통해 에셋을 구매하시거나 유니티를 구독하시면 수익의 일부가 베르에게 수수료로 지급되어 채널의 운영에 도움이 됩니다.

 

에셋스토어

여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다.

assetstore.unity.com

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Create 2D & 3D Experiences With Unity's Game Engine | Unity Pro - Unity Store

Unity Pro software is a real-time 3D platform for teams who want to design cross-platform, 2D, 3D, VR, AR & mobile experiences with a full suite of advanced tools.

store.unity.com

 

[투네이션]

 

-

 

toon.at

[Patreon]

 

 

WER's GAME DEVELOP CHANNEL님이 Game making class videos 창작 중 | Patreon

WER's GAME DEVELOP CHANNEL의 후원자가 되어보세요. 아티스트와 크리에이터를 위한 세계 최대의 멤버십 플랫폼에서 멤버십 전용 콘텐츠와 체험을 즐길 수 있습니다.

www.patreon.com

[디스코드 채널]

 

Join the 베르의 게임 개발 채널 Discord Server!

Check out the 베르의 게임 개발 채널 community on Discord - hang out with 399 other members and enjoy free voice and text chat.

discord.com

 

반응형

개발단에 가입하여 베르의 게임 개발 유튜브를 후원해주세요! 

 

베르의 게임 개발 유튜브

안녕하세요! 여러분들과 함께 게임 개발을 공부하는 베르입니다! 게임 개발에 도움이 되는 강좌들을 올리는 채널입니다! [투네이션 후원] https://toon.at/donate/637735212761460238 [유니티 어필리에이트

www.youtube.com

 

안녕하세요! 여러분들과 함께 게임 개발을 공부하는 베르입니다!

이번에는 유니티 에셋 스토어에서 진행되는 인디 이노베이션 세일에 대해서 알아봅시다!

 

[유니티 에셋 스토어 인디 이노베이션 세일 링크]

아래의 링크를 통해 에셋을 구매하시거나 유니티를 구독하시면 수익의 일부가 베르에게 수수료로 지급되어 채널의 운영에 도움이 됩니다.

 

 

인디 게임 아이디어 영감 받기 - Asset Store

에셋스토어의 에셋과 패키지로 당신의 인디 게임을 한 단계 더 높여보세요.

assetstore.unity.com

 

[인스퍼레이션 추가 할인 쿠폰 코드]

INSPIRE2022

 

[유니티 어필리에이트 프로그램]

아래의 링크를 통해 에셋을 구매하시거나 유니티를 구독하시면 수익의 일부가 베르에게 수수료로 지급되어 채널의 운영에 도움이 됩니다.

 

에셋스토어

여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다.

assetstore.unity.com

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Create 2D & 3D Experiences With Unity's Game Engine | Unity Pro - Unity Store

Unity Pro software is a real-time 3D platform for teams who want to design cross-platform, 2D, 3D, VR, AR & mobile experiences with a full suite of advanced tools.

store.unity.com

 

[투네이션]

 

-

 

toon.at

[Patreon]

 

 

WER's GAME DEVELOP CHANNEL님이 Game making class videos 창작 중 | Patreon

WER's GAME DEVELOP CHANNEL의 후원자가 되어보세요. 아티스트와 크리에이터를 위한 세계 최대의 멤버십 플랫폼에서 멤버십 전용 콘텐츠와 체험을 즐길 수 있습니다.

www.patreon.com

[디스코드 채널]

 

Join the 베르의 게임 개발 채널 Discord Server!

Check out the 베르의 게임 개발 채널 community on Discord - hang out with 399 other members and enjoy free voice and text chat.

discord.com

 

 

반응형

개발단에 가입하여 베르의 게임 개발 유튜브를 후원해주세요!

 

베르의 게임 개발 유튜브

안녕하세요! 여러분들과 함께 게임 개발을 공부하는 베르입니다! 게임 개발에 도움이 되는 강좌들을 올리는 채널입니다! [투네이션 후원] https://toon.at/donate/637735212761460238 [유니티 어필리에이트

www.youtube.com

 

안녕하세요! 여러분들과 함께 게임 개발을 공부하는 베르입니다!

이번에는 유니티의 버전 컨트롤 시스템인 플라스틱 SCM에 대해서 알아봅시다!

 

사용 엔진 버전 : 2021.3

 

타임라인

0:00 인트로

0:10 버전 컨트롤 시스템

1:14 플라스틱 SCM

2:44 가격 책정

3:08 결제 정보 등록 및 유니티 조직 만들기

4:09 플라스틱 워크스페이스 만들기

5:02 기본 기능

6:03 아웃트로

스크립트

인트로

안녕하세요. 여러분들과 함께 게임 개발을 공부하는 베르입니다.

이번에는 유니티에서 제공하는 버전 컨트롤 시스템인 플라스틱에 대해서 알아보겠습니다.

버전 컨트롤 시스템

버전 컨트롤 시스템은 간단하게 이야기해서 프로젝트의 버전을 관리하는 것을 도와주는 시스템입니다.

깃허브로 유니티 프로젝트를 관리하는 방법에 대한 영상에서 이야기했듯이 프로젝트의 버전 컨트롤을 제대로 하지 않으면 많은 문제들이 발생합니다.

특히 여러 개발자가 함께 개발을 하는 경우에 많은 문제가 발생할 수 있습니다.

버전 컨트롤 시스템이 없다면 보통은 프로젝트의 파일을 압축하거나 패키지를 만들어서 전달하는 방식으로 개발 내용을 공유하게 됩니다.

하지만 이런 경우에는 전달하는 사람이 실수로 옛날 버전의 파일을 보내거나, 파일을 받은 사람이 프로젝트에 적용하는 것을 깜빡하는 경우가 발생해서 프로젝트 최신 버전을 유지하기 어려워집니다.

그보다 심한 경우는 지금 작업 중인 파일과 같은 파일을 다른 개발자가 보내서 내용이 덮어씌워지는 바람에 작업중인 내용이 날아가는 경우도 있습니다.

이렇게 파일로 전달해서 작업물을 공유할 때, 덮어씌워진 내용은 복구가 어렵기 때문에 더욱 곤란한 상황을 만들게 됩니다.

그래서 개발자들은 버전 컨트롤 시스템이라는 것을 만들어서 최신 버전이 어디인지 알기 쉽게 만들고, 작업물을 쉽게 공유하고, 문제가 생긴 버전에서 원래 버전으로 쉽게 되돌릴 수 있도록 만들었습니다.

플라스틱 SCM

하지만 깃과 같은 기존의 버전 컨트롤 시스템은 프로그래머가 사용하기 위해서 만들어졌기 때문에 디자이너들이 다루기 어렵고, 이미지와 같은 리소스 비교가 어렵다는 단점이 있습니다.

이렇게 디자이너나 아티스트가 다루기 어렵고 리소스 비교가 어려운 문제를 개선하기 위해 플라스틱 SCM라는 버전 컨트롤 시스템이 개발되었습니다.

플라스틱 SCM에서 말하는 대표적인 특징은 3가지가 있습니다.

첫 번째는 분산식과 중앙 집중식, 두 방식을 모두 사용해서 작업할 수 있다는 것입니다.

분산식과 중앙 집중식에 대해서 짧게 설명하자면 먼저 분산식은 깃과 같이 각자의 PC에 로컬 리포지토리를 가지고, 개발 후에 안정된 버전만 커밋하고 서버로 푸시하는 방식입니다.

그리고 중앙 집중식은 로컬 리포지토리 없이, 곧바로 서버로 체크인해서 동기화하는 방식입니다.

두 번째는 특징은 대규모 파일을 쉽게 관리할 수 있다는 것입니다.

일반적인 깃 방식의 버전 관리 시스템에서는 100MB이상의 파일을 업로드하려면 LFS라는 것을 사용하는 번거로운 과정을 거쳐야 합니다.

요즘처럼 고퀄리티 게임 개발이 대중화되고 게임에 사용되는 리소스의 용량이 빠르게 늘어나는 상황에서는 이런 번거로운 과정이 꽤나 귀찮게 느껴질 겁니다.

하지만 플라스틱에서는 LFS와 같은 번거로운 과정없이 쉽게 대용량 파일을 다른 작업자들과 공유할 수 있습니다.

그리고 세 번째 특징은 이 플라스틱 SCM이라는 시스템이 유니티 뿐만 아니라 다른 종류의 게임 엔진도 지원한다는 것입니다.

그렇기 때문에 굳이 유니티 개발자가 아니더라도 지금 사용하는 게임 엔진에 도입해보는 것도 나쁘지 않을 것입니다.

비용

플라스틱 SCM는 기본적으로 사용자 3명과 월 5GB의 데이터 스토리지를 무료로 제공합니다.

5인 이상의 팀이라면 1인당 월 7달러의 추가비용이 책정되고, 데이터 스토리지는 5GB를 초과하여 25GB까지는 월 5달러의 비용이 책정됩니다.

그리고 25GB 이후로는 데이터 량이 25GB가 증가할 때마다 5달러가 추가됩니다.

플라스틱 결제 정보 등록 및 유니티 조직 만들기

대략적인 설명이 끝났으니 플라스틱을 사용하기 위해 결제 정보를 등록하고 유니티 조직을 만들어보겠습니다.

먼저 구글에서 플라스틱 SCM을 검색해서 웹 사이트에 접속하고 무료로 시작하기 버튼을 누릅니다.

그러면 결제 창이 뜨는데 비용이 0으로 뜨는 것을 볼 수 있습니다.

Sign in to continue 버튼을 클릭합니다.

유니티 로그인을 하지 않은 상태라면 로그인을 진행하고 기존에 가진 유니티 조직이 있다면 그것을 선택하면됩니다.

기존 조직이 없다면 새로운 조직을 만들고 절차를 계속 진행합니다.

그 다음에는 본인의 결제 정보를 입력하고 진행합니다.

결제가 완료되면 Complete Onboarding 버튼을 눌러줍니다.

그러고 나면 유니티 게이밍 서비스 대시보드가 열립니다.

결제 정보가 등록된 상태기 때문에 여러분이 플라스틱을 사용하다 무료 사용분을 초과하게 되면 자동으로 결제가 됩니다.

그러므로 테스트로 사용하실 때는 대시보드를 확인하면서 추가 결제가 발생하지 않도록 주의를 기울여야 합니다.

이렇게 하면 기본적인 준비는 끝났습니다.

플라스틱 워크스페이스 만들기

이제 플라스틱을 유니티에서 사용하는 방법을 알아보겠습니다.

유니티 허브를 실행하고 플라스틱을 테스트하기 위한 프로젝트를 생성합니다.

유니티가 실행되고 나면 화면의 좌측 상단에 육각형 모양에 P가 적힌 플라스틱 SCM 버튼을 볼 수 있습니다.

이 버튼을 누르면 플라스틱 SCM 뷰가 열립니다.

여기서 로그인 or Sign up 버튼을 눌러줍니다.

그러면 창이 하나 뜨는데 여기서 플라스틱 SCM을 사용할 유니티 조직을 선택해줍니다.

그 다음에는 [Create workspace] 버튼을 클릭합니다.

여기서는 필요에 따라 워크스페이스의 설정을 바꿀 수 있습니다.

보통은 내용을 바꿀 필요없이 이어서 [Create workspace] 버튼을 눌러주면 됩니다.

기본 기능

워크스페이스가 생성되고 나면 플라스틱 SCM 창이 이렇게 변합니다.

플라스틱 창에서 제일 앞에 있는 Pending Change 탭에서는 현재 내가 프로젝트에 변경한 작업 내용들이 표시됩니다.

변경한 내용 중에 서버에 올리고자 하는 것을 선택하고 변경 내용에 대한 로그를 적은 뒤 [Checkin Changes] 버튼을 누르면 변경사항이 서버에 공유됩니다.

그리고 두 번째 탭인 Incoming Changes 탭에서는 다른 사람이 공유한 내용을 받을 수 있습니다.

현재는 다른 사람이 공유한 내용이 없어서 아무 것도 없지만, 다른 사람이 작업을 공유하면 여기에 표시되고 아래에 있는 Update workspace 버튼을 누르면 다른 사람의 작업을 업데이트 받을 수 있습니다.

그 다음 Changesets 탭에서는 지금까지 공유된 작업의 히스토리를 볼 수 있습니다.

그리고 Branches 탭에서는 현재 프로젝트에 존재하는 브랜치의 목록을 볼 수 있습니다.

추가로 우측 상단의 톱니바퀴 모양의 버튼을 클릭하고 [Invite Members to workspace]를 선택하면 새로운 개발자를 이 워크스페이스에 초대할 수 있는 창이 뜹니다.

여기서 [Add new user] 버튼을 누르고 초대할 개발자의 이메일을 적어주면 다른 개발자를 이 워크스페이스로 초대할 수 있습니다.

아웃트로

이번 영상에서는 유니티의 버전 컨트롤 시스템인 플라스틱 SCM을 사용하는 기본적인 방법을 알아보았습니다.

이 강좌는 여러분들의 시청과 후원으로 제작되었습니다.

이상 베르의 게임 개발 유튜브였습니다. 감사합니다.

 

[유니티 어필리에이트 프로그램]

아래의 링크를 통해 에셋을 구매하시거나 유니티를 구독하시면 수익의 일부가 베르에게 수수료로 지급되어 채널의 운영에 도움이 됩니다.

 

에셋스토어

여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다.

assetstore.unity.com

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Create 2D & 3D Experiences With Unity's Game Engine | Unity Pro - Unity Store

Unity Pro software is a real-time 3D platform for teams who want to design cross-platform, 2D, 3D, VR, AR & mobile experiences with a full suite of advanced tools.

store.unity.com

 

[투네이션]

 

-

 

toon.at

[Patreon]

 

 

WER's GAME DEVELOP CHANNEL님이 Game making class videos 창작 중 | Patreon

WER's GAME DEVELOP CHANNEL의 후원자가 되어보세요. 아티스트와 크리에이터를 위한 세계 최대의 멤버십 플랫폼에서 멤버십 전용 콘텐츠와 체험을 즐길 수 있습니다.

www.patreon.com

[디스코드 채널]

 

Join the 베르의 게임 개발 채널 Discord Server!

Check out the 베르의 게임 개발 채널 community on Discord - hang out with 399 other members and enjoy free voice and text chat.

discord.com

 

반응형

개발단에 가입하여 베르의 게임 개발 유튜브를 후원해주세요! 

 

베르의 게임 개발 유튜브

안녕하세요! 여러분들과 함께 게임 개발을 공부하는 베르입니다! 게임 개발에 도움이 되는 강좌들을 올리는 채널입니다! [투네이션 후원] https://toon.at/donate/637735212761460238 [유니티 어필리에이트

www.youtube.com

 

안녕하세요! 여러분들과 함께 게임 개발을 공부하는 베르입니다!

이번에는 유니티 에디터의 레이아웃에 대해서 알아봅시다.

 

사용 엔진 버전 : 2020.3

 

타임라인

0:00 인트로

0:09 유니티 에디터 레이아웃

0:26 씬 뷰

1:09 하이어라키 뷰

1:50 프로젝트 뷰

2:39 인스펙터 뷰

3:03 게임 뷰

3:34 콘솔 뷰

3:53 그 외

4:09 레이아웃 변경

4:46 레이아웃 저장

5:39 아웃트로

스크립트

인트로

안녕하세요. 여러분들과 함께 게임 개발을 공부하는 베르입니다.

이번 영상에서는 유니티 에디터의 기본 레이아웃에 대해서 알아보겠습니다.

유니티 에디터 레이아웃

우선 유니티 에디터의 기본 레이아웃을 살펴보기 위해 유니티 엔진을 실행하겠습니다.

처음 실행했을 때 유니티 에디터의 레이아웃은 이렇게 되어 있을 것입니다.

유니티 에디터 화면 안에 있는 각 패널들을 유니티에서는 보통 뷰라고 부릅니다.

그럼 이 뷰들에 대해서 알아보도록 하겠습니다.

씬 뷰

제일 먼저 살펴볼 부분은 씬 뷰 입니다.

씬 뷰가 무엇을 하는 뷰인지 알기 위해서는 씬이라는 개념에 대해서 먼저 알아야 하지만 그렇게 어려운 개념은 아닙니다.

유니티에서 씬이라는 것은 쉽게 말해서 게임에서의 맵이나 레벨에 해당합니다.

즉, 씬 뷰는 게임 맵, 혹은 레벨을 보여주는 뷰입니다.

이 씬 뷰를 통해서 게임 레벨에 소품이나 건물 등의 배경 오브젝트들을 배치할 수 있습니다.

간단한 예를 보여드리자면 씬 뷰를 통해서 레벨에 이렇게 오브젝트를 배치하고 움직이거나, 회전시키고, 크기를 조절할 수 있습니다.

그리고 간단한 키보드 마우스 조작으로 씬 내부를 돌아다니면서 씬의 상태를 확인할 수도 있습니다.

하이어라키 뷰

그 다음은 씬 뷰의 왼쪽에 있는 하이어라키 뷰입니다.

하이어라키 뷰는 지금 로드되어 있는 씬과 그 씬에 배치되어 있는 오브젝트들을 계층구조로 보여주는 뷰입니다.

하이어라키 뷰에서는 가장 상단에 SampleScene이라는 이름으로 현재 열려 있는 씬의 이름이 표시되고, 그 아래에 씬에 들어있는 오브젝트들이 나타납니다.

하이어라키 뷰를 통해서 지금 씬에는 Main Camera라는 이름의 카메라와 Directional Light라는 이름의 조명, 좀 전에 배치한 큐브 오브젝트가 배치되어 있는 것을 볼 수 있습니다.

씬에 배치되어 오브젝트가 많거나 오브젝트가 넓게 배치되어 있어서 씬 뷰에서 원하는 오브젝트를 바로 찾기 어려울 때는 이 하이어라키 뷰에서 빠르게 찾아서 그 오브젝트로 이동할 수 있습니다.

프로젝트 뷰

하단에는 프로젝트 뷰가 있습니다.

프로젝트 뷰는 현재 프로젝트에 포함된 텍스처나 모델링, 스크립트, 씬 등의 애셋을 보여주는 뷰입니다.

개발 경험이 많지 않은 경우에는 프로젝트 뷰에 애셋들이 추가되는 대로 중구난방으로 쌓아두는 일이 많습니다.

그렇게 되면 나중에 원하는 에셋을 바로 찾기가 어려운 경우가 생깁니다.

그래서 에셋들을 잘 분류해서 정리해두는 버릇을 들이는게 중요한데 저 같은 경우에는 보통 폴더를 분류 별로 나누는 편입니다.

그래서 제일 자주 쓰이는 씬 폴더를 00_으로 번호를 붙이고, 스크립트 폴더에 01_로 번호를 붙입니다.

그 외의 폴더는 보통 생기는 순서대로 번호를 붙입니다.

이런 식으로 평소에 에셋을 잘 정리해두시면 나중에 필요한 애셋을 찾거나 불필요한 애셋을 정리할 때, 큰 도움이 되며 개발 속도에 긍정적인 영향을 미칩니다.

인스펙터 뷰

가장 오른쪽에 있는 뷰는 인스펙터 뷰입니다.

아마 눈썰미가 좋은 분이라면, 앞에서 다른 뷰를 설명하면서 오브젝트를 선택할 때마다, 인스펙터 뷰의 내용이 바뀌는 것을 얼핏 보셨을 겁니다.

이 인스펙터 뷰는 씬에 배치된 오브젝트를 하이어라키 뷰에서 선택하거나 프로젝트에 포함된 애셋을 프로젝트 뷰에서 선택하면 선택된 오브젝트나 애셋의 정보를 보여주는 역할을 합니다.

게임 뷰

그 다음은 씬 뷰 뒤에 겹쳐져 있는 게임 뷰입니다.

게임 뷰는 씬 뷰처럼 씬을 보여주는 역할을 하지만, 씬 뷰에서는 개발자가 씬 내부를 이리저리 움직이면서 살펴보고 게임 오브젝트를 선택하거나 여러 작업을 할 수 있었던 것과 달리, 씬 안에 배치된 카메라가 보여주는 것만을 볼 수 있는 뷰입니다.

즉, 실제 게임 화면을 미리 보여주는 역할을 하는 것이 게임 뷰입니다.

그리고 이렇게 겹쳐진 씬 뷰와 게임 뷰에서 알 수 있듯이 유니티 에디터의 레이아웃에서는 한 위치에 여러 개의 뷰가 겹쳐질 수도 있습니다.

콘솔 뷰

그 다음은 프로젝트 뷰 뒤에 숨어있는 콘솔 뷰입니다.

콘솔 뷰는 개발자가 기능 테스트를 위해서 출력시킨 로그나, 개발 도중에 발생한 에러, 경고가 출력되는 창입니다.

게임을 개발할 때는 기능이 원하는 대로 잘 동작하는지 확인해야 하는 경우가 많아서 로그를 자주 띄워보기 때문에 콘솔 뷰는 항상 잘 보이는 위치에 두는 것이 좋습니다.

그 외

이 외에도 에디터 상단 메뉴 바에서 Window 메뉴를 선택하여 드롭다운 메뉴를 펼치면 숨겨져 있는 뷰의 목록을 보고 필요한 뷰를 열어서 사용할 수도 있습니다.

유니티의 뷰에 대해서 대략적인 설명을 모두 드렸습니다.

레이아웃 변경

그럼 이제 유니티 에디터의 레이아웃을 바꾸는 방법을 알아봅시다.

유니티 에디터의 레이아웃은 이렇게 뷰의 탭을 잡고 드래그하면 에디터에서 완전히 떼어내거나 다른 곳에 배치할 수 있어서 언제든지 사용자가 사용하기 편한 방식으로 수정할 수 있습니다.

자 그럼 저를 따라서 레이아웃을 한 번 수정해보도록 하겠습니다.

먼저 프로젝트 뷰를 하이어라키 뷰 아래로 옮기고 콘솔 뷰를 씬 뷰 아래로 옮깁니다.

그리고 게임 뷰와 씬 뷰를 동시에 보고 싶기 때문에 씬 뷰를 떼서 게임 뷰 옆으로 옮깁니다.

그 다음에는 각 레이아웃의 크기를 적절하게 수정해줍니다.

레이아웃 저장

이렇게 수정한 레이아웃은 저장해두고 언제든 다시 불러올 수 있습니다.

에디터 우측 상단 제일 구석에 있는 Layout 버튼을 클릭합니다.

이 버튼을 클릭하면 저장된 레이아웃을 불러오거나, 새로 만든 레이아웃을 저장할 수 있습니다.

Save Layout... 버튼을 클릭하면 수정한 레이아웃의 이름을 지어줄 수 있는 대화상자가 뜹니다.

제가 배치한 레이아웃은 좌측부터 게임 뷰, 씬 뷰, 콘솔 뷰가 한 묶음으로 묶여있고, 그다음에 하이어라키 뷰와 프로젝트 뷰, 마지막으로 인스펙터 뷰가 나열되어 있습니다.

각 뷰들이 3-2-1 방식으로 배치되어 있으니 이 레이아웃의 이름은 countdown이라고 하겠습니다.

레이아웃을 저장하고나면 Layout으로 되어 있던 버튼 이름이 Countdown으로 바뀌어 있으며 추가한 Countdown 레이아웃이 드롭다운 목록에 추가되어 있는 것을 확인할 수 있습니다.

이렇게 레이아웃을 저장해두면, 나중에 레이아웃이 바뀌어도 언제든지 손쉽게 자주 사용하는 레이아웃으로 돌아올 수 있습니다.

아웃트로

이번 영상에서는 유니티 에디터의 레이아웃에 대해서 알아보았습니다.

이 강좌는 시청자 여러분들의 시청과 후원으로 제작되었습니다.

이상 베르의 게임 개발 유튜브였습니다. 감사합니다.

 

[유니티 어필리에이트 프로그램]

아래의 링크를 통해 에셋을 구매하시거나 유니티를 구독하시면 수익의 일부가 베르에게 수수료로 지급되어 채널의 운영에 도움이 됩니다.

 

에셋스토어

여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다.

assetstore.unity.com

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Create 2D & 3D Experiences With Unity's Game Engine | Unity Pro - Unity Store

Unity Pro software is a real-time 3D platform for teams who want to design cross-platform, 2D, 3D, VR, AR & mobile experiences with a full suite of advanced tools.

store.unity.com

[투네이션]

 

-

 

toon.at

[Patreon]

 

WER's GAME DEVELOP CHANNEL님이 Game making class videos 창작 중 | Patreon

WER's GAME DEVELOP CHANNEL의 후원자가 되어보세요. 아티스트와 크리에이터를 위한 세계 최대의 멤버십 플랫폼에서 멤버십 전용 콘텐츠와 체험을 즐길 수 있습니다.

www.patreon.com

[디스코드 채널]

 

Join the 베르의 게임 개발 채널 Discord Server!

Check out the 베르의 게임 개발 채널 community on Discord - hang out with 399 other members and enjoy free voice and text chat.

discord.com

 

반응형

+ Recent posts