본문 바로가기

전체 글774

Unity6 Edit Mode와 Play Mode 차이 알아보기 ▣ 이번 글에서는 Unity Editor의Edit Mode와 Play Mode의 차이를 알아보겠습니다.Unity로 게임을 만들 때는계속 다음 작업을 반복하게 됩니다.게임 제작↓실행↓테스트↓문제 확인↓수정↓다시 실행Unity Editor에서는게임을 제작하고 편집하는 상태를Edit Mode라고 하고,Editor 안에서 게임을 직접 실행해서 테스트하는 상태를Play Mode라고 합니다.간단하게 먼저 정리하면Edit Mode→ 게임을 만드는 상태Play Mode→ 만든 게임을 실행해서 테스트하는 상태라고 생각하면 됩니다.특히 Unity를 처음 사용할 때는Play Mode에서 Inspector 값을 수정한 다음Play Mode를 종료했더니수정한 값이 다시 원래대로 돌아오는 경우가 있습니다.이것은 Unity에서 굉.. 2026. 9. 22.
Unity6 Scene 생성, 저장, 전환 기본 ▣ 이번 글에서는 Unity Project에서새로운 Scene을 생성하고,Scene을 저장하고,여러 Scene 사이를 전환하는 기본적인 방법을 알아보겠습니다.앞에서 Scene은GameObject를 배치하고 게임의 콘텐츠를 구성하는 단위라고 알아봤습니다.예를 들어 게임에TitleStage01Stage02Ending같은 화면이나 Stage가 있다면각각 별도의 Scene으로 구성할 수 있습니다.간단하게 보면Unity Project├─ Title Scene├─ Stage01 Scene├─ Stage02 Scene└─ Ending Scene형태입니다.Scene을 여러 개 사용하기 전에먼저Scene 생성Scene 저장Scene 열기Scene 전환방법부터 알아보겠습니다.1. Scene 다시 알아보기Scene은게임이나.. 2026. 9. 22.
언리얼엔진5 C++ GameInstance와 GameInstanceSubsystem으로 전역 데이터 관리하기 ▣ 게임을 만들다 보면 Level이 변경되어도 유지해야 하는 데이터가 필요합니다.예를 들어MainMenu↓CharacterSelect↓Stage01↓Stage02순서로 Level을 이동한다고 하겠습니다.이때 다음과 같은 데이터는 Level이 변경되어도 유지해야 할 수 있습니다.선택한 캐릭터선택한 난이도현재 Run Score현재 Stage 번호게임 세션 중 유지해야 하는 설정값일반적인 Actor나 GameMode에 이런 데이터를 저장하면 Level이 변경될 때 해당 객체도 다시 생성되기 때문에 데이터가 사라질 수 있습니다.이럴 때 사용할 수 있는 것이UGameInstance와UGameInstanceSubsystem입니다.이번 글에서는 Unreal Engine 5.8을 기준으로GameInstance에 데이터.. 2026. 9. 22.
Unity6 Gizmo와 Pivot, Center 알아보기 ▣ 이번 글에서는 Unity Scene View에서 GameObject를 조작할 때 사용하는Gizmo와Pivot,Center의 차이를 알아보겠습니다.앞에서는 Transform의PositionRotationScale을 이용해서 GameObject를 이동하고,회전하고,크기를 변경하는 방법을 알아봤습니다.Scene View에서는 Inspector에 숫자를 직접 입력하지 않아도GameObject를 선택한 다음MoveRotateScaleTool을 이용해서 Transform을 조작할 수 있습니다.이때 Scene View에 나타나는 축과 Handle을 이용해서GameObject를 움직이게 됩니다.그리고 Tool Settings에는PivotCenter라는 설정이 있습니다.처음에는 두 설정을 바꿔도 GameObject .. 2026. 9. 21.
Unity6 Tag와 Layer 차이와 사용 방법 ▣ 이번 글에서는 Unity에서 GameObject를 구분할 때 사용하는Tag와 Layer의 차이와 사용 방법을 알아보겠습니다.Unity로 게임을 만들다 보면Scene에 수많은 GameObject가 생깁니다.예를 들어PlayerEnemyGroundItemWeaponDoorNPC같은 Object가 있을 수 있습니다.이때 단순히 GameObject 이름만 이용해서각 Object의 역할을 구분하는 것보다Unity에서 제공하는TagLayer를 사용하는 경우가 많습니다.처음에는 둘 다 GameObject를 분류하는 기능처럼 보여서차이를 이해하기 어려울 수 있습니다.가장 간단하게 먼저 정리하면Tag→ 이 GameObject가 무엇인지 구분Layer→ 이 GameObject를 어떤 시스템에서 처리할 것인지 구분이.. 2026. 9. 21.
언리얼엔진5 C++ PlayerController Possess UnPossess로 Pawn 제어하기 ▣ PlayerController는 현재 자신이 제어할 Pawn을 변경할 수 있습니다.예를 들어 게임을 만들다 보면플레이어 캐릭터↓차량 탑승↓차량 조작↓차량에서 내림↓다시 플레이어 캐릭터 조작처럼 플레이어의 입력 주체를 바꿔야 하는 경우가 있습니다.또는캐릭터 사망↓새로운 캐릭터 생성↓새로운 캐릭터 조종이나Player↓드론 조종↓Player 복귀같은 시스템에서도 같은 구조를 사용할 수 있습니다.이때 사용하는 대표적인 함수가Possess()와UnPossess()입니다.이번 글에서는 Unreal Engine 5.8을 기준으로PlayerController에서 현재 Pawn 확인Possess로 다른 Pawn 제어UnPossess로 제어 해제OnPossess와 OnUnPossessPawn 교체Auto Possess.. 2026. 9. 21.
언리얼엔진5 C++ Sprint Crouch Dash와 Stamina 캐릭터 이동 시스템 구현 ▣ 기본적인 캐릭터 이동을 만들었다면 다음으로 자주 추가하게 되는 기능이 있습니다.걷기달리기 Sprint앉기 Crouch대시 Dash스태미나 StaminaTPS, 액션, RPG 등 캐릭터를 직접 조작하는 게임에서는 자주 사용하는 기능입니다.이번에는 기존 Enhanced Input 이동 코드에Shift→ SprintC→ CrouchLeft Alt→ Dash입력을 추가하고,Sprint→ Stamina 지속 소모Dash→ Stamina 일정량 소모Stamina가 없으면→ Sprint / Dash 제한일반 이동→ Stamina 회복까지 하나의 캐릭터 이동 시스템으로 만들어보겠습니다.Unreal Engine 5.8을 기준으로 작성합니다.구현할 전체 구조최종 흐름은 다음과 같습니다.기본 이동│├─ Sprint│ .. 2026. 9. 21.
Unity6 GameObject 생성, 복제, 삭제, 활성화 방법 ▣ 이번 글에서는 Unity Scene을 구성하는 기본 객체인GameObject를 생성하고,복제하고,삭제하고,활성화 / 비활성화하는 방법을 알아보겠습니다.앞에서 Unity의 기본 구조를Scene↓GameObject↓Component형태로 알아봤습니다.그리고 GameObject에는 기본적으로Transform Component가 존재하고,Position,Rotation,Scale을 이용해서 위치와 방향, 크기를 변경할 수 있다는 것도 확인했습니다.게임을 만들다 보면 Scene에PlayerEnemyItemGroundCameraLightDoor같은 GameObject를 계속 만들게 됩니다.같은 Object가 여러 개 필요하면 복제하고,필요하지 않은 Object는 삭제할 수도 있습니다.게임 진행 상황에 따라보이게.. 2026. 9. 18.
Unity6 World 좌표와 Local 좌표 알아보기 ▣ 이번 글에서는 Unity의 Transform에서 자주 사용하는World 좌표와 Local 좌표의 차이를 알아보겠습니다.앞 글에서는 Transform Component의PositionRotationScale을 이용해서 GameObject의 위치와 회전, 크기를 변경해봤습니다.GameObject 하나만 사용할 때는 Position 값을 그대로 보면 되기 때문에좌표가 크게 어렵지 않습니다.하지만 GameObject 사이에 Parent와 Child 관계가 생기면다음과 같은 상황을 볼 수 있습니다.Scene에서 보는 위치와Inspector에 표시되는 Position이 서로 달라 보인다.이런 차이를 이해하려면World CoordinateLocal Coordinate개념을 알아야 합니다.Unity 공식 문서에서도.. 2026. 9. 18.
언리얼엔진5 C++ ActorComponent로 재사용 가능한 게임 기능 만들기 ▣ 게임을 만들다 보면 서로 다른 Actor에서 같은 기능이 필요한 경우가 많습니다.예를 들어Player→ 공격 CooldownEnemy→ 공격 CooldownWeapon→ 발사 CooldownSkill→ 사용 Cooldown처럼 사용하는 Actor는 서로 다르지만 실제 필요한 기능은 비슷할 수 있습니다.이 기능을 각각의 클래스에 직접 구현하면APlayerCharacter→ Cooldown 변수→ Timer→ Cooldown 함수AEnemyCharacter→ Cooldown 변수→ Timer→ Cooldown 함수AWeapon→ Cooldown 변수→ Timer→ Cooldown 함수처럼 같은 코드가 반복됩니다.이럴 때 공통 기능을 UActorComponent 하나로 분리하면Player└─ ActionC.. 2026. 9. 18.
언리얼엔진5 C++ TWeakObjectPtr 사용법과 UObject 안전하게 참조하기 ▣ 게임을 만들다 보면 다른 Actor나 UObject를 잠시 기억해두고 나중에 다시 사용해야 하는 경우가 많습니다.예를 들어 AI가 현재 공격할 Player를 기억한다고 하겠습니다.Enemy↓Player Target 저장↓Player 추적↓Player 공격그런데 Target으로 저장한 Player가 먼저 사망해서 제거되면 어떻게 될까요?Enemy 입장에서는저 Actor가 아직 존재하는가?이미 Destroy되었는가?계속 사용해도 되는가?를 확인해야 합니다.이처럼 다른 UObject의 수명을 직접 책임지지 않으면서객체가 살아 있는 동안만 안전하게 참조하고 싶을 때 사용할 수 있는 것이TWeakObjectPtr입니다.이번 글에서는 Unreal Engine 5.8을 기준으로 TWeakObjectPtr의 사용 .. 2026. 9. 18.
언리얼엔진5 C++ UObject와 Actor 차이, 객체 생명주기와 Owner Instigator 이해하기 ▣ 언리얼 엔진 C++ 코드를 보다 보면 대부분의 클래스 앞에UAF같은 접두사가 붙어 있는 것을 볼 수 있습니다.예를 들어UObjectUActorComponentUUserWidgetAActorAPawnACharacter같은 클래스입니다.이 중 Unreal Engine의 객체 시스템을 이해할 때 가장 먼저 구분해야 하는 것이UObjectAActor입니다.그리고 Actor를 사용하기 시작하면 자연스럽게GetOwner()GetInstigator()GetInstigatorController()같은 함수도 만나게 됩니다.특히 총기, Projectile, Damage 시스템을 만들다 보면이 총알은 누가 만들었는가?이 무기는 누구의 것인가?이 데미지를 발생시킨 실제 캐릭터는 누구인가?를 구분해야 합니다.이번 글에서는.. 2026. 9. 17.
언리얼엔진5 C++ Widget Blueprint 버튼 찾고 클릭 후 2초 비활성화하기 ▣ 이미 만들어져 있는 Widget Blueprint가 있고, 그 안에 있는 Button을 C++에서 찾아서 사용해야 하는 경우가 있습니다.예를 들어 기존에WB_Main이라는 Widget Blueprint가 있고,Designer 안에ActionButton이라는 Button이 있다고 하겠습니다.이번에는 Widget Blueprint를 새로 만들거나 C++ UserWidget 클래스를 부모로 만드는 것이 아니라이미 만들어져 있는 WB_Main↓C++에서 Widget Instance 사용↓이름으로 ActionButton 찾기↓OnClicked 함수 연결↓Button 클릭↓원하는 함수 호출↓Button 2초간 비활성화↓2초 후 다시 활성화하는 방법을 알아보겠습니다.이 글은 Unreal Engine 5.8을 기준.. 2026. 9. 17.
Unity6 Transform Position, Rotation, Scale 사용 방법 ▣ 이번 글에서는 모든 GameObject에 기본적으로 존재하는Transform Component를 알아보고,PositionRotationScale을 이용해서 GameObject의위치,회전,크기를 변경하는 방법을 알아보겠습니다.앞 글에서 Unity의 기본 구조를Scene↓GameObject↓Component형태로 알아봤습니다.그리고 GameObject를 생성하면기본적으로 Transform Component가 존재한다는 것도 확인했습니다.Transform은 Unity에서 굉장히 자주 사용하는 Component입니다.예를 들어Player 위치 이동Camera 회전Door 회전Item 크기 변경Enemy 배치건물 배치같은 작업에서 Transform을 사용합니다.Unity 공식 문서에서도 Transform은 G.. 2026. 9. 17.
Unity6 Scene과 GameObject, Component 이해하기 ▣ 이번 글에서는 Unity에서 가장 기본이 되는Scene,GameObject,Component의 관계를 알아보겠습니다. 이전에 Unity Editor의 기본 화면과 조작 방법을 알아보면서Cube를 하나 생성해봤습니다.Cube를 선택하면Hierarchy에는 Cube가 표시되고,Inspector에는 여러 Component가 표시됐습니다.처음에는 이것들이 서로 다른 기능처럼 보일 수 있지만Unity의 기본 구조를 간단하게 정리하면Project↓Scene↓GameObject↓Component형태로 이해할 수 있습니다.예를 들어 3D 게임 Stage 하나를 만든다고 생각해보겠습니다.Main Scene├─ Player├─ Enemy├─ Main Camera├─ Directional Light├─ Ground└─ .. 2026. 9. 17.
Unity6 Git과 GitHub로 프로젝트 백업하는 방법 ▣ 이번 글에서는 Git과 GitHub를 이용해서Unity Project를 백업하고 변경 내용을 관리하는 방법을 알아보겠습니다.Unity Project를 만들다 보면C# Script 수정Scene 수정Prefab 수정Material 수정Project Settings 변경Package 추가등 수많은 파일이 계속 변경됩니다.게임을 만들다가 잘못 수정했거나파일을 실수로 삭제하면이전 상태로 돌아가야 하는 경우도 있습니다.또 컴퓨터에 문제가 생겼을 때Project가 한 곳에만 저장되어 있다면프로젝트 전체를 잃어버릴 수도 있습니다.그래서 게임 개발에서는Git+GitHub같은 Version Control System을 이용해서Project의 변경 내용을 기록하고원격 저장소에도 보관하는 방법을 많이 사용합니다.1. G.. 2026. 9. 16.
Unity6 프로젝트 폴더 구조 알아보기 ▣ Unity Project를 생성하면 프로젝트 폴더 안에 여러 폴더와 파일이 만들어집니다.처음 프로젝트 폴더를 열어보면 다음과 같은 이름들을 볼 수 있습니다.MyProject├─ Assets├─ Library├─ Logs├─ Packages├─ ProjectSettings├─ Temp└─ UserSettingsProject를 실행한 상태나 Unity Version,사용하고 있는 Package 등에 따라 일부 폴더는 추가되거나 보이지 않을 수도 있습니다.Unity 공식 문서에서도 프로젝트를 생성하면 기본적으로AssetsLibraryLogsPackagesProjectSettingsTemp등의 폴더가 생성된다고 설명하고 있습니다.처음에는 폴더가 많아 보여 복잡하지만우선 다음 세 개를 가장 중요하게 생각하면 .. 2026. 9. 16.
Unity6 공식 Manual과 Scripting API 보는 방법 ▣ Unity를 공부하다 보면 인터넷 검색이나 영상만으로 해결하기 어려운 문제가 생깁니다.예를 들어 다음과 같은 상황입니다.Rigidbody는 정확히 어떤 Component인가?AddForce() 함수는 어떻게 사용하는가?Transform.position은 어떤 값을 사용하는가?이 함수가 반환하는 값은 무엇인가?Input System의 현재 사용법은 무엇인가?예전에 작성된 Unity 코드가 Unity 6에서도 사용할 수 있는가?Cinemachine 2와 Cinemachine 3은 무엇이 다른가?이럴 때 가장 먼저 확인하면 좋은 자료가Unity에서 제공하는 공식 Documentation입니다.Unity 공식 자료는 크게 다음처럼 나누어 생각하면 이해하기 쉽습니다.Unity Manual→ Unity 기능의 .. 2026. 9. 16.
Unity6 Package Manager와 Project Settings 사용 방법 ▣ 이번 글에서는 Unity 프로젝트의 기능을 추가하거나 관리할 때 사용하는Package Manager와 Project Settings,그리고 Unity Editor의 개인 작업 환경을 설정하는 Preferences에 대해 알아보겠습니다.Unity를 사용하다 보면 앞으로Input System 설치Cinemachine 설치AI Navigation 설치XR Interaction Toolkit 설치프로젝트 Physics 설정게임 이름 설정화면 설정Visual Studio 연결같은 작업을 하게 됩니다.이 기능들이 모두 같은 곳에서 설정되는 것은 아닙니다.크게 구분하면Package Manager→ Unity 프로젝트에 기능과 Package 추가Project Settings→ 현재 프로젝트의 전역 설정 관리Pref.. 2026. 9. 16.
언리얼엔진5 Modeling Mode 기본 사용법 ▣ Unreal Engine에서 Static Mesh를 사용하다 보면 간단한 Mesh 수정이 필요한 경우가 있습니다.예를 들어Cube 하나를 직접 만들고 싶다.Static Mesh의 Pivot 위치를 수정하고 싶다.여러 Mesh를 합치고 싶다.하나의 Mesh를 여러 개로 분리하고 싶다.Mesh 일부를 잘라내고 싶다.UV를 수정하고 싶다.Collision을 만들고 싶다.같은 작업입니다.이런 작업을 할 때마다 Blender, Maya, 3ds Max 같은 외부 Modeling 프로그램으로 돌아갈 수도 있지만 Unreal Engine에는 Editor 안에서 직접 Mesh를 생성하고 수정할 수 있는Modeling Mode가 있습니다.이번 글에서는 특정 Modeling Tool을 깊게 사용하기 전에 Modelin.. 2026. 9. 16.
언리얼엔진5 Texture와 UV 좌표 기본 개념 ▣ 이전 글에서는 Material의 Base Color, Metallic, Roughness와 Material Instance를 알아봤습니다.Material을 조금 더 자연스럽게 만들기 시작하면 단순한 색상 값만으로는 부족해집니다.예를 들어 나무 Material을 만든다고 하겠습니다.단순하게Base Color→ Brown으로 설정하면 갈색 표면은 만들 수 있지만 실제 나무처럼 보이는나뭇결색상 변화표면의 거칠기작은 홈과 굴곡을 표현하기 어렵습니다.이럴 때 사용하는 것이Texture입니다.하지만 Texture 이미지만 준비한다고 바로 3D Mesh에 정상적으로 적용되는 것은 아닙니다.3D Mesh의 어느 위치에 Texture의 어느 부분을 표시할 것인지 알려주는 좌표가 필요합니다.이때 사용하는 것이UV 좌표.. 2026. 9. 16.
Unity6 Editor 기본 화면과 조작 방법 ▣ 이번 글에서는 Unity Editor의 기본 화면을 알아보고,직접 GameObject를 생성해서선택, 이동, 회전, 크기 변경 등의 기본 조작을 해보겠습니다.Unity Editor를 처음 실행하면 여러 Window와 버튼이 한 번에 보여서화면이 복잡하게 느껴질 수 있습니다.하지만 처음부터 모든 기능을 알 필요는 없습니다.우선 자주 사용하는SceneGameHierarchyInspectorProjectConsole정도만 알고 있으면 됩니다.이 Window들은 앞으로 Unity로 게임을 만드는 동안 계속 사용하게 됩니다.이번 글에서는 이전에 만든Universal 3D프로젝트를 기준으로 진행하겠습니다.1. Unity Editor 실행Unity Hub를 실행합니다.Projects에서 이전에 생성한 프로젝트를 .. 2026. 9. 15.
Unity6 프로젝트 생성과 Universal 2D, Universal 3D 차이 알아보기 ▣ 이번 글에서는 Unity 6.6으로 새로운 프로젝트를 생성하고,프로젝트를 만들 때 볼 수 있는Universal 2D와 Universal 3D Template의 차이를 알아보겠습니다.이전 글에서 Unity 6.6과 Windows PC 게임 Build에 필요한 개발 환경을 설치했습니다.이번에는 실제 게임을 만들기 위한 Unity Project를 생성해보겠습니다.Unity Hub에서 새로운 프로젝트를 만들려고 하면 여러 종류의 Template을 볼 수 있습니다.처음 Unity를 사용하는 경우Universal 2DUniversal 3D중에서 어떤 것을 선택해야 하는지 헷갈릴 수 있습니다.간단하게 먼저 정리하면2D 게임 제작→ Universal 2D3D 게임 제작→ Universal 3D를 사용하면 됩니다.하.. 2026. 9. 15.
언리얼엔진5 Material Instance와 Parameter 사용법 ▣ 이전 글에서는 Material의 기본 속성인Base ColorMetallicRoughness에 대해서 알아봤습니다.예를 들어 빨간색 플라스틱 Material을 만들었다고 생각해보겠습니다.이번에는 같은 구조를 사용하면서파란색 플라스틱노란색 플라스틱매끄러운 플라스틱거친 플라스틱도 만들고 싶습니다.가장 단순하게 생각하면 Material을 계속 복제해서 각각의 값을 변경할 수 있습니다.M_RedM_BlueM_YellowM_RoughM_Smooth하지만 Material의 구조가 모두 같은데 색이나 Roughness 같은 값만 다르다면 이렇게 Material을 계속 복제해서 관리하는 것은 비효율적입니다.이럴 때 사용하는 것이Material Instance입니다.이번 글에서는 Unreal Engine 5.8을 기.. 2026. 9. 15.