skyf의 게임 개발기

[개발일지] 언리얼 C++ 스크립트 관련 본문

Unity/Unity 개발 일지

[개발일지] 언리얼 C++ 스크립트 관련

skyf7604 2021. 11. 16. 16:05

CPP 스크립트로 바로 씬에 배치하기 위해서는 처음 빌드를 CPP 프로젝트로 빌드해주어야 한다.

또한, 블루프린트에서 정의해서 사용할 함수를 사용할때 스크립트 상에서 UFUNCTION 속성을 쓰게 되는데

이때 BlueprintNativeEvent태그를 붙여주게 될 경우

해당 함수의 이름뒤에 _Implementation이 붙은 함수를 하나 더 선언/정의 해주어야 한다.

솔루션의 빌드는 조심해야한다. 되도록 안하는게 좋다. 스크립트상의 실제 내용과 꼬이는 현상이 있어 보인다.

가상함수 선언시 정의하지 않은 경우 순수가상함수 처리를 해주어야 한다.

이번에 테스트하면서 가상함수를 정의를 했음에도, 가상함수로 처리했음에도 버그가 있었는데(프로젝트 자체가 열리지도 않는다. 솔루션 상에서의 문제인듯 하다) 일단, 프로젝트를 새로 만들어서 해결을 했다.

솔루션 관련한 데이터를 리셋하면 될것 같다.(추측)

 

FTimerHandle 변수와 GetWorldTimerManager()를 이용해서 코루틴과 같은 기능을 사용했다.

SetTimer함수에 인자로 넣어주는 함수가 반복해서 호출이 되는 함수이고, 그 다음 인자는 호출 간의 시간간격이다.

 

GetWorldTImerManager().ClearTimer()가 호출 되기 이전까지 계속 작동하는 것으로 확인됨.

 

https://carrotclub.tistory.com/entry/UE4-C-%EC%97%90%EC%84%9C-BluePrint-Class-%EB%B6%88%EB%9F%AC%EC%98%A4%EA%B8%B0

 

UE4 C++ 에서 BluePrint Class 불러오기

4.16에서 LoadObject를 통해 BluePrint Class를 불러오려면 UBluePrintGeneratedClass* LoadedBP = LoadObject ("AssetPath.FileName_C"); 를 사용하도록 한다. 4.14에서는 UBluePrint 로도 로드가 됐지만 4.16..

carrotclub.tistory.com

 

 

http://egloos.zum.com/sweeper/v/3205742

 

[UE4] 클래스 및 UCLASS 주요 지정자

0. 서문 이 글을 읽기에 앞서, UE4의 Reflection에 대한 이해가 없다면, 꼭 아래 문서부터 읽도록 하자. 언리얼 프로퍼티 시스템 : 리플렉션 UE4의 클래스에 대한 전반적인 내용에 대해서는 아래 문서

egloos.zum.com

 

https://docs.unrealengine.com/4.26/ko/ProgrammingAndScripting/GameplayArchitecture/Classes/Specifiers/

 

클래스 지정자

클래스가 엔진과 에디터의 다양한 부분과 어떻게 작동하는지를 지정하기 위해 UClass 선언시 사용되는 키워드입니다.

docs.unrealengine.com