728x90

게임제작 108

[Unity] Custom Editor, ReorderableList 적용하기

. 유니티 에디터에서 Inspector 를 이쁘게 정리하기 위해 ReorderableList 적용하기 포스트. 사용해야할 기본 코드 using UnityEditorInternal; // 클래스 내에서 private ReorderableList list; private void OnEnable() { list = new ReorderableList(serializedObject, serializedObject.FindProperty("TriggerList"), true, true, true, true); // Element 가 그려질 때 Callback list.drawElementCallback = (Rect rect, int index, bool isActive, bool isFocused) => { ..

[Unity] Serialize 타입, 값 유지하기 (FormerlySerializedAs)

. 커스텀 컴포넌트를 추가해서 인스펙터로 값을 많이 입력하고 있었는데, 리팩토링하면서 타입과 내용을 변경할 일이 생겼습니다. 그냥 바꿨다간 인스펙터에 입력했던 값들이 모두 날아가기 때문에 별도의 방법을 써야하나 고민이었는데.. 결과적으론 FormerlySerializedAs( oldName ) 속성을 사용하면 해결됩니다. using UnityEngine; using UnityEngine.Serialization; public class MyMonster : MonoBehaviour { [FormerlySerializedAs("hitpoints")] public int health; } 위처럼, FormerlySerializeAs 인자로 이전 변수 이름을 넣어주면, 새로운 변수에 값이 반영됩니다. 타입만 ..

[Unity] UGUI, Scroll View 만들기

. Unity 내장 UI 시스템으로 Scroll View 만들기. 아주 간단해서 포스트로 쓸 양이 될 지는 모르겠지만, 그래도 빼먹으면 소소하게 시간낭비하는 부분이 있어서 메모 차원에서 남겨봅니다. ​ 대략적인 순서 1. Create > UI > Scroll View 2. Hierarchy 에서 Scroll View 오브젝트 선택 3. 가로/세로 스크롤 여부 체크박스 설정 4. (Optional) Scroll View/Viewport/Content 오브젝트에 추가될 아이템들을 정렬하기 위한 Layout Group 추가. ​ 위 순서대로, Scroll View 오브젝트를 클릭하면 Scroll Rect 컴포넌트가 보이는데, 체크해야할 중요한 옵션은 Horizontal, Vertical. 가로/세로 스크롤 여..

유니티를 이용한 VR 앱 개발, 초보자도 VR게임을 만들 수 있을까?

. 오랜만에 유니티 엔진 개발 서적을 읽었습니다. 2020년 2월 10일에 출간된 신간, 유니티를 이용한 VR앱 개발. 머스터드 컬러가 먹음직(?)스럽습니다. 부담스럽지 않은 분량인데 풀 컬러 지면이라 캐주얼하게 접근하기 좋아 보입니다. 쉬운 책을 여러 권 읽는 스타일인 저 같은 분들께 좋은 독서 거리인 것 같습니다. ​ 이 책은 일본인 저자들이 공동 집필한 책입니다. 코노 노부히로, 마츠시마 히로키, 오오시마 타케나오 세 명의 저자들인데 다들 게임 개발 베테랑들입니다. 베테랑들이 모여 초보자도 쉽게 접근할 수 있는 책을 엮었다는 점이 꽤 신뢰가 갑니다. ​ 그리고 이 책의 역자도 언급하지 않을 수 없는데요, 김은철님, 유세라님 두 분은 제가 초보자분들께 종종 추천하는 "유니티 교과서"의 역자이기도 합니..

[Unity][Asset] DOTween, 트위닝 애니메이션 플러그인

트위닝 애니메이션을 빠르고 효과적으로 만들 수 있게 도와주는 Tweening 애니메이션 애셋, DOTween 입니다. 설치가 쉽고 사용이 편리합니다. 메뉴 Tools/Demigiant/DOTween Utility Panel 위와 같은 패널 창에서 Setup DOTween 클릭 그럼 설치됩니다. 메뉴얼을 같은 창의 Get Started, Documentation 등을 참고. http://dotween.demigiant.com/getstarted.php DOTween - Get Started Before anything else Step 1 Download DOTween and unzip it anywhere in your Unity Assets folder (just not inside the Editor..

[Unity] Canvas Hierarchy 순서 가장 위/아래로 이동시키기

GameObject를 생성하면 Herarchy에 들어가고, Canvas 의 Child로 추가된 GameObject 들은 제일 하위에 있는 Object 의 Image 가 가장 위에 보이게 됩니다. 그래서 Canvas 에 추가된 Object 순서를 바꾸고 싶다면 Sibling 순서를 바꿔줘야 하는데, 가장 위/아래로 이동시키려면 아래 API를 사용하면 됩니다. ​ transform.SetAsFirstSibling(); transform.SetAsLastSibling(); ​ SetAsFirstSibling() 은 가장 아래에 그려지게 SetAsLastSibling() 은 가장 위에 그려지게. ​ https://docs.unity3d.com/ScriptReference/Transform.SetAsLastSib..

