⭐ Game Programming/Unreal Document
[언리얼 엔진] 액터
테디슨
2021. 10. 7. 23:27
액터 (Actor)
Actor는 레벨에 배치할 수 있는 오브젝트이다. 액터는 이동, 회전, 스케일과 같은 3D 트랜스폼을 지원하는 범용 클래스다. 액터는 게임플레이 코드를 통해 스폰 및 소멸 가능하다.
액터 생성
AActor 클래스 인스턴스를 생성하는 것을 Spawn이라 한다. SpawnActor() 함수나 템플릿으로 생성한다. 액터 스폰 챕터에서 자세히 확인
컴포넌트
액터는 Component라 불리는 특수유형 Object를 담는 그릇으로 볼 수 있다. 여러 컴포넌트를 사용하여 액터의 이동 및 렌더링 방식 등을 제어할 수 있다. 액터는 플레이 도중 네트워크를 통한 프로퍼티 및 함수 호출의 리플리케이션 기능이 있다.
- UActorComponent 액터 컴포넌트
- 베이스 컴포넌트, 액터의 일부로 포함, tick 가능, 특정 액터에 연관지어지나 월드의 특정 지점에 존재하지 않음.
- USceneComponent 씬 컴포넌트
- 트랜스폼이 있는 액터 컴포넌트, 계층 구조 형태로 서로에게 붙일 수 있음.
- UPrimitiveComponent 프리미티브 컴포넌트
- 일정한 형태의 그래픽적 표현이 있는 씬 컴포넌트를 뜻함. 피직스및 콜리전 세팅 등이 들어있다.
- 액터의 계층구조 예제
- Root - SceneComponent 월드내 위치 설정을 위한 기본 씬 컴포넌트
- StaticMeshComponent 금괴 메시
- ParticleSystemComponent 금괴의 파티클 이미터
- AudioComponent 금괴의 금속성 울림 소리
- BoxComponent 금괴 콜리전 박스
- StaticMeshComponent 금괴 메시
- Root - SceneComponent 월드내 위치 설정을 위한 기본 씬 컴포넌트
틱
Tick은 언리얼 엔진에서의 액터 업데이트 방법이다. 모든 액터는 매 프레임, 최소, 사용자 지정 간격 마다 틱을 하여 필요한 동작이나 계산을 업데이트 할 수 있따.
액터는 모두 기본적으로 Tick 함수를 통해 가능하다.
ActorComponent는 TickComponent 함수로 가능하다.
수명
액터 수명주기 챕터에서 자세히 확인
리플리케이션
Replication은 네트워크 멀티플레이어 게임 처리시 월드의 동기화 상태를 유지하는데 사용. 프로퍼티 값과 함수 호출 모두 리플리케이트 시킬 수 있다.
액터 소멸
액터는 일반적으로 가비지 콜렉팅 되지 않는다. 월드 오브젝트가 액터 레퍼런스 목록을 저장하기 때문이다. 액터는 Destroy()를 호출하여 명시적으로 소멸시킬 수 있다. 이후 레벨에서 제거되어 PendingKill 상태로 마킹되고, 다음 가비지 컬렉션 때 지워진다.
반응형