ShovelingLife
A Game Programmer
ShovelingLife
전체 방문자
오늘
어제
  • 분류 전체보기 (1072) N
    • 그래픽스 (57)
      • 공통 (19)
      • 수학 물리 (22)
      • OpenGL & Vulkan (1)
      • DirectX (14)
    • 게임엔진 (183) N
      • Unreal (69)
      • Unity (103) N
      • Cocos2D-X (3)
      • 개인 플젝 (8)
    • 코딩테스트 (221)
      • 공통 (7)
      • 프로그래머스 (22)
      • 백준 (162)
      • LeetCode (19)
      • HackerRank (2)
      • 코딩테스트 알고리즘 (8)
    • CS (235)
      • 공통 (21)
      • 네트워크 (44)
      • OS & 하드웨어 (55)
      • 자료구조 & 알고리즘 (98)
      • 디자인패턴 (6)
      • UML (4)
      • 데이터베이스 (7)
    • 프로그래밍 언어 (348) N
      • C++ (167)
      • C# (90) N
      • Java (9)
      • Python (33)
      • SQL (30)
      • JavaScript (8)
      • React (7)
    • 그 외 (9)
      • Math (5)
      • 일상 (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Source Code 좌측 상단에 복사 버튼 추가 완료
  • 언리얼 엔진 C++ 빌드시간 단축 꿀팁
  • 게임 업계 코딩테스트 관련
  • 1인칭 시점으로 써내려가는 글들

인기 글

태그

  • 함수
  • 클래스
  • 배열
  • 포인터
  • 알고리즘
  • c#
  • 유니티
  • 프로그래머스
  • 파이썬
  • string
  • 오블완
  • 그래픽스
  • 백준
  • 문자열
  • 언리얼
  • C
  • 티스토리챌린지
  • Unity
  • SQL
  • C++

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ShovelingLife

A Game Programmer

[Unreal] Level Blueprint 를 C++로 접근하기
게임엔진/Unreal

[Unreal] Level Blueprint 를 C++로 접근하기

2023. 11. 6. 10:45

기본적으로 Level Blueprint는 ALevelScriptActor, 즉 Actor 형식이다. 이를 상속받아 새로운 Level Actor를 생성한다.

Show All C lasses 에 체크한 뒤, LevelScriptActor를 검색한다.

 

각 레 벨 마다 하는 행동이 다를 수 있으니 Base -> Derived 형태로 상속하여 사용할 것이므로 BaseLevel  로 추가한다.

 

위와 같이 몬스터에 관련된 함수들을 추가해준다. Delegate를 사용할 것 이므로 Monster Count가 0 될땐 BroadCast를 해준다.

 

실제 로 사용할 Level 에서 Level Blueprint를 열어, Class Settings에서 Parent Class를 자신의 LevelScripActor로 변경해주어야 한다.

 

자신의 LevelScriptActor에서 추가한 함수가, Level Blueprint에서도 보일 수 있게 수정할 수 있다. 다음은 Actor들의 Reference를 받아 Destroy 시키는 DestroyActors 함수이다.

 

자신의 LevelScriptActor에서 작성한 함수가 Level Blueprint에서 보이려면 UFUNCTION과 Specifier 작성 필수이다.

눈에 띄는건 DestroyActors의 UPARAM(ref) 이라는 매크로인데, 이는 함수가 받는 인자가 Blueprint 상에서는 왼쪽

에서 와야 한다는 뜻이다.

( -> 즉 UPARAM(ref)를 사용하지 않으면, Actors 라는 인자는 Blueprint 노드의 오른쪽에 위치하게 된다. )

실제 사용 예, Actors가 왼쪽에 위치한

 

 

만약 UPARAM(ref) 을 사용하지 않으면, 블루프린트는 인자를 Out 형식으로 쓸 수도 있기 때문에 아래와같이 배치된다.

(즉 한 함수를 통하여 2 개 이상의 값이 반환되어야 한다면, Return 타입만으로는 관리할 수 없다,

이를 위해 인자로도 정보를 받아낼 수 있게 하는데, Blueprint는 함수의 인자가 실제로 정보를 받는 인자인지, 정보를 밖으로 배출하는 인자인지 알 수 없기 때문에 UPARAM(ref) 매크로로 관리해준다.)

 

블루프린트에서 왼쪽은 받는 인자이고, 오른쪽은 배출하는 인자 이다. ( In & Out )

 

 

나만의 연습장 :: [Unreal Engine 4] Level Blueprint 를 C++로 접근하기 (tistory.com)

저작자표시 (새창열림)

'게임엔진 > Unreal' 카테고리의 다른 글

[Unreal] 미니맵 및 캐릭터 위치 표시  (0) 2023.11.15
[Unreal] Programming Subsystem (프로그래밍 서브시스템)  (0) 2023.11.14
[Unreal] 언리얼 비동기 애셋 로딩 (Asynchronous Loading)  (0) 2023.11.06
[Unreal] Reflection (리플렉션)  (0) 2023.10.26
[Unreal] GetClass 와 StaticClass 의 차이  (0) 2023.10.26
    '게임엔진/Unreal' 카테고리의 다른 글
    • [Unreal] 미니맵 및 캐릭터 위치 표시
    • [Unreal] Programming Subsystem (프로그래밍 서브시스템)
    • [Unreal] 언리얼 비동기 애셋 로딩 (Asynchronous Loading)
    • [Unreal] Reflection (리플렉션)
    ShovelingLife
    ShovelingLife
    Main skill stack => Unity C# / Unreal C++ Studying Front / BackEnd, Java Python

    티스토리툴바