728x90

2024/09 9

[Unity] Resources.UnloadUnusedAssets() : 메모리 관리

Resources.UnloadUnusedAssets()란?Resources.UnloadUnusedAssets()는 사용되지 않는 자원을 메모리에서 해제하는 기능입니다. 동적으로 텍스처, 오디오 파일 또는 모델을 로드할 때 Unity는 해당 자원을 메모리에 유지합니다. 이 함수는 사용되지 않는 자원을 수동으로 해제하여 메모리를 확보할 수 있게 해줍니다. 작동 방식미사용 자원 확인: Resources.UnloadUnusedAssets()를 사용하면 Unity는 현재 씬이나 코드에서 사용되지 않는 모든 자원을 찾아 메모리에서 해제합니다.가비지 컬렉션과의 차이: Unity의 가비지 컬렉션은 주로 관리되는 객체(C#)에 적용됩니다. 이 함수는 텍스처나 메쉬와 같은 비관리 자원을 정리하는 데 도움을 줍니다. 사용 ..

Unity/정보 2024.09.28

[Unity] 비등방성 필터링(Anisotropic filtering)과 Mipmap

비등방성 필터링이란?비등방성 필터링(Anisotropic Filtering, AF)은 3D 그래픽스에서 텍스처의 품질을 향상시키기 위한 기술입니다. 이 기술은 관찰자의 시점에 따라 텍스처의 세부 사항이 어떻게 보이는지를 개선하여, 특히 경사진 표면에서 더 선명한 결과를 제공합니다. 비등방성 필터링은 다방향으로의 샘플링을 통해 텍스처의 시각적 품질을 높입니다.Mipmap이란?Mipmap은 텍스처의 다양한 크기를 미리 계산하여 저장하는 기술입니다. 게임에서는 카메라와의 거리에 따라 적절한 해상도의 텍스처를 사용하여 성능을 향상시키고, 텍스처의 품질을 유지하는 데 도움을 줍니다.  예를 들어 가까운 객체에는 고해상도 텍스처를, 멀리 있는 객체에는 저해상도 텍스처를 사용하는 방식입니다. 이렇게 하면 성능을 향상..

Unity/정보 2024.09.22

[Unity] 안티앨리어싱(Anti-Aliasing)

안티앨리어싱(AA) 소개안티앨리어싱(Anti-Aliasing, AA)은 게임 그래픽 가장자리에서 발생하는 계단 현상을 완화하는 방법입니다. 낮은 해상도에서 픽셀로 표현된 직선이나 곡선이 매끄럽지 않게 보이는데, 안티앨리어싱은 픽셀의 색상과 주위 색상을 혼합하여 더 부드럽고 자연스러운 이미지를 보여줍니다. 이를 통해 게임의 그래픽 퀄리티를 향상시킬 수 있습니다.안티앨리어싱의 원리안티앨리어싱은 객체의 가장자리에서 색상 값을 혼합하여 픽셀의 경계가 부드럽게 보이도록 하는 방식으로 동작합니다. 특히, 픽셀의 색상을 주변 픽셀과 섞어 계단 현상을 줄이거나, 화면 전체에서 샘플링을 더 많이 하는 방식으로 처리하여 시각적 부드러움을 제공합니다.안티앨리어싱 종류와 비교1) MSAA (Multi-Sample Anti-A..

Unity/정보 2024.09.21

[Unity] 유니티의 가비지 콜렉터 (G.C)

가비지 콜렉터란?가비지 콜렉터(GC)는 프로그램에서 더 이상 필요하지 않은 메모리(가비지)를 자동으로 회수하여 메모리 누수를 방지하고 메모리를 관리하는 시스템입니다. 유니티는 C#을 사용하여 스크립트를 작동하며 .NET의 가비지 콜렉터를 기반으로 메모리를 관리합니다.   작동 방식 가비지 콜렉션은 주로 C#에서 관리되는 힙 메모리에서 이루어집니다. Unity는 생성된 객체가 더 이상 사용되지 않을 때 자동으로 메모리에서 해제하는데, 메모리에서 해제되는 시점을 완벽하게 제어하기는 어렵습니다. 그리고 GC는 메모리를 세대별로 나누어 오래된 객체와 최근에 생성된 객체를 구분해서 관리합니다.0세대 (Gen 0): 가장 최근에 생성된 객체들이 위치하며, 수명이 짧은 객체가 많습니다. 이 세대는 빠르게 메모리에서 ..

Unity/정보 2024.09.16

[Unity] Awake()와 Start()의 차이점

Unity에서 Awake()와 Start() 메서드는 게임 오브젝트와 컴포넌트의 초기화 과정에서 중요한 역할을 합니다. 이 두 메서드는 각각 고유한 시점에 호출되며, 각기 다른 용도로 사용됩니다. Awake()Awake()는 Unity의 스크립트 생명주기 중 가장 먼저 호출되는 메서드입니다. 게임 오브젝트가 씬에 로드될 때, 모든 컴포넌트가 초기화되기 전에 호출됩니다. 특징:호출 시점: 모든 컴포넌트가 초기화되기 전에 호출됩니다. 따라서 Awake()는 스크립트나 컴포넌트의 설정과 관련된 코드가 독립적으로 실행되도록 보장합니다.의존성 관리: Awake()에서는 다른 컴포넌트의 상태에 의존하지 않고, 필요한 초기화 작업을 수행합니다. 예를 들어, 게임 오브젝트의 상태나 설정을 기본값으로 초기화할 때 유용합..

Unity/정보 2024.09.16

[Unity] 프리팹(Prefab) 기초

프리팹(Prefab)이란?프리팹은 Unity에서 재사용 가능한 객체 템플릿을 의미합니다. 게임에서 반복적으로 생성되거나 배치되는 오브젝트를 하나하나 수작업으로 배치하는 것은 비효율적이기 때문에, 프리팹을 활용하여 이를 자동화할 수 있습니다. 프리팹은 하나의 원본 객체를 미리 저장해 두고, 그 객체의 인스턴스를 게임 내에서 동적으로 생성할 수 있도록 해줍니다. 프리팹의 특징재사용 가능: 프리팹은 게임 내 원하는 위치에 동일한 오브젝트를 빠르게 생성할 수 있습니다. 예를 들어 적 캐릭터, 아이템, 총알 등을 프리팹으로 만들면 여러 곳에서 동일한 설정을 공유하면서 효율적으로 사용할 수 있습니다.동적 생성: 코드에서 Instantiate() 함수를 사용하여 프리팹을 동적으로 생성할 수 있습니다. 예를 들어, 플..

Unity/정보 2024.09.16

[Unity] GPU Instancing

GPU Instancing이란?GPU Instancing은 동일한 메쉬와 머티리얼을 사용하는 여러 오브젝트를 한 번의 드로우 콜로 렌더링하는 기술입니다. 일반적으로 다수의 오브젝트를 렌더링할 때, 각각의 오브젝트마다 GPU로 데이터를 보내는 과정(드로우 콜)이 필요합니다. 하지만 GPU Instancing을 사용하면 이 드로우 콜의 횟수를 크게 줄일 수 있습니다. GPU Instancing의 원리GPU Instancing은 동일한 메쉬와 머티리얼을 사용하는 여러 오브젝트를 묶어서 한 번에 GPU로 전송합니다.각 오브젝트의 위치, 회전, 크기와 같은 개별적인 변환 정보만을 GPU로 넘겨주고, 나머지 메쉬 데이터는 공유됩니다.이를 통해 CPU에서 처리해야 할 작업이 줄어들어 성능이 향상됩니다. GPU Ins..

Unity/정보 2024.09.13

[Unity] 유니티에서 코루틴(Coroutine) 사용하기

코루틴이란?코루틴은 IEnumerator를 반환하는 함수로, 비동기적으로 작업을 처리하거나 지연된 작업을 수행할 수 있습니다. yield를 사용하여 특정 시간 동안 대기하거나, 여러 프레임에 걸쳐 작업을 나누어 처리할 수 있습니다. 이는 게임에서 타이밍 제어나 비동기적 로딩, 애니메이션 제어 등 다양한 용도로 사용됩니다.  기본 사용법코루틴은 다음과 같이 정의하고 호출할 수 있습니다:using System.Collections;using UnityEngine;public class Greeting : MonoBehaviour{ void Start() { StartCoroutine(GreetEverySecond()); } IEnumerator GreetEverySecond..

Unity/정보 2024.09.08

[Unity] 휴머노이드 애니메이션을 활용한 상체와 하체의 방향 조정 방법

Unity에서 캐릭터 애니메이션을 구현할 때, 상체와 하체를 각각 다른 방향으로 향하게 하는 것은 다양한 게임에서 중요한 요소입니다. 예를 들어, FPS 게임에서 플레이어가 상체는 오른쪽을 조준하면서 하체는 앞으로 뛰는 상황을 구현하고 싶다면, 상체와 하체의 애니메이션 방향을 별도로 조정해야 합니다. 이번 글에서는 이러한 기능을 구현하는 여러 방법 중 하나를 소개하겠습니다. 위 사진처럼 캐릭터의 상체와 하체 등 부위별로 서로 다른 방향을 주는 것이 최종 목표입니다. 부위별로 다른 애니메이션을 재생하는 방법은 이미 널리 알려져 있으므로, 이번에는 다루지 않겠습니다.​작업할 캐릭터 모델 준비캐릭터와 애니메이션은 무료로 제공되는 사이트인 Mixamo에서 가져옵시다.​www.mixamo.com Mixamo ww..

Unity/정보 2024.09.04
728x90