소리가 안들리니까 너무....음.....예....
Tip!
B + 좌클릭 : branch 노드 추가 단축키
P + 좌클릭 : BeginPlay 이벤트 노드 추가 단축키
F + 좌클릭 : For Each Loop 노드 추가 단축키
에디터 개인설정 - 검책 창 : construction - 콘텐츠 에디터/블루프린트 에디터 - 워크플로우 - 디테일 보기
컨스트럭션 스크립트 숨김 : false
Construction Script
Construction Script는 컴포넌트를 스폰하고 구정작업을 하는 곳이다.
BP_Practice에 Mesh를 추가해주려고 한다.
우선 Mesh에는 StaticMesh와 SkeletalMesh 두가지가 있는데, 특정 조건에 따라서 Mesh가 정해지도록 해볼 것이다.
먼저 변수에 DoesHaveSkeletalMesh변수를 만들어준다. 이 변수를 통해 true면 SkeletalMesh, false면 StaticMesh가
되도록 할 것이다. 이는 Branch를 통해 분기를 만들어 줄 것이다.
StaticMesh Component는 저번에 만들었던 Cube를 사용할 것이고,
SkeletalMesh Component는 콘텐츠 브라우저1에서 새로 추가해준다.
함수 / 이벤트 / 매크로
- 함수 : 반환값 있음. 지역변수 사용가능. 입력값 출력값을 여러개 가질 수 있음
- 이벤트 : 반환값이 없음(출력이 없음). 지역변수 사용 못함.
Delay 노드 : 잠복성 노드(우측 상단에 시계가 있는 것), 특성 시간 후에 다음 작업을 하는 것
- 실행핀이 들어오면 Duration값만큼 있다가 다음으로 넘어가는 것
- 이벤트에서만 사용 가능(함수는 실행 시에 결과를 바로 반환해야 한다는 이유로 사용 불가능)
- 매크로 : C++에서의 #define. 치환해주는 것과 같은 기능이라 할 수 있음. 지역변수(로컬변수) 사용 가능.
※ # : 전처리기(#define, #include, #if, #ifdef 등등). 지정해둔 것으로 치환됨. 컴파일 전에 먼저 처리.
- 실행핀(입력)과 출력핀(출력)을 여러개 가질 수, 만들 수 있다.
- 입력에서 string의 기본값을 넣어줄 수 있다.
- 매크로 내에서 작성해놓은 내용이 그대로 치환되는 것.
- 입력 출력의 자료형 중에 와일드카드가 사용 가능.
- 매크로의 문제는 매크로가 치환되고 나서 알 수 있음.
- 와일드카드가 한번 결정되고 나면, 매크로 내부의 모든 와일드카드가 동일하게 바뀜.
※ 와일드카드
- 입력받은 자료형 종류에 맞춰서 알아서 바뀜.
- 받는 것은 어느 것이든 받아올 수 있지만, 매크로 내부에서 오류가 발생할 수 있음.
For Each Loop 노드도 매크로와 비슷하다고 할 수 있다.
매크로를 통해 이벤트에서 사용할 지역변수 만들기
이벤트에서는 지역변수(로컬)을 직접 만들어서 넣을 수 없다. 따라서 임의로 로컬변수를 따로 만들어 사용할 수 있다.
매크로를 지역변수처럼 사용하는 것인데, 앞서 배운 WildCard를 활용하여 만들 수 있다.
지역변수처럼 사용할 매크로를 하나 생성(LocalVar)한다. 그리고 로컬 와일드카드 노드를 추가하고 출력과 핀을 연결한다.
이렇게 만든 LocalVar를 이벤트에서 Get형식으로 사용이 가능하다.
노드로 접기 / 함수로 접기 / 매크로로 접기
우리가 만든 로직을 다른 곳에서 재사용을 해야한다고 하면 그 로직을 전체 선택한 뒤, 우클릭을 누르면
노드 / 함수 / 매크로로 접기를 통해 좀 더 깔끔하게 정리하여 재사용할 수도 있다.
'언리얼엔진' 카테고리의 다른 글
8. 캐릭터 시점 이동하기 (0) | 2023.05.09 |
---|---|
6. Asset / Character 살펴보기 (0) | 2023.05.06 |
4. 블루프린트 함수 디테일 (0) | 2023.05.03 |
3. 블루프린트 변수 / 함수 / 구조체 (0) | 2023.05.02 |
2. 블루프린트 클래스 계층구조 / Static Mesh Actor 생성하기 (0) | 2023.05.01 |