RealityKit 공식문서

징니·2024년 9월 3일

iOS

목록 보기
3/6

https://developer.apple.com/documentation/visionOS/understanding-the-realitykit-modular-architecture

3D에 관심이 많은 요즘, RealityKit에 대해 공부해 보았습니다.

RealityKit은 앱, 게임 및 기타 몰입형 경험을 구축하기 위해 설계된 3D 프레임워크입니다!

Overview

  1. 객체 지향 프로그래밍 언어로 작성되었으며, 객체 지향 설계 원칙을 따릅니다.
  2. 엔티티 구성 요소 시스템(ECS) 패러다임을 사용합니다.
    • 객체를 단순한 인스턴스가 아니라 “엔티티”와 “구성 요소”로 나누어 설계하는 방법입니다.
    • 엔티티는 게임이나 AR 환경에서 존재하는 모든 객체를 의미합니다.
    • 구성 요소는 엔티티의 특성이나 기능을 정의하는 데이터입니다.
  3. 모듈식으로 설계를 선호합니다.

ECS 패러다임?? 예를 들어 “이동” 이라는 기능을 가진 구성 요소가 있다고 합시다.

A라는 자동차와 B라는 로봇이 있다고 하면, 이 두 개체는 서로 다른 종류입니다. A와 B 모두에게 “이동”이라는 구성 요소를 추가할 수 있습니다.

→ 서로 다른 방식으로 만들어졌더라도, 둘 다 “이동” 기능을 가질 수 있게 됩니다.

Start with Entities

엔티티는 RealityKit의 핵심 요소입니다.

장면에 넣을 수 있는 모든 객체는 엔티티이며, 이는 보이거나 보이지 않는 객체 모두를 포함합니다.

엔티티에 구성 요소를 추가하면 특정 기능과 관련된 추가 상태를 저장할 수 있습니다. 엔티티 자체는 상대적으로 적은 속성을 가지고 있으며, 거의 모든 엔티티 상태는 구성 요소에 저장됩니다

Add components to entites

구성 요소는 엔티티에 추가하는 모듈식 빌딩 블록입니다.

구성 요소는 시스템이 어떤 엔티티에 작용할 지를 식별하고, 시스템이 의존하는 엔티티별 상태를 유지합니다.

구성 요소는 논리를 포함할 수 있지만, 구성 요소의 논리는 속성 값을 검증하거나 초기 상태를 설정하는 코드로 제한해야 합니다. 엔티티의 행동에 영향을 주거나 매 프레임마다 상태를 변경할 가능성이 있는 논리는 시스템을 사용해야 합니다.

→ 하나의 엔티티는 같은 기능을 두 번 넣을 수 없어요. 새로운 것으로 대체됩니다.

Create systems to implement entity behavior

시스템은 RealityKit이 매 프레임마다 호출하여 특정 종류의 엔티티 행동을 구현하거나 특정 엔티티 상태를 업데이트하는 코드를 포함합니다.

시스템은 구성 요소를 사용하여 엔티티 별 상태를 저장하고 특정 구성 요소나 조합을 가진 엔티티를 찾아서 작업을 수행합니다.

시스템에서 엔티티 로직을 작성하면 작업 중복을 피할 수 있습니다.

profile
iOS 개발자입니다

0개의 댓글