본문 바로가기

언리얼엔진

4. 블루프린트 함수 디테일

언리얼에는 문자열에 관련한 자료형이 3개 : Name, String, Text
- String : 제일 범용적.
- Name : 만들어지고 나서 수정이 불가능
- Text : 텍스트의 현지화 기능을 제공

이중에서 Name, String이 자주 쓰인다.

 

TIP! Ctrl + W : 내 블루프린트 - PureFunction 함수 선택 후, Ctrl + W하면 바로 복제가 됨(노드도 됨)

 

언리얼의 자동저장기능은 꺼놔도 무방하다.

따라서 편집 - 에디터 개인설정 - 로드/저장 - 자동저장활성화 기능을 꺼도 된다.


블루프린트 함수

저번 시간에 만들었던 BP_Practice에서 이어서 이번에는 함수를 추가해볼 것이다.

내 블루프린트 - 함수 + 추가 - TestFunction을 하나 만들어주었다.

TestFunction 함수 추가


함수 디테일

함수의 디테일 창

- 설명 : ToolTip (함수의 메모같은 것)

- 카테고리 : 함수 카테고리 추가


- 키워드 : 노드 추가할 때, 검색에서 정한 키워드만 적어도 바로 나옴

키워드만 검색해도 바로 함수가 나오는 것을 볼 수 있음

※ 키워드 예시 : C++에서 쓰던 if가 여기서는 Branch로 역할을 대체할 수 있음.

                         그래서 노드 검색에 if만 치면 Branch로 연결되는 것을 볼 수 있다.


- 간단 노드 제목 : 노드 추가 시, 간단노드제목에 지정한 제목만 노드에 나온다. 키워드의 상위호환임

                             보기만해도 이해할 수 있는 정도의 노드여야 함


- 에디터에서 호출 : 에디터 상에서도 버튼으로 바로 호출 가능

- 퓨어 : 실행핀의 유무. 실행핀이 없으면 출력에 의존하여 출력이 필요할 때 실행이 되도록 바뀜.

퓨어 함수로 바뀌면 실행핀이 사라지게 되어 출력에 의존하게 바뀐다.

즉, 출력이 필요할 때에만 불린다는 뜻이다.

 

※ 함수 디테일에서 입력 파라미터, 출력 파라미터 추가 시, 이름 정하는 규칙이 있다.

    꼭 이름 앞에 소문자 b를 붙여서 bIn / bOut과 같이 작명하는 것.


순수(pure)함수의 조건

1. 함수 외부의 값을 변경하지 않을 것(함수 외부의 값이 변경되야한다면 호출 시점이 매우 중요해지기 때문)

    - 따라서 호출 시점과 무관해야 함

 

2. 같은 입력에 대해서 같은 출력을 낼 것(자료형이 달라지거나 그러면 안됨)

 

PureFunction은 연결된 출력 핀 갯수만큼 호출이 되고, ImpureFunction은 여러 출력 핀이 연결되도 한번만 호출이 된다.


- Const : 멤버변수에 대한 변경이 불가함(완벽한건 아님. 그래도 Const 사용이 좀 더 안전하긴 함)

- 폐기됨(Deprecated) : 함수의 사용을 막는다. 폐기 메세지를 추가하여 왜 폐기됬는지 사유작성이 가능하다.

                                      따라서 컴파일 시에 경고를 나타낼 수 있음.

 

왜 함수를 삭제하지않고 폐기함을 사용했을까?

    배포되는 엔진, 프레임워크와 같이 규모가 커진다면, 함수를 함부로 지울 시 여러 부작용이 나타날 수 있다.

    따라서 폐기함을 선택하여 함수의 사용을 막고, 폐기 메세지를 출력하여 안내가 가능하다.

    이렇게 함수를 폐기하고 좀 더 나중에가 되어서야 그때 함수를 삭제하는 편이다.