인프런 커뮤니티 질문&답변

엄성수님의 프로필 이미지
엄성수

작성한 질문수

[입문자를 위한 UE5] Part1. 언리얼 엔진 블루프린트

연습 문제 : Player vs Monster

연습문제: Player vs Monster 질문드립니다

작성

·

522

0

강의 너무 감사하게 듣고 있습니다. 비전공자에 언리얼이 처음이라 혼자 낑낑거리면서 숙제를 해보고있습니다

숙제1.png맨처음에 이리저리만들다가 느낌은 비슷하게 요렇게 만들어보았는데 시작점 부터 다르게 작성이 되어서 질문드립니다.

저는 만들어 두었던 myfunction에서 두 함수를 만들어서 다음과같이 제작하였는데 정상작동이 되더라구요. 혹시 강사님 께서 작성하신 것 처럼 작용할 클래스에서 함수를 제작한 것과 그냥 다른 myfuntion클래스에서 작성해서 적용 시킨 것의 차이가 무엇인지 궁금합니다.

숙제2.png숙제3.png

답변 1

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

심오하면서도 중요한 부분인데요.
C++로 치면 [멤버 함수] vs [전역(global)/정적(static)] 함수의 차이입니다.

멤버 함수는 특정 class에 소속되어 있기 때문에,
해당 객체를 이용해 호출하는 형태입니다.
가령 class Player 내부에 Test(인자없음) 함수를 만들었다면,
실제로 Player 참조값을 이용하여 Test를 호출해야 하며
C++ 기준으로는 player->Test();가 되고
블루프린트 상으로는 Test 호출 시 첫 번째 구멍에
무조건 Player의 참조를 연결해야 합니다.

반면 정적 함수는 클래스와 무관하게 호출 가능하며, Test만 덩그라니 호출이 가능합니다.
작업하신 상황은 공교롭게도 PlayerAttack에 Player 참조를 먼저 넣어주니
블루프린트 상으로 보기엔 큰 차이가 없게 되었지만 근본적인 차이는
설계적으로 특정 클래스에 소속된 함수인지 아닌지에 따라 차이가 있습니다.

코드가 많아지고 함수가 엄청 많아진다면,
어지간해서는 멤버 함수를 사용하는 편이 관리하기 좋겠죠.




엄성수님의 프로필 이미지
엄성수
질문자

답변감사드립니다! 어느정도 생각이 정리되었습니다!!

엄성수님의 프로필 이미지
엄성수

작성한 질문수

질문하기