액터클래스는 객체에 사용되는 기본 클래스이며 레벨에 배치하거나 생성할 수 있다. 만들 블루프린트의 대부분은 액터 클래스 또는 액터의 자식 클래스를 기반으로 한다.
액터참조
integer, float와 같은 원시타입 변수들은 간단하지만, 객체 또는 액터들은 훨씬 복잡하고 메모리를 차지하기 때문에 전체를 복사하는 것보다는 저장된 메모리위치를 참조하는것이 효율적이다 이러한 타입의 변수를 오브젝트 레퍼런스라고 한다. C에서 포인터 같은 개념이다.
연습
BP_Barrel이 Hit되면 BPFire라는 변수에 연결된 Blueprint_Effect_Fire의 히든상태를 바꾸어 나타나게 한다.
1. 1인칭 템플릿을 기반으로 프로젝트를 만든다
2. 컨텐츠 드어 버튼을 클릭해 콘텐츠 브라우저를 연 다음 추가 버튼을 클릭하고 블루 프린트 클래스를 선택한다.
3. 다음 화면에서 부모 클래스로 액터를 선택한다.
4. 이름을 BP_Barrel로 지정하고 더블클릭해서 블루프린트 에디터를 연다.
5. 컴포넌트 패널에서 추가 버튼을 클릭하서 스태틱메시 컴포넌트를 선택한다. 디테일패널에서 Shape_Cylinder 스태틱 메시를 선택한다.
6. 내 블루프린트 패널에서 BP_Fire 라는 변수를 생성한다. 디테일 패널에서 변수 타입 드롭다운 메뉴를 누른다. 오브젝트 타입 카테고리에는 언리얼 엔진에서 사용할 수 있는 클래스와 프로젝트에서 만든 블루프린트 클래스가 나열된다. Fire를 검색하고 .Blueprint Effect Fire위에 마우스를 올려 하위메뉴를 표시한 다음 오브젝트 레퍼런스를 선택한다.
7. 오브젝트 레퍼런스 변수의 기본값은 없음이며 이는 변수가 어떤 인스턴스도 참조하지 않음을 의미한다. 레벨 에디터에서 이 변수에 인스턴스를 할당할 수 있다. 이렇게 하려면 변수의 인스턴스 편집기능 속성을 확인해서 레벨에디터에서 변수에 접할 수 있도록 한다.
8. 내 블루프린트 패널에서 BP_Rire변수를 끌어서 이벤트그래프에 놓는다. GetBP_Fire옵션을 선택해서 노드를 생성한다.
BP_Fire노드의 파란색 핀에서 끌어서 그래프에 놓으면 컨텍스트 메뉴가 열린다. hidden검색후 Set Hidden in Game(P_Fire)함수 선택
9. 이벤트그래프를 우클릭하고 히트이벤트를 추가. 히트이벤트 노드를 Set Hidden In Game(P_Fire)노드에 연결한다. New Hidden 파라미터를 선택 취소한다. 이 액션은 BP_Barrel 블루프린트의 인스턴스에 도달하면 BP_Fire에서 참조하는 인스턴스의 파티클 시스템 컴포넌트를 숨긴다.
10 .블루프린트를 컴파일하고 레벨 에디터로 돌아간다. 콘텐츠 브라우저에서 BP_Barrel블루프린트를 끌어다 레벨에 놓는다.
11. 콘텐츠브라우저에서 콘텐츠 > StarterContent>Blueprints폴더로 이동해서 Blue print_Effect_Fire를 끌어서 레벨에 추가된 BP_Barrel 블루프린트위에 놓는다. 뭔가 타오른다.
12. Blueprint_Effect_Fire 인스턴스의 디테일 패널에서 P_Fire컴포넌트를 선택하고 hidden항목을 검색한 후 게임에서 숨김속성을 확인한다.
13. BP_Barrel인스턴스의 디테일 패널에서 BP_Fire드롭다운 메뉴를 클릭해 Blueprint_Effect_Fire의 인스턴스인 레벨의 액터들이 나열한다. BP_Barrel위에 놓았던 인스턴스를 선택해서 해당 인스턴스를 BP_Fire변수에 할당한다.
14. 플레이버튼을 클랙해 레벨을 테스트한다. 좌클릭해서 게임을 활성화하고 WASD키를 눌러 총으로 향하면 총을 획득한다. 이후 좌클릭으로 배럴로 총을 쏘면 불꽃을 볼수 있다.
솔직히 좀 직관적이지 않다 아직은 잘 모르겠다 ㅠㅠ
'블루프린팅 > 3. 객체지향과 프레임워크' 카테고리의 다른 글
[언리얼][블루프린트]게임플레이 프레임워크 클래스 탐색 (0) | 2023.05.08 |
---|---|
[블루프린트][객체지향] 컨스트럭션 스크립트 (0) | 2023.05.07 |
[블루프린트][객체지향] 액터의 스폰과 파괴 (0) | 2023.05.06 |
OOP개념에 익숙해지기 (0) | 2023.05.06 |
객체지향 프로그래밍과 게임플레이 프레임워크 (0) | 2023.05.06 |