멤버 변수
-
멤버 변수 정의:
- 멤버 변수는 클래스 내부에서 고유하게 선언된 변수로, 클래스에 속한 객체마다 별도로 할당됩니다.
- 예:
Name, Hp, MaxHp, bStimPack 등은 클래스에 속한 변수로 각각의 객체가 독립적으로 값을 가질 수 있습니다.
-
멤버 변수 생성:
- 클래스 페이지 좌측 하단에서 "변수 추가"를 통해 선언할 수 있습니다.
- 변수의 이름, 데이터 타입(예: String, Integer, Boolean), 접근 가능 여부(눈 표시)를 설정할 수 있습니다.
-
외부 접근 허용:
- 멤버 변수 우측의 눈 모양 아이콘을 활성화하면 외부에서 해당 변수에 접근이 가능해집니다. 이를 통해 객체의 데이터를 동적으로 수정하거나 읽을 수 있습니다.
-
메모리 고려사항:
- 멤버 변수는 객체마다 별도로 생성되므로, 클래스에 멤버 변수가 많으면 메모리 사용량이 증가합니다.
- 특히 많은 객체를 생성해야 하는 경우, 멤버 변수를 적절히 관리해야 메모리 낭비를 줄일 수 있습니다.
-
예시 분석:
Name: 문자열 타입, 객체의 이름을 저장.
Hp: 정수 타입, 객체의 현재 체력을 저장.
MaxHp: 정수 타입, 객체가 가질 수 있는 최대 체력을 저장.
bStimPack: 부울 타입, 객체가 특정 상태(StimPack 사용 여부)를 나타냄.
멤버 함수
-
멤버 함수 정의:
- 멤버 함수는 클래스 내부에 선언된 함수로, 해당 클래스의 객체만 호출할 수 있는 메서드입니다.
- 객체의 상태를 변경하거나 특정 동작을 수행하도록 설계됩니다.
-
멤버 함수 생성:
- Functions 탭에서 새로운 함수를 추가할 수 있습니다.
- 예:
Move 함수는 객체가 이동하는 동작을 구현.
-
멤버 함수의 동작:
- 멤버 함수 내부에서 클래스의 멤버 변수에 접근하여 연산을 수행하거나 상태를 변경할 수 있습니다.
- 예:
Move 함수는 특정 조건에 따라 Hp나 Location 같은 멤버 변수를 변경할 수 있습니다.
-
레벨 블루프린트와의 연결:
- 레벨 블루프린트에서 객체를 제어하려면, 해당 객체의 참조값(주소)를 가져와야 합니다.
SpawnActor from Class 노드를 사용하여 객체를 생성하고, 반환된 참조값을 통해 객체의 함수를 호출합니다.
-
스폰 이벤트 그래프:
SpawnActor from Class 노드의 주요 설정:
Class: 스폰할 클래스 선택.
Spawn Transform: 스폰 위치와 회전 정보 설정.
Collision Handling Override: 충돌 처리 방법 지정.
Return Value: 생성된 객체의 참조값 반환.
- 생성된 객체에
Move 함수 호출 등의 동작을 적용할 수 있습니다.
-
메모리 효율:
- 멤버 함수는 힙이 아닌 코드 영역에 한 번만 로드되고 모든 객체가 공유하므로, 메모리 사용량이 크게 증가하지 않습니다.
- 멤버 변수는 각 객체마다 별도로 생성되므로, 메모리 관리가 중요합니다.