게임엔진

    [Unity] 스프라이트 렌더러 속성 (Sprite Renderer)

    #3 Unity 스프라이트 렌더러 속성 (Sprite Renderer) (tistory.com)

    [Unity] 스프라이트 임포터 속성

    #2 Unity 스프라이트 임포터 속성 (tistory.com)

    [Unity] 폴더 관리

    유니티 폴더 관리 규칙 Plugins, Editor, Resources 는 유니티에서 정해논 기능이 있으므로 다른 용도로 사용할수 없으며, Assets/Scripts/Editor 와 같은 경우로도 사용해서는 안된다. 또한 자동으로 생성된 Editor,Plugins 폴더를 삭제 해서는 안된다. #1 Unity 폴더 관리 (tistory.com)

    [Unity] Cinemachine Confiner change - 시네머신 confiner 변경

    유니티 내에서 제공하는 시네머신의 속성중 Confiner에서 Bounding Shape 2D를 스크립트에서 제어하는 방법이다. 이를 이용하면 시네머신 1개의 영역을 런타임중 동적으로 할당할 수 있다. using System.Collections; using System.Collections.Generic; using UnityEngine; using Cinemachine; public class ConfinerChange : MonoBehaviour { public static ConfinerChange confinerChangeInstance; public static CinemachineConfiner confiner; void Awake() { confinerChangeInstance = this;..

    [Unreal] 클래스 기본 객체 (CDO) + 로딩과정 + 로그디버깅 + 인스턴스 생성

    UCLASS, 리플렉션, 프레임워크 UClass에는 언리얼 오브젝트에 대한 클래스 계층 구조 정보와 멤버 변수, 함수에 대한 정보를 모두 기록 앞선 강좌에서 하나의 언리얼 오브젝트가 만들어지기 위해서는, 실제 컴파일 전에 언리얼 헤더 툴에 의해 헤더 파일을 분석하는 과정이 선행되며, 이 과정이 완료되면 Intermediate 폴더에 언리얼 오브젝트의 정보를 담은 메타 파일이 생성된다고 설명했다. 언리얼 엔진이 컴파일 전에 먼저 메타 소스 파일과 헤더 파일을 생성하는 목적은 여러가지가 있겠지만, 기존의 C++ 문법에서 제공하지 못하는 런타임에서의 빠른 클래스 정보의 검색이라고 생각한다. 이 메타 정보는 언리얼 엔진이 지정한 UClass라는 특별한 클래스를 통해 보관된다. UClass에는 언리얼 오브젝트에 ..

    [Unreal] 언리얼 빌드 시스템 + Target.cs

    Unreal Build System (언리얼 빌드 시스템)은 언리얼 엔진 4 (UE4) 빌드 프로세스를 자동화시키는 툴 모음이다. 일반적인 수준에서 UnrealBuildTool 과 UnrealHeaderTool 은 언리얼 빌드 시스템을 지원한다. UnrealBuildTool UnrealBuildTool (UBT)는 다양한 빌드 구성으로 UE4 소스 코드를 빌드하는 프로세스를 관리해 주는 커스텀 툴이다. BuildConfiguration.cs 파일에서 다양한 사용자 환경설정 가능 빌드 옵션을 살펴볼 수 있다. UnrealHeaderTool UnrealHeaderTool (UHT) 는 UObject 시스템을 지원하는 커스텀 파싱 및 코드 생성 툴이다. 코드 컴파일은 두 단계로 이루어진다: UHT 를 실행한다..

    [Unity] 최적화 Batching, Draw Call, SetPass calls

    Batching(배칭) 동일한 메테리얼을 공유하는 복수의 드로우콜을 하나로 묶어서 드로우콜하는 기법 Batching = Draw Call + SetPass calls Draw Call(드로우콜) CPU가 GPU에게 화면에 오브젝트를 그려달라고 요청하는 것 한프레임에서 오브젝트를 하나 그릴때 여러 정보들이 CPU에서 GPU로 전달 DATA > Storage(HDD,SDD,SD) > CPU Memory > GPU Memory 매 프레임 화면에 그려야 하기 때문에 값이 클수록 프레임에 부하가 걸린다. 적정개수 PC : 1000개 이상 가능 ~ 3000개 모바일 : 100개도 많다. 최신 디바이스는 200개까지가능 일반적으로 오브젝트 단위로 1개씩 증가, 쉐이더에 따라서 추가적으로 증가 SetPass calls..

    [Unity] 생명 주기

    Reset : 오브젝트를 생성 후 인스펙터 뷰에서 리셋을 눌러줄 때 실행된다. 객체의 속성을 초기 값으로 설정해 줄 때 사용한다. Awake : 스크립트가 실행될 때 한번만 호출된다. 모든 오브젝트가 초기화 된 후 호출되기 때문에 GameObject.Find 같은 명령문을 안전하게 사용할 수 있다. Awake 함수는 언제나 Start 함수 전에 호출되므로 초기화 순서를 정할 수 있게 한다. (Coroutine 사용 불가) OnEnable : 인스펙터뷰에서 체크를 통해서 게임 오브젝트를 활성화 할 때 사용된다. 활성화 할 때마다 호출 된다. Start : Update 함수가 호출되기 전에 한번만 호출된다. 다른 스크립트의 모든 Awake가 모두 실행된 이후에 실행된다. 스크립트가 활성화 되어 있어야한다. ..

    [Unity] Mono 분석

    Mono .NET Framework가 매우 유용한 개발환경이지만, 환경에 상관없이 Windows 프로그램을 구동시키자는 취지로 개발되었기 때문에 Windows 환경에만 제한되어 있었다. 이에 오픈 소스 개발자 그룹은 Linux/Mac 등의 Windows 환경 외에서도 .NET Framework를 사용하기 위해 Mono 프로젝트를 시작하였다. .NET Framework는 오픈 소스 프레임워크가 아니었기 때문에 ECMA International(국제 표준 기구)에 등록된 .NET Framework의 CLI를 분석하여 구현했다고 한다. 현재 Microsoft는 .NET Framework를 오픈 소스로 공개했을 뿐만 아니라, Mono의 메인테이너인 Xamarin을 인수하고, .NET Core라는 Windows,..

    [Unity] 애니메이션 타입 legacy로 변경하기

    1) 외부에서 import한 모델의 경우 import settings의 rig탭에서 애니메이션 타입을 선택할 수 있다. 2) 유니티에서 애니메이션을 생성한 경우에는 다른 방법으로 애니메이션 타입을 변경 해야한다. 아래 예에서 오브젝트의 애니메이션을 생성하였다. 3) controller와 anim파일이 생성되었고 4) 오브젝트에 animator 컴포넌트가 추가된 것을 확인할 수 있다. 5) 이 게임 오브젝트의 애니메이션 타입을 legacy로 변경하려면 먼저 인스펙터에서 아래이미지 우측상단에 표시한 아이콘을 클릭하고 debug를 선택한다. 6) 애니메이션(text.anim)를 선택하고 legacy에 체크하면된다(이 항목은 debug모드에서만 확인가능하다) 유니티에서 애니메이션 타입 legacy로 변경하기 (..