MyTemplateClass<자료형> 인스턴스명;Add<int>(a, b) 이런 식으로template <typename T> Add (T a, T b): int와 float이 들어오면?<int>, <float>로 만들면 알아서 형변환 해주긴 함. 명시적 선언 안해주면 안됨.<int>와 <float>를 더하고 싶으면? T, U 두개 선언해서 쓰는 게 맞다vector, map, set, stack, queue, list 등등...set 이 가끔 쓰임TArray, TMap, TMultiMap, TSetpush_back(), pop_back(), size(), capacity(), reserve (size_t _newCapacity): capacity 늘려줌. 값 초기화는 안해줌._ 변수 뒤에 붙이는 거: 보통 멤버변수 표시하기 위해 이렇게 붙힌다.reserve 함수는 vector STL 내부 구현 함수라 규칙이 좀 달라 _newCapacity 이렇게 해놨을 가능성 다분. 실제론 변수명 앞에 _는 별로 쓸 일 없다clear(): size 0으로. 용량은 안변한다.resize -> 사이즈 수정. 기존 size보다 작으면 초과분 삭제. 더 크면 0에 준하는 값으로 초기화해서 생성. capacity보다 크면 메모리 재할당std::vector<std::vector<float>> D2Vector;
D2Vector.assign(4u, vector<float>(8u, 0.f)); // 4 x 8 2차원 배열을 모두 0.f로 초기화
int8_t / uint8_tint16_t / uint16_tint32_t / uint32_tint64_t / uint64_tintptr_t / uintptr_t_t 빼고 쓴다.#include <cstdint> 같은 거enum and enum classenum 은 enum 멤버를 int형 변수에 대입, 다른 enum의 멤버와 비교도 가능했음 -> 엉망 됨int Number = MyPosition; 이런 식으로 enum to int 암시적 형변환 해줌if(MyPosition == ZED) -> 다른 enum 끼리 비교 -> 컴파일 에러 안난다.enum 은 각 멤버에 번호를 할당 해 두는 리스트 같은 거라고 꼭 기억enum classenum class 열거형명: uint8_t 로 기저 정수형을 지정할 수도 있다. 이럼 각 열거형이 8비트 크기로 제한Ctrl+Shift+F5!Ctrl+Shift+F5!Ctrl+Shift+F5!
새 액터 생성할 때: .cpp 파일에 #include "폴더명/MyActor.h" 로 되어 있는 거 폴더명 삭제해 두기
한동안은 액터 헤더-cpp 파일을 한 폴더에 보관할 거기 때문에 폴더이동 등에 대응하기 쉽게 폴더명 쪽을 삭제해 두는 게 맞다.
Unreal Default가 폴더명을 지정해 두는 것은 Default 폴더관리체계가 public 과 private를 큰 폴더로 노출할 헤더 등등을 폴더단위로 관리하기 때문. 지금 당장은 필요없다.
main 브랜치는 작업 완료 전엔 건들지 말기! 항상 브랜치 새로 만들어서 작업-확인 후 merge
Branch -> New BranchCheckout Branch - 로컬 브랜치들 우클릭 하면 맨 위에 나오는 그거. 혹은 브랜치들에 더블클릭merge XXX into current branch.
<<<HEAD, ===, >>>Refac 부분 지우고Resolve Conflicts -> Mark Resolved. 이후 푸시. 해결!