본문 바로가기

분류 전체보기

(61)
12월 4일 TIL Texture와 Sprite는 게임 개발에서 그래픽을 다루는 데 사용되는 요소이다 Texture (텍스처): Texture는 2D 이미지를 나타내는 개념이다 게임에서 Texture는 주로 게임 오브젝트의 표면에 적용되어 시각적인 효과를 부여하는 데 사용된다 Texture는 이미지 파일로부터 생성되며, 주로 PNG, JPEG 등의 이미지 형식을 사용한다 게임에서는 Texture를 미리 준비하여 게임 오브젝트의 재질(Material)에 할당하거나, 쉐이더(Shader)를 통해 특수한 시각 효과를 적용하는 데 사용된다 Sprite (스프라이트): Sprite는 2D 이미지의 일부분을 의미한다 게임에서 Sprite는 주로 2D 게임에서 게임 오브젝트의 시각적인 표현을 위해 사용된다 Sprite는 Texture를..
12월 1일 TIL Unity의 물리 엔진은 게임 내에서 물리적인 동작을 시뮬레이션하고 처리하는 역할을 담당한다 물리 엔진은 주로 Rigidbody 컴포넌트와 Collider 컴포넌트를 사용하여 동작하며, 다음과 같은 요소를 조작할 수 있다 Rigidbody (리지드바디): Rigidbody 컴포넌트는 게임 오브젝트에 물리적인 특성을 부여하는 역할을 한다 Rigidbody는 질량, 중력, 속도, 회전 등의 물리적인 속성을 가지며, 힘과 토크를 적용하여 움직임을 제어할 수 있다 Rigidbody는 충돌과 관련된 물리적인 상호작용을 처리하고, Collision 이벤트를 통해 충돌 정보를 받을 수 있다 Collider (콜라이더): Collider 컴포넌트는 게임 오브젝트의 충돌을 감지하고 처리하는 역할을 한다 Collider는..
11월 30일 TIL Unity에서 Scene Load는 게임에서 다른 씬(Scene)으로 전환하는 과정을 말한다 Unity에서는 다양한 방법으로 Scene Load를 수행할 수 있으며, 각각의 방법에는 특징과 용도가 있다 SceneManager.LoadScene() 이 방법은 가장 기본적이고 간단한 Scene Load 방법이다 SceneManager 클래스의 LoadScene() 메서드를 사용하여 지정된 씬을 로드한다 이 메서드는 씬을 완전히 언로드하고 새로운 씬을 로드하므로, 초기화 과정이 포함된다 모든 오브젝트와 리소스가 언로드되고, 필요한 모든 리소스를 다시 로드해야 하므로 성능에 영향을 줄 수 있다 SceneManager.LoadSceneAsync() 이 방법은 비동기적으로 씬을 로드하는 방법이다 SceneManag..
11월 29일 TIL ScriptableObject는 유니티 엔진에서 제공하는 스크립팅 클래스로, 데이터를 저장하고 공유하기 위해 사용되는 특별한 종류의 오브젝트다 ScriptableObject는 MonoBehaviour를 상속받지 않으며, 씬에 직접 배치되지 않고 프로젝트 내에서만 사용된다 데이터 저장 ScriptableObject는 데이터 저장에 주로 사용된다 게임 오브젝트에 종속되지 않고, 프로젝트 내에서 공유되는 데이터를 저장하는 용도로 활용된다 예를 들어, 아이템 데이터, 게임 설정, 퀘스트 정보 등을 ScriptableObject로 정의하여 사용할 수 있다 인스턴스화 가능 ScriptableObject는 유니티의 에디터에서 쉽게 인스턴스화할 수 있다 에디터 상에서 ScriptableObject을 생성하고 설정한 뒤..
11월 28일 TIL 가비지 컬렉터(Garbage Collector) 가비지 컬렉터는 프로그래밍 언어 런타임 환경에서 동적으로 할당된 메모리 중에서 사용되지 않는 객체를 찾아 해제하는 기능을 수행하는 프로그램이나 모듈이다 가비지 컬렉터는 메모리 누수를 방지하고, 사용되지 않는 메모리를 회수하여 시스템 자원을 효율적으로 관리한다 객체의 동적 할당 프로그램에서 객체를 동적으로 할당할 때, 메모리는 힙(Heap) 영역에 할당된다 객체는 힙에 생성되고, 프로그램은 해당 객체에 대한 참조를 유지한다 객체의 접근 가능성 분석 가비지 컬렉터는 주기적으로 실행되며, 힙 내의 객체들을 접근 가능한지 분석한다 접근 가능한 객체는 여전히 프로그램에서 참조되고 있는 객체이며, 이러한 객체들은 메모리에서 해제되지 않는다 가비지 객체 식별 접근 가능..
11월 27일 TIL 컬링은 컴퓨터 그래픽에서 화면에 보이지 않는 객체를 제외하여 렌더링 작업을 최적화하는 기법이다 뷰 프러스텀 컬링(View Frustum Culling) 뷰 프러스텀은 카메라의 시야에 포함되는 공간을 나타내는 가상의 단면이다 뷰 프러스텀 컬링은 뷰 프러스텀 밖에 위치하는 객체들을 제외하여 렌더링 대상에서 제외한다 이를 통해 시야에 들어오지 않는 객체들을 처리하지 않아 불필요한 렌더링 작업을 줄여 성능을 향상시킨다 오브젝트 컬링(Object Culling) 오브젝트 컬링은 화면에 보이지 않는 객체들을 감지하여 렌더링 대상에서 제외한다 객체 컬링은 뷰 프러스텀 이외에도, 객체들 간의 상호작용이나 가시성 정보를 활용하여 처리될 수 있다 이를 통해 화면에 보이지 않는 객체들을 처리하지 않고 렌더링 작업을 최적화한..
11월 23일 TIL 벡터의 정규화 일관된 이동속도 : 벡터의 크기가 클 수록 더 멀리, 작을수록 더 짧은 거리를 이동한다 벡터의 크기를 1로 정규화하여 일관된 이동속도를 제공한다 방향 유지 : 벡터를 정규화하면 방향 정보만을 가지고 이동하게 된다 이는 객체가 특정 방향을 이동하면서 크기를 조절할 필요가 없음을 의미한다 객체의 이동방향을 유지하며 크기를 독립적으로 조절할 수 있다 물리 시뮬레이션 효과 : 벡터를 정규화하면 물리 시뮬레이션에서 더욱 정확한 결과를 얻을 수 있다 충돌 감지나 반사 등의 물리 상호작용을 구현할 때 정규화된 벡터를 사용하면 계산이 단순화되고 예상치 못한 결과를 방지한다
11월 22일 TIL 드로우콜 배칭은 그래픽 API에서 사용되는 개념이다 게임 엔진이 여러 개체를 한 번에 그리는 것을 의미한다 개별적으로 그리는 대신 비슷한 속성을 가진 여러 개페를 묶어 한번에 그리는 방식으로 성능을 향상시킬 수 있다 유니티에서 제공하는 드로우콜 배칭은 정적 배칭, 인스턴싱, 동적 배칭이 있다 정적 배칭(Static Batching): 정적 배칭은 메시와 머티리얼이 동일한 여러 개체를 하나의 메시로 결합하여 한 번에 그리는 방식이다 정적 배칭은 개체의 변형(Transform)이나 애니메이션 등이 없을 때 가장 효과적으로 동작한다 인스턴싱(Instancing): 인스턴싱은 동일한 메시와 머티리얼을 가진 여러 개체를 하나의 드로우콜로 처리하는 방식이다 인스턴싱은 개체의 위치, 회전, 크기 등을 개별적으로 지정..