[Unity] 잦은 자동빌드, 느리고 멈출 때 해결법

유니티를 사용할 때, 코드 한두줄 바꾸고 유니티 에디터를 잠깐 조작할 일이 종종 생깁니다. 어셋을 확인한다거나 컴포넌트 셋팅을 확인한다거나... 그 때마다 수정된 코드를 변경된 어셋으로 감지해서 자동으로 Refresh 가 되면서 컴파일러도 돌아가는데... 그 때마다 에디터가 프리징됩니다. ​ 에디터 전환을 자주 하다보니 잦은 프리징이 좀 짜증나고 시간 허비도 많아서 셋팅을 변경했습니다. ​ Edit > Preferences 로 가서 Auto Refresh 를 꺼줍니다. 이제 코드를 바꾸든 리소스를 변경하든, 유니티는 자동으로 뭔가 해주지 않습니다. 대신, 수종으로 Ctrl + R을 눌러주면 됩니다. 프로그래머 분들은 컴파일 할 때마다 F7 누르듯, 인터넷 브라우저 F5로 새로고침 하듯, 유니티에선 Ctr..

[이득우의 언리얼 C++] 4장, 게임플레이 프레임워크

. 4장, 게임 플레이와 프레임워크에 대한 내용을 읽고 요약 메모한 내용을 옮겨봅니다. 게임모드, 플레이어컨트롤러, 폰 액터에 대한 개념들을 다룹니다. 4장, 게임플레이 프레임워크 언리얼 엔진에서 게임이 시작되려면 게임의 규칙, 입장 플레이어, 플레이어 조종 액터. 각각, 게임모드, 플레이어 컨트롤러, 폰 위 세 가지 액터를 직접 제작하고 동작하는지 학습. ​ 게임모드 레벨을 구성하는 작업, 게임플레이 설계하는 작업. 게임 플레이 프레임워크는 다양한 게임 요소를 수용할 수 있도록 복잡하고 방대함. 먼저 핵심 두 가지, 게임 규칙을 관리하는 게임 모드, 플레이어가 조종하는 액터인 폰. ​ 언리얼 엔진의 게임 모드. 게임의 틀을 잡아주는 역할. 플레이어가 입장할 때마다 플레이어 점검. 조종할 액터(폰:Paw..

Unreal 엔진 2019.12.22

[예제로 배우는 UE4] AI, Behavior Tree(인공지능, 비헤이비어 트리)

. 언리얼 엔진 AI 제작 관련 챕터 따라만들어보고 메모한 내용 옮겨봅니다. 언리얼 엔진에서 제공하는 비헤이비어 트리와 블랙보드를 활용한 AI 제작을 진행해보고 그 개념과 사용법을 익혀봅니다. - UE와 C++를 사용한 1인칭 게임 만들기 - 발사체 및 발사체 이동 컴포넌트 작업하기 - UE4 AI 툴셋 구성(블랙보드, 비헤이비어 트리, AI 컨트롤러) - 애니메이션 에셋과 C++ 오브젝트 간의 통신 - NavMesh와 NavAgent 속성과 같은 길 찾기 오브젝트 구성 - 블루프린트와 C++에서 사용하는 커스텀 AI 에셋 생성하기 - UE4의 커스텀 콜리전 채널 만들고 작업하기 ​ 프로젝트 설정 NewProject > C++ > Basic Code Project Name : BossMode ​ 1인칭 ..

Unreal 엔진 2019.12.22

[이득우의 언리얼 C++] 챕터3 움직이는 액터의 제작

. 출력 윈도우 로그 UE_LOG( 카테고리, 로깅 수준, 형식 문자열, 인자 ... ) Save/Logs 폴더에 생성. 로그 카테고리 로깅 수준 : 메시지, 경고, 에러 등 로그 카테고리로 필터링 할 수 있다. ​ 로그 카테고리 새로 정의하기. GameCommon.h DECLARE_LOG_CATEGORY_EXTERN( ArenaBattle, Log, All ); ​ GameCommon.cpp DEFINE_LOG_CATEGORY( ArenaBattle ); ​ EngineMinimal.h 와 CoreMinimal.h 와의 차이는? EngineMinimal.h : 4.7 릴리즈 노트에 언급. CoreMinimal.h : 4.15 릴리즈 노트에 언급. ​ EngineMinimal.h가 CoreMinimal...

Unreal 엔진 2019.12.07
728x90
반응형