분류 전체보기100 [Unity] Scene이 여러 개인 게임의 SoundManager Scene이 여러 개인 게임에서 BGM이 다음 씬으로 넘어가더라도 끊기지 않고 계속 재생시키고 싶은 경우가 있다. SoundManager.cs 라는 스크립트를 이용해 게임 시작 시 SoundManager를 오브젝트 형태로 생성시켜주고 DontDestroyOnLoad 처리를 해주면 씬이 넘어가더라도 해당 오브젝트(Audio Souce)를 파괴하지 않고 유지할 수 있다. // SoundManager.cs using System.Collections.Generic; using Unity.VisualScripting; using UnityEngine; using UnityEngine.Audio; using UnityEngine.SceneManagement; public class SoundManager : Mo.. 2024. 2. 22. [Unity] 컬링 (Culling) 컬링 (Culling) 이란? 드로우콜을 줄이기 위해서는 렌더링할 오브젝트의 수를 줄이면 된다. 주로 사용하는 방법은 눈에 보이지 않는 오브젝트를 제외함으로써 렌더링할 오브젝트의 수를 줄이는 것인데, 이처럼 렌더링이 필요하지 않은 오브젝트들을 추려 내는 것을 컬링(Culling)이라 한다. 게임 캐릭터의 시야 영역 밖에 있는 객체들을 렌더링하지 않고 제외하는 기술이다. 화면에 표시되지 않는 부분의 객체들을 처리하기 위한 비용을 아낌으로써 성능을 향상시키는 데 도움이 된다. 컬링의 종류는? 프러스텀(Frustum) 컬링 = 절두체 컬링 대부분의 게임 엔진은 카메라의 뷰 프러스텀(절두체)으로 컬링을 수행한다. 절두체의 사다리꼴 영역 안에 들어오거나 걸친 오브젝트만 눈에 보이게 되는데, 이 영역을 완전히 벗어.. 2024. 2. 21. [C#] Update 주의사항 / Time.deltaTime 사용법 MonoBehaviour 의 주요 클래스인 Update 사용 시 주의사항은? 1. 주기적인 호출 Update 메서드는 매 프레임마다 호출된다. 따라서 무거운 계산이나 자원 소모적인 작업을 수행하면 성능에 부정적인 영향을 미칠 수 있다. 필요한 경우에만 호출될 수 있도록 최적화가 필수적이다. * Update 사용을 줄이는 방법 FixedUpdate는 고정된 시간 간격으로 호출되며, 물리 시뮬레이션에 사용된다. 물리 연산과 관련된 작업은 FixedUpdate에서 수행하는 것이 좋다. 2. 프레임 시간에 따른 차이점 Update 의 가장 큰 특징은 호출 시간 간격이 프레임에 따라 변한다는 것이다. 프레임마다 호출되는 특성 상 서로 다른 컴퓨터에서 출력에 차이를 보일 수 있다. 특히 인게임에서 시간과 관련된 부.. 2024. 2. 20. [Unity] 렌더링 파이프라인 유니티 렌더링 파이프라인이란? 렌더 파이프 라인은 게임 오브젝트의 렌더링 과정, 즉 화면에 오브젝트를 그리는 과정을 제어하는 시스템이다. 화면에 그래픽을 그리는 과정을 정의하고 제어하며, 게임의 시각적인 품질과 성능에 영향을 미친다. 씬의 내용들을 취하여 컬링(culling), 렌더링(rendering), 포스트프로세싱(post-processing)등의 작업을 수행하고 그것을 스크린에 표시하는 역할을 한다. 렌더링 파이프 라인은 3D 모델의 표현, 라이팅, 그림자, 쉐이딩 등과 같은 시각적 효과를 구현하는데 사용된다. Unity에서는 여러 가지 렌더링 파이프라인이 존재하며, 각각의 파이프라인은 특정한 목적이나 하드웨어 환경에 최적화되어 있다. 1. Built-in Rend.. 2024. 2. 20. [Unity] MonoBehaviour 메서드 MonoBehaviour 클래스의 주요 메서드 MonoBehaviour 클래스는 기본적으로 모든 Unity 스크립트가 파생되는 기본 클래스이다. Unity의 프로젝트 창에서 C# 스크립트를 생성하면 MonoBehaviour에 자동으로 상속된다. MonoBehaviour의 역할은 게임 오브젝트와 스크립트의 연결, 이벤트를 발생시켜 게임 오브젝트를 컨트롤하는 것이다. Reset : 유니티 에디터에서 오브젝트 생성 후 인스펙터 뷰에서 리셋을 눌러줄 때 실행된다. 객체의 속성을 초기 값으로 설정해 줄 때 사용한다. 예를 들어, 스크립트가 어떤 변수들을 가지고 있고 이 변수들이 default 값을 가져야 하는 경우, Reset 메서드를 사용하여 이러한 변수들을 초기화할 수 있다. Awake : 스크립트의 모든 인.. 2024. 2. 16. [Unity] Unity 생명주기 Q. Unity의 생명주기(Unity Life Cycle)란? 생명주기란 Unity 스크립트 내에서 여러 개의 함수가 실행되는 순서와 흐름을 의미한다. 크게 초기화-물리/로직-해제 3개의 영역으로 구분되어 있다. 1. Initialization (초기화) 1) Awake 게임 오브젝트 생성 시 최초로 실행되는 함수로 스크립트가 실행될 때 1번만 호출된다. 오브젝트가 비활성화일 경우엔 호출되지 않지만 스크립트가 비활성화일 경우엔 호출된다. 생성자처럼 게임의 상태 또는 변수 초기화로 사용한다. 오브젝트의 초기화 또는 프리팹의 인스턴스화가 모두 진행된 직후에 호출되기 때문에 Find 함수 호출의 안정성을 보장한다. 코루틴으로 실행할 수 없다. 2) OnEnable 게임 오브젝트를 활성화 시킨다. ex)로그인 .. 2024. 2. 15. 이전 1 2 3 4 5 6 ··· 17 다음