작성
·
525
0
강의 너무 감사하게 듣고 있습니다. 비전공자에 언리얼이 처음이라 혼자 낑낑거리면서 숙제를 해보고있습니다
맨처음에 이리저리만들다가 느낌은 비슷하게 요렇게 만들어보았는데 시작점 부터 다르게 작성이 되어서 질문드립니다.
저는 만들어 두었던 myfunction에서 두 함수를 만들어서 다음과같이 제작하였는데 정상작동이 되더라구요. 혹시 강사님 께서 작성하신 것 처럼 작용할 클래스에서 함수를 제작한 것과 그냥 다른 myfuntion클래스에서 작성해서 적용 시킨 것의 차이가 무엇인지 궁금합니다.
답변 1
1
심오하면서도 중요한 부분인데요.
C++로 치면 [멤버 함수] vs [전역(global)/정적(static)] 함수의 차이입니다.
멤버 함수는 특정 class에 소속되어 있기 때문에,
해당 객체를 이용해 호출하는 형태입니다.
가령 class Player 내부에 Test(인자없음) 함수를 만들었다면,
실제로 Player 참조값을 이용하여 Test를 호출해야 하며
C++ 기준으로는 player->Test();가 되고
블루프린트 상으로는 Test 호출 시 첫 번째 구멍에
무조건 Player의 참조를 연결해야 합니다.
반면 정적 함수는 클래스와 무관하게 호출 가능하며, Test만 덩그라니 호출이 가능합니다.
작업하신 상황은 공교롭게도 PlayerAttack에 Player 참조를 먼저 넣어주니
블루프린트 상으로 보기엔 큰 차이가 없게 되었지만 근본적인 차이는
설계적으로 특정 클래스에 소속된 함수인지 아닌지에 따라 차이가 있습니다.
코드가 많아지고 함수가 엄청 많아진다면,
어지간해서는 멤버 함수를 사용하는 편이 관리하기 좋겠죠.
답변감사드립니다! 어느정도 생각이 정리되었습니다!!