본문 바로가기
알아두면 좋은것들

03.08 (TIL)

by 오랑이귀엽다 2024. 3. 8.

Scene Load의 종류 비교

Unity에서 씬(Scene)을 로드하는 방법에는 주로 SceneManager.LoadScene 메서드를 사용하는 방식과 SceneManager.LoadSceneAsync를 사용하는 비동기 방식이 있습니다. 각각의 방식은 씬 로딩 시의 사용자 경험과 게임의 흐름에 영향을 미칩니다.

  • SceneManager.LoadScene: 이 메서드는 씬을 동기적으로 로드합니다. 새 씬으로의 전환을 시작하면, 현재 진행 중인 모든 작업이 완료될 때까지 다음 코드로 넘어가지 않습니다. 씬 로딩 도중에는 게임이 일시적으로 멈추는 현상이 발생할 수 있어, 작은 씬에서 주로 사용됩니다.
    • 사용 예: SceneManager.LoadScene("GameScene");
  • SceneManager.LoadSceneAsync: 비동기 방식으로 씬을 로드합니다. 이 방법을 사용하면 씬 로딩 작업이 백그라운드에서 수행되므로, 게임 플레이에 영향을 주지 않고 로딩 화면을 표시하거나 다른 작업을 계속할 수 있습니다. AsyncOperation 객체를 반환하여 로딩 진행 상태를 체크하거나 콜백을 설정할 수 있습니다.
    • 사용 예: SceneManager.LoadSceneAsync("GameScene");

또한, 씬을 로딩할 때 LoadSceneMode를 통해 로딩 모드를 지정할 수 있습니다:

  • LoadSceneMode.Single: 현재 씬을 언로드하고 새 씬을 로드합니다. 기본값으로, 새로운 씬으로 전체적으로 전환됩니다.
  • LoadSceneMode.Additive: 새 씬을 현재 씬에 추가합니다. 여러 씬의 컨텐츠를 동시에 활용할 때 유용합니다.

Unity의 물리 엔진 동작 방식 및 조작 가능 요소

Unity의 물리 엔진(주로 PhysX)은 실시간으로 객체의 물리적 상호작용을 시뮬레이션합니다. 물리 엔진은 자동으로 물리 법칙을 적용하여, 개발자가 객체의 움직임을 자연스럽게 만들 수 있도록 돕습니다.

동작 방식:

  • 리지드바디(Rigidbody) 컴포넌트를 사용하여 오브젝트에 물리적 속성을 부여합니다. 리지드바디는 질량, 중력 적용 여부, 회전 제한 등 다양한 속성을 설정할 수 있습니다.
  • 콜라이더(Collider) 컴포넌트를 사용하여 물리적 충돌을 감지합니다. 콜라이더는 오브젝트의 형태를 정의하며, 여러 유형(박스, 구, 캡슐 등)이 있습니다.
  • 물리 엔진은 프레임마다 물리 시뮬레이션을 수행하여 오브젝트의 위치와 회전을 업데이트합니다. 이 과정에서 충돌 감지, 힘과 토크의 적용, 제약 조건의 처리 등이 이루어집니다.

조작 가능 요소:

  • 힘과 토크 적용: 오브젝트에 힘(force)과 회전력(torque)을 적용하여 자연스러운 움직임을 생성할 수 있습니다.
  • 속성 조정: 리지드바디의 질량, 마찰력, 반발력 등의 속성을 조정하여 다양한 물리적 특성을 시뮬레이션합니다.
  • 조인트(Joints): 여러 오브젝트를 연결하여 복잡한 구조(예: 래그돌, 물리 기반의 로프)를 만들 수 있습니다.
  • **물리 레이어(Physics Layers)**와 레이어 충돌 매트릭스(Layer Collision Matrix): 특정 레이어의 오브젝트 간 충돌을 관리할 수 있어, 성능 최적화와 특정 상황에 맞는 충돌 처리를 위해 사용됩니다.

Unity의 물리 엔진은 게임 개발 과정에서 복잡한 물리 시뮬레이션을 쉽게 구현할 수 있도록 설계되었으며, 사용자가 조작할 수 있는 다양한 요소를 제공하여, 게임 내에서 리얼리스틱한 상호작용을 창출할 수 있습니다.

'알아두면 좋은것들' 카테고리의 다른 글

03.12 (TIL)  (0) 2024.03.12
03.11 (TIL)  (0) 2024.03.12
03.07 (TIL)  (0) 2024.03.07
03.06 (TIL)  (0) 2024.03.07
03.05 (TIL)  (1) 2024.03.05