Study/Unity Engine 썸네일형 리스트형 [Unity] Data Serialization https://www.youtube.com/watch?v=kEu_AQ_Es-8직렬화는 객체를 저장하거나 메모리, DB 혹은 파일로 전송하기 위해 객체를 바이트 스트림으로 변환하는 프로세스다. 즉, 객체를 해제하고(Serialization) 다시 복구(Deserialization)할 수 있도록 개체의 상태를 저장한다.즉, 메모리 상에 산발적으로 분포되어 있는 데이터들을, 연속적인 메모리 형태로 바꾼다.이렇게 연속적인 데이터 형태로 바꿀 때, 컴퓨터가 읽을 수 있는 2진수로 표현하기도 하지만, XML/YAML/JSON과 같이 사람이 읽을 수 있는 형태로 제공하는게 일반적이다. 예를들어, 다음과 같이 게임 제작을 위해 캐릭터 설정을 하고, 이를 각각의 XML/YAML/JSON으로 표현하면 다음과 같이 표현한다.. 더보기 [Unity] 유니티 이해하기 04 - 유니티 Object와 그 하위 클래스들 Objet는 유니티의 베이스 클래스다. 이 Object를 상속받는 대표적인 클래스들은 다음과 같다. GameObject - 씬 내의 모든 엔티티.Component - GameObject에 기능 추가.MonoBehaviour - 사용자 정의 스크립트.ScriptableObject - 데이터 저장 및 관리.Texture, Material - 그래픽 렌더링 관련 클래스.AudioClip - 오디오 관리.AnimationClip - 애니메이션 데이터 관리.AssetBundle - 리소스 묶음 관리.ObjectObject 클래스는 모든 Unity 엔진 객체의 기본 클래스로 다음과 같은 기능들을 제공한다.기본 기능 : 모든 엔진 객체를 참고하거나 관리하는 데 사용객체 생성 및 복제: Instantiate 메서드를 .. 더보기 [Unity] 유니티 이해하기 03 - Input System 유니티의 Input System은 플레이어 입력을 관리하고 처리하기 위해 제공되는 시스템으로, Unity의 기본적인 "Legacy Input Manager"를 대체하기 위해 개발되었다. 이 시스템은 더 모듈화되고 직관적인 입력 관리 기능을 제공하며, 다양한 플랫폼과 장치를 쉽게 지원할 수 있도록 설계되었다.주요 특징다양한 입력 장치 지원:키보드, 마우스, 게임패드, 터치스크린, VR/AR 컨트롤러 등 다양한 입력 장치를 지원한다.여러 입력 장치를 동시에 처리할 수 있다.액션 기반 구조:Unity Input System은 Action이라는 개념을 중심으로 동작한다.액션은 특정 입력(버튼 누르기, 축 움직임 등)을 의미하며, 플레이어의 입력과 게임의 반응 간의 연결을 간소화한다.플랫폼 독립적:특정 플랫폼에 .. 더보기 [Unity] 유니티 이해하기 02 - 이벤트 함수의 실행순서 그리고 스크립트 게임 엔진이라는 것은 결국, 다음과 같은 로직으로 작동된다.https://waterglass0105.tistory.com/91 [UE5 C++ Multiplayer Shooter] #01 언리얼 엔진의 프레임 워크와 기초 그리고 네트워크일반적인 게임 엔진은 다음 코드의 흐름대로 진행된다.언리얼에서는 이러한 루프를 직접 다루지 않고, 기본함수가 아닌 인터페이스나 함수를 상속받아 확장하는 방법으로 구현한다. 이때, 언리waterglass0105.tistory.com이를 유니티 엔진에서 조금 심플하게 표현해보면 다음과 같이 표현할 수 있다. 그리고 이를 더욱 자세히 살펴보면, 다음과 같은 사이클을 가지게 된다.이제 이 단계를 자세히 살펴보자1. Initialization[Awake -> OnEnable -> .. 더보기 [Unity] 유니티 이해하기 01 - 게임오브젝트와 컴포넌트 게임 오브젝트유니티의 게임 오브젝트는 '컨테이너'다. 기본적으로, GameObject는 그 자체로 아무것도 하지 않는다. 만일 이러한 게임 오브젝트를 캐릭터나 환경 아니면 다른 특수 효과가 되기 위해서는 '속성'이 필요하다. 당연하게도, 캐릭터라는 게임 오브젝트와 상자라는 게임 오브젝트는 차이가 있어야 한다. 가령, 캐릭터는 플레이어가 조종이 가능하고 여러 동작을 할 수 있어야 할 것이며, 상자는 그저 힘을 받으면 움직인다거나 할 것이다. 즉, 캐릭터가 가지는 속성과 상자가 가지는 속성은 '차별점'이 있어야 한다. 그리고 이러한 '차별점'을 만들어 주는 것이 바로 컴포넌트다. 다시금 정리해보면, 게임 오브젝트는 여러 다양한 컴포넌트의 컨테이너다. 컴포넌트기본적으로 모든 게임 오브젝트는 자동으로 Trans.. 더보기 [Unity] 유니티 프레임 워크, .NET과 GC 우선 .NET에 대해 알아야한다..NET은 소프트웨어 개발을 위한 도구, 라이브러리 및 언어를 포함하는 플랫폼으로, 이를 통해 다양한 디바이스와 운영체제에서 실행 가능한 애플리케이션 제작이 가능하다. 기존 .NET Framework의 주요 한계는 플랫폼 간 코드 공유가 제한적이었다는 점이다. 특히 .NET Framework는 Windows 운영체제를 중점적으로 지원했기 때문에, 리눅스 및 macOS와 같은 다른 운영체제로 애플리케이션을 포팅하려면 코드 수정과 테스트 과정이 필수적이었다.이러한 제약을 극복하기 위해, 마이크로소프트는 .NET Core를 출시하였다. .NET Core는 오픈소스이며 크로스 플랫폼을 지원해 개발자들이 Windows, Linux, macOS 등 다양한 환경에서 동일한 코드를 실행.. 더보기 [Unity] Profiling Unity ProfilingUnity Profiler는 게임 성능을 분석하고 최적화하기 위한 도구다. 주로 CPU, GPU, 메모리, 렌더링 성능 등을 분석한다.여기에서 플레이 모드를 활성화하면 Profiler 창에 성능 데이터가 표시된다. 주요 프로파일링 카테고리는 다음과 같이 볼 수 있다.CPU Usage함수 호출 시간과 CPU 사용량을 분석.스크립트에서 가장 많이 사용된 메서드나 코루틴을 확인 가능.GPU UsageGPU 렌더링 관련 데이터 분석.렌더링 시간이 높은 쉐이더나 오브젝트를 확인.Memory메모리 사용량 및 할당 정보를 확인.가비지 컬렉션(Heap Allocations) 문제 파악.Rendering드로우 콜, 배치 수 및 오브젝트 렌더링 최적화.Physics물리 시뮬레이션 시간 분석.복잡.. 더보기 [Unity] DLL과 PDB 언리얼 엔진 그리고 유니티 엔진을 사용해서 게임 프로그래밍을 할 때, 가장 길게 느껴지는 시간은 아무래도 컴파일 시간이다.물론, 코딩을 잘해서 머릿속으로 코드를 돌려보고 작동까지 볼 수 있는 실력이 된다면 괜찮겠지만 안타깝게도 아직 그정도 수준까지는 멀었다.이번에는 유니티에서 이러한 컴파일 시간을 줄여보는 방법에 대해 공부해보았다.우선 DLL 파일과 PDB 파일에 대해 알아야한다.1. DLL;Dynamic Link Library라이브러리란, 컴퓨터 프로그램에서 사용하는 비휘발성 자원(함수, 데이터, 타입 등)의 모임을 뜻한다.DLL은 동적으로 링크되고 실행되는 재사용 가능한 코드 모듈을 의미한다. 즉, 여러 프로그램에서 동시에 사용할 수 있는 코드와 데이터를 포함하는 라이브러리이다. 그리고 유니티에서 D.. 더보기 이전 1 2 다음