언리얼얼 Tips
1. 엔진에서 파일 > 새 c++ 클래스.. 로 파일 추가한 다음 경로 변경을 적용하려면
vs 닫고 unreal engine project 파일에서 우클릭 후 Generate Visual Studio project files..를 한다음에 다시 열기.
vs 빌드 후 에디터를 켜면 파일 경로 변경이 적용됨.
.vs, Binaries, Intermediate, Saved, .sin 파일도 삭제를 해야 generate 시에 변경된 내용이 적용됨.
(.sin파일, vcsproj.filters 와 vcxproj.user 파일들은 버전관리 대상이 될 필요가 없다는 것)
2. 헤더를 깜박하고 include 하지 않으면 여러가지 문제가 생김..휴우..
3. .h 에서는 클래스 전방선언 해줄 것.
4. 위젯 생성 시 부모 클래스 등록해주고 MainWidget 에 컨텐츠 추가시엔 선 에디터 추가 후 코드 작성하기.
경험이 없다보니 이유를 몰라서 한참을 헤메는 일이 생김..
5. 위젯 블루프린트 구성하고 코드에 연결 시 변수명 체크 잘 할 것. InstanceName.
6. 위젯 컴포넌트 함수 딜리게이트할때 UFUNCTION() 선언 해줄것.
7. IsValid는 포인터를 검사할 뿐만 아니라 엔진의 관리를 받는 오브젝트가 GC의 삭제를 기다리는게 아닌지도 검사한다.
8. TSubclassOf<T> 는 UClass의 안정성을 보장해주기 때문에(블루프린트로 클래스 선택시에 <T>와 상속 클래스만 보임) 사용하지만..때론 직접 속성에 접근해야 할 경우가 생긴다.
Class.GetDefaultObject()->GetSomething() 로 접근 가능하다.
9. 결국 T* 로 사용해야 할 경우엔 T* pClass = Class.GetDefaultObject() 로 받아서 사용할 것.
10. 블루프린트로 데이터 변경이 필요한 것들은 프로퍼티에서 꼭 가능하게 해주기.
11. 바인딩(함수 포인터)이 필요한 경우와 딜리게이트를 해야하는 경우 구분하기.
12. 바인딩 하다가 생긴 오류로 인해 3일을 개고생..전혀 생각지 못한 곳에서 오류날 수 있음을 기억하기..
13. 문제가 풀리지 않을땐 하나씩 지워가면서 문제를 찾자.
14. struct 생성시 의도치않게 순서가 어긋날 수 있다.
15. Path를 상대적인 경로가 아닌, 절대경로(Source/프로젝트이름) 내부에서 찾게 될 경우, Absolute Path를 적용할 수 있다.
게임 프로젝트 오른쪽 클릭 -> 속성 -> VC++ 디렉터리 -> 포함 디렉터리
<부모 또는 프로젝트 기본값에서 상속> 클릭 후 다시 메뉴에서 편집 클릭 > 버튼 클릭 후 폴더 설정.
폴더는 프로젝트/Source/프로젝트이름
16. (15번) 방식은 generate..하면 매번 재입력 해야해서 다른 방식으로 설정.
Build.cs 열어서 PrivateIncludePaths.Add(ModuleDirectory); PublicIncludePaths.Add(ModuleDirectory); 추가하기.
17. DataAsset 은 다양한 프로퍼티(클래스/구조체/배열등)들을 저장할 수 있고 재사용하거나 확장하기 편함. 간단한 기능은 에이터 기능 확장해서 커스텀 UI 추가하는 대신 DataAsset 으로 해결 가능.
DataTable 은 행/열 표로 입력이 되기에 엑셀로 편집하고 csv 임포트/익스포트하기 편함.
18. 함수 바인딩 구분하기.
AddUObject : UObject의 멤버 함수를 바인딩 할 경우(함수 포인터를 인자로 넘김)
delegate.AddUObject( this, &Uobj::Function );
AddLambda : 람다 함수를 바인딩 할 경우.
AddUFunction : UFunction으로 선언된 함수를 바인딩 할 경우.(함수 이름을 인자로 넘김)
delegate.AddUFunction( this, FName("Function") );
19.
'::protected > 언리얼4&5' 카테고리의 다른 글
Niagara.. (0) | 2023.06.27 |
---|---|
메모리 관리 (0) | 2022.12.26 |
데이터 사용하기. (0) | 2022.06.21 |
AI (0) | 2020.11.18 |
위젯 애니메이션 만들기. (0) | 2020.01.09 |