본문 바로가기

블루프린팅/3. 객체지향과 프레임워크

[블루프린트][객체지향] 컨스트럭션 스크립트

블루프린트 에디터의 패널 중 하나는 컨스트럭션 스크립트라고하며 블루프린트가 처음 레벨에 추가됐을때, 레벨에디터에서 해당 속성이 변경되었을때 또는 런타임에 인스턴스가 생성됐을 때 모든 액터의 블루프린트가 수행하는 특별한 함수다.

예를 들어 레벨별로 블루프린트의 각 인스턴스에 대해 서로 다른 스태틱 메시를 선택할 수 있도록 인스턴스 편집 가능한 스태틱 메시를 사용해서 블루프린트를 생성해 보겠다.

 

1. 프로젝트를 하나 만들거나 기존것을 사용한다.

2. 콘텐츠브라우저에서 추가 버튼을 클릭후 블루프린트 클래스 옵션을 선택후 부모클래스로 액터를 선택하고 이름을 BP_Construction하고 더블클릭후 블루프린트 에디터를 연다.

3. 컴포넌트패널에서 추가버튼을 클릭후 스태틱메시 컴포넌트를 선택한다. StaticMeshComp로 이름 바꾼다.

4. 내 블루프린트 패널에서 SM_Mesh라는 새변수를 생성한다. 디테일 패널에서 변수 타입 드롭다운 메뉴를 클릭하고 스태틱 메시를 검색한다. 스태틱 메시 위에 마우스를 올려 하위 메뉴를 표시한 다음 오브젝트 레퍼런스를 선택한다.

오른쪽 디테일 창에 표시된 것처럼 인스턴스 편집기능 속성을 확인한다.

오브젝트 레퍼런스 변수는 런타임에 생성된 인스턴스를 참조할 수도 있다.

툴바에서 컴파일 버튼을 누른다. 디테일 패널의 맨 아래에서 SM_Mesh  변수에 대한 초기 스태틱 메시를 정의한다. 기본값 속성의 드롭다운 메뉴를 클릭하고 SM_TableRound 스태틱메시를 선택한다.

 

컨스트럭션 스크립트 탭을 클릭 한다.

컴포넌트 패널에서 StaticMeshComp컴포넌트를 끌어 컨스트럭션 스크립트 그래프에 끌어다 놓고 파란색 핀을 클릭한 다음 컨텍스트메뉴에서 Set Static Mesh를 찾아 클릭한다

내 블루프린트 패널에서 SM_Mesh 변수를 끌어 컨스트럭션 스크립트 그래프에 놓은 다음 표시되는 메뉴에서 Get_SM_Mesh 옵션을 선택한다. SM_Mesh노드 핀을 Set Static Mesh함수의 New Mesh 핀에 연결한다. 컨스트럭션 스크립트 노드도  다음과 같이 Set Static Mesh와 연결한다. 컨스트럭션 스크립트는 Set Static Mesh 함수를 실행할때 SM_Mesh변수에서 Static Mesh를 가져와 Static Mesh Comp컴포넌트에 세팅한다.

블루프린트를 컴파일 한다. 레벨 에디터의 콘텐츠 브라우저에서 BP_Construction을 끌어다 레벨에 놓아 인스턴스를 만들고 한번더 끌어다 2번째 인스턴스도 만든다. 인스턴스중 하나를 선택하고 레벨 에디터의 디테일 패널에서 SM_Mesh변수가 표시및 편집 가능한지 확인한다.

SM_Mesh변수의 드롭다운 메뉴를 클릭하고 SM_Couch와 같은 다른 스태틱 메시를 선택한다.

실행해보면 2개의 인스턴스는 다른 메시모양이다.