함수 정의 및 기본 호출 방법
함수는 블루프린트에서 재사용 가능한 코드 블록을 만드는 데 사용됩니다.
이를 통해 복잡한 로직을 모듈화하고, 코드의 가독성과 유지보수성을 향상시킬 수 있습니다.
함수 생성 방법
- 'My Blueprint' 패널에서 '함수 추가' 버튼 클릭
- 함수 이름 지정 (예 : "CalculateDamage")
- 새로 생성된 함수 그래프로 이동
함수 입력과 출력 설정
- 함수 그래프의 왼쪽에 있는 입력 핀에서 '+'를 클릭하여 입력 매개변수 추가
- 오른쪽의 출력 핀에서 '+'를 클릭하여 반환 값 설정
함수 본문 작성
함수 그래프 내에서 노드를 추가하여 원하는 로직을 구현합니다.
함수 호출 방법
- 그래프에서 우클릭하여 컨텍스트 메뉴 열기
- 함수 이름 검색 및 선택
- 함수 노드의 입력 핀에 필요한 값 연결
- 함수 노드의 출력 핀을 다른 노드에 연결하여 결과 사용
순수 함수 vs 불순 함수
1. 순수 함수 (Pure Function)
- 동일한 입력에 대해 항상 동일한 출력 반환
- 외부 상태를 변경하지 않음
- 블루프린트에서 파란색 노드로 표시
- 실행 핀이 없음
2. 불순 함수 (Impure Function)
- 외부 상태를 변경할 수 있음
- 실행 순서가 중요함
- 블루프린트에서 회색 노드로 표시
- 실행 핀이 있음
로컬 변수 사용
함수 내에서만 사용되는 임시 변수를 생성할 수 있습니다.
- 함수 그래프에서 우클릭하여 '변수 추가' 선택
- 변수 이름과 유형 설정
- 해당 함수 내에서만 사용 가능
함수 오버로딩
동일한 이름의 함수를 다른 매개변수로 여러 개 정의할 수 있습니다.
블루프린트는 호출 시 제공된 인자에 따라 적절한 함수를 선택합니다.
함수 구성 및 재사용 팁
1. 단일 책임 원칙 준수
- 각 함수는 하나의 명확한 작업만 수행하도록 설계
2. 의미 있는 이름 사용
- 함수의 목적을 명확히 나타내는 이름 선택
- 예 :
CalculateDamage
,UpdatePlayerHealth
3. 함수 크기 제한
- 너무 큰 함수는 작은 단위로 분할
- 일반적으로 화면 한 번에 볼 수 있는 크기로 유지
4. 입력 유효성 검사
- 함수 시작 부분에서 입력값의 유효성 검사
5. 주석 추가
- 복잡한 로직에 대한 설명을 주석으로 추가
- 'Description' 필드에 함수의 목적과 사용법 설명
6. 재사용성 고려
- 여러 곳에서 사용될 수 있는 일반적인 기능은 별도의 함수로 분리
7. 디버그 지원
- 중요한 지점에 Print String 노드 추가
- 개발 빌드에서만 작동하는 디버그 로직 포함
고급 함수 기능
1. 이벤트 디스패처와 함수 연동
- 함수 실행 결과에 따라 이벤트 발생
2. 인터페이스 함수 구현
- 블루프린트 인터페이스를 통해 정의된 함수 구현
- 다형성 활용 가능
3. 재귀 함수
- 함수가 자기 자신을 호출
- 주의 : 무한 루프 방지를 위한 종료 조건 필수
4. 콜라이더 오버랩 이벤트와 함수 연결
- 충돌 감지 시 특정 함수 호출
함수 최적화 팁
1. 과도한 함수 호출 피하기
- 루프 내에서 불필요한 함수 호출 제거
2. 무거운 연산은 한 번만 수행
- 결과를 캐시하여 재사용
3. 불필요한 형변환 피하기
- 가능한 동일한 데이터 타입 사용
4. 조건부 실행 활용
- Branch 노드를 사용하여 필요한 경우에만 특정 로직 실행
함수는 블루프린트 프로그래밍의 핵심 요소로, 잘 설계된 함수는 코드의 가독성, 재사용성, 그리고 유지보수성을 크게 향상시킵니다.
위의 가이드라인을 따라 함수를 생성하고 사용함으로써, 더 효율적이고 구조화된 블루프린트를 작성할 수 있습니다.
지속적인 연습과 실제 프로젝트에의 적용을 통해 함수 사용 능력을 향상시키는 것이 중요합니다.