본문 바로가기
[ CODING STUDY ]/》언리얼엔진5 공부

언리얼엔진5 21장 [상속, 접근연산자, 멤버변수, 멤버함수]

by MRG 2023. 2. 3.
728x90
반응형

▣ 안녕하세요. 

이번장에서는 상속, 접근연산자, 멤버변수, 멤버함수에 대해 공부해 보겠습니다.

단어들만 보면 어렵게 생각이 들 수 있지만 실습을 통해서 하나하나 만들어가면 이해하기 쉬울 겁니다.

 

▣ 먼저  Player이름으로 기본 Actor를 생성합니다.

그리고 다시 오른쪽마우스를 클릭해서 BluePrint Class를 클릭합니다. 

그럼 밑에 ALL CLASSES 메뉴가 있는데 여기에  player라고 검색하면 아까 생성한

player Actor가 나옵니다. 이걸 클릭하고 Actor로 생성합니다. 

이름은 Man으로 지정합니다. 그리고 더블클릭을 합니다.

 

▣ 위쪽 메뉴에 Class Settings을 클릭하면 Class Options에 Player로 설정되어 있는 걸 확인할 수 있습니다.

Man Actor는 이제 Player에 상속되었습니다. 

상속하는 방법은 위에 방법 그리고 Class Options에서 설정하는 방법 두 가지입니다. 

 

▣ Player Actor를 더블클릭하여 들어갑니다. 그리고 왼쪽에 변수를 두 개 추가합니다. 

hp는 100, ex는 0으로 기본값을 지정합니다. 

컴파일 저장 후 

 

▣ Man으로 돌아가서 Event Graph에서 오른쪽 마우스를 클릭하여 hp를 검색하면

hp변수에 관한 GET과 SET이 나옵니다. GET을 불러오고 위에 코드처럼 노드를 완성합니다.

컴파일 저장 후

 

▣ 씬에 Man Actor를 드래그해서 배치한 후에 플레이 버튼을 클릭합니다.

그럼 Player에서 지정했던 hp 100에 값이 출력됩니다. 

상속이라는 말은 부모가 자식을 상속한다라는 의미와 동일하며 

Player 부모 클래스, Man 자식 클래스가 됩니다. 

그럼 Man에서 상속받은 Player의 멤버변수, 멤버함수 모두 사용할 수 있고 반대로도 사용이 가능합니다. 

 

▣ 이번에는 Player Actor로가서 Details 메뉴에서 Private를 체크합니다.

그리고 컴파일 저장 후

 

▣ Man Actor에 들어가면 에러가 나오는 걸 확인할 수 있습니다. 

Private는 외부에는 접근할 수 없고 자기 자신 클래스만 접근한 접근연산자입니다.

Private를 다시 해제하고 

 

▣ 오른쪽 메뉴에 function + 버튼을 클릭하여 멤버 함수를 생성합니다. 

그리고 위에 이미지처럼 Print Text를 노드를 완성합니다.

 

▣ 함수를 클릭하면 오른쪽 메뉴에서 Access Specifier 메뉴가 있는데

화살표를 클릭하면  Public, Protected, Private 3가지 접근연산자가 있습니다. 

아까 위에서 해봤던 것처럼 Private는 외부에는 접근하지 못하고 내부에서만 사용이 가능합니다.

Public 외부 내부 모두 접근이 가능합니다. 

Protected는 외부에는 접근이 불가능하지만 상속된 관계는 접근이 가능합니다. 

Protected으로 지정하고 컴파일 저장 후

 

▣ Man에서  Test Function를 검색하여 노드를 연결하고 

컴파일 저장 후

 

▣ 씬에서 플레이버튼을 클릭하면 이렇게 함수가 호출되고 PrintText가 호출되었습니다. 

 

▣ 정리하면 상속은 부모클래스, 자식클래스처럼 부모 자식 간에 관계를 연결한다라고 생각하시면 되고,

이걸 사용하는 이유는 위에 실습처럼 가능하겠지만 공통된 작업이 있거나 같은 걸 해야 하거나 등등이 있습니다.

이건 앞으로 게임을 만들어가며 익혀가겠습니다.

접근연산자(Public, Protected, Private)처럼 클래스 내부, 외부 접근 여부에 대한 설정을 합니다. 

멤버변수, 멤버함수는 클래스에서 생성하는 변수, 함수를 의미합니다. 

728x90
반응형

댓글