- 객체 지향 프로그래밍(Object Oriented Programming)에서 class에 소속된 개별적인 객체를 의미
- 예시) user 클래스에서 Kwon이라는 객체를 생성할 경우, Kwon 객체는 user 클래스의 인스턴스이다
- 하나의 클래스에서 유사한 성질을 가진 수많은 인스턴스를 생성 가능
< 객체 (Object) >
- 언리얼 엔진에서 객체는 "세상을 구성하는 모든 것" 을 의미
- 액터, 컴포넌트, 메쉬, 카메라 등 모든 요소가 객체임
- 객체 타입(Object Type)은 특정한 충돌 설정을 가진 유형을 의미하는데, 이는 월드에 존재하는 모든 오브젝트들이 어떤 방식으로 충돌할지를 설정하는데 중요한 역할을 함
- 언리얼 엔진에서는 객체들이 어떻게 서로 상호작용할지, 충돌할지 무시할지를 객체 타입으로 정의함
- 각 객체에는 특정 객체 타입이 할당되고, 이를 통해 서로 다른 객체들이 충돌할지 말지를 설정함
< 쿼리 (Query) >
- 무엇인가를 요청하고, 그 결과를 얻는 과정을 의미
- 충돌 쿼리에서 쿼리는 주로 객체들의 물리적 충돌이나 상호작용에 대한 테스트를 의미함
- LineTrace나 Sweep같은 함수를 호출할 때, 쿼리는 "이 경로에 뭔가가 있는지 확인해줘" 라고 요청하는 것임
- 객체는 충돌 테스트의 대상이 되는 모든 요소를 의미
- OOP적 관점에서 설명
- 객체와 인스턴스의 차이점
- 객체 : 클래스에 의해 만들어진 모든 구체적인 실체로, 메모리에 할당되기 전에도 객체라고 불림
- 인스턴스 : 선언된 객체가 메모리에 할당되어 실제로 사용할 수 있는 상태일 때, 인스턴스라고 함
- 클래스 : 일종의 설계도
- 객체의 속성과 동작을 정의한 설계도
- 클래스 자체는 메모리에 올라가지 않음
- 객체는 클래스를 기반으로 만들어지고, 메모리에 할당된 후 인스턴스가 됨
- 객체들의 공통점들을 기반으로 객체들을 묶어주는 추상적인 틀
- 객체 : 클래스로 구현할 제품
- 클래스를 통해 생성할 대상
- 인스턴스들의 묶음(인스턴스보다 포괄적인 개념)
- 생성자를 통해 구현체가 되기 전이며, 클래스의 타입으로 명시만 된 상황
- 소프트웨어와 현실을 연결해주는 개념
- 인스턴스화 : 설계도(클래스)를 사용하여 구상해놓은 객체를 실제 제품으로 만드는 과정
- 객체를 런타임에서 생성하는 과정
- new 연산자와 생성자를 통해 객체를 구체화하는 과정
- 프로그램의 동작이 new 연산자를 만나고 클래스의 생성자로 넘어가서 객체를 메모리에 할당하는 것
- 생성자는 객체를 메모리에 할당하는 것 뿐만이 아니라, 객체의 속성을 초기화하는 역할도 함
- 인스턴스 : 만들어진 제품
- 객체의 실제 구현/동작 상태
- new 연산자를 통해 생성자를 호출하여, 메모리에 올라온 객체의 상태
- 세부적인 속성값, 유일값을 지닐 수 있음
- 객체와 인스턴스의 차이점
- 객체는 객체의 생성자를 통해 인스턴스로 실체화를 시켜야 진짜 제품이 만들어진다
- 예시)
- 붕어빵 틀(클래스)로 붕어빵을 만들자
- 붕어빵 틀은 붕어빵이라는 제품을 만들기 위한 설계도로써, 아직 실체가 없는 상태임
- 이 틀을 통해 여러가지의 붕어빵(객체)들을 만들 수 있음
- 슈크림을 넣은 슈붕빵, 팥을 넣은 일붕빵, 연유를 넣은 연붕빵을 만들어야지!
- 객체 : 실제로 굽는 과정(인스턴스화)을 거치지는 않았지만, 붕어빵 틀(클래스)로 만들 예정인 제품들 ~ 슈붕빵, 일붕빵, 연붕빵
- 여기가 객체의 정의 단계임 : 아직 붕어빵들을 만들지는 않은 상태임. 만들어야지! 하고 구상만 해놓은 상태
- 아직 실체화 되기 전이라는 것이 포인트!
- 다양한 종류의 붕어빵들(객체)을 만들기 위해 붕어빵 틀에 재료들을 넣고 구워야지!(인스턴스화)
- 붕어빵들(객체)을 실제로 얻어서 먹거나 팔기 위해서 반드시 필요한 과정
- 인스턴스화(실체화) 단계 : 슈붕빵을 얻기 위해서는 구상만 해서 되는게 아니라, 직접 만들어야 함(실체화 필요)
- 각각 크기 / 굽기 정도 / 모양 / 들어있는 슈크림, 팥, 연유 양 등 모든 요소들이 조금씩 다른 붕어빵들(인스턴스들)을 얻었다!
- 인스턴스들이 같은 클래스를 공유하면서도 각기 다른 속성을 가질 수 있음
- 예시)
'Base > Unreal C++ (★★★)' 카테고리의 다른 글
C# 에서 C++로 넘어올 때 (0) | 2024.09.16 |
---|---|
UFUNCTION (0) | 2024.09.13 |
Casting (형변환) (0) | 2024.09.12 |
UCLASS (0) | 2024.09.11 |
UPROPERTY, UFUNCTION (0) | 2024.07.18 |