분류 전체보기
-
[Unreal] 언리얼 멀티플레이에서 얻어낸 간단 팁들쾌락없는 책임 (공부)/Unreal 2023. 5. 18. 19:19
개요 개요의 개요입니다. 일단 먼저 명시하는 건 아직 멀티플레이를 완벽하게 이해한 것이 아닌, 스스로 중간 정리를 하기 위해 작성 중인 글입니다. 최대한 바른 정보를 올리는 게 맞아 최대한 검증은 해 보지만, 아직까지 경험이 많지 않아 그 경험으로 인해 나오는 부족함이 있을 것입니다. 혹시나 부족한 부분이 있다면 언제나 댓글로 제보 부탁드리고 스스로도 계속 검증해서 좋은 내용만 담아보겠습니다. MovementComponent에서 WalkSpeed는 리플리케이션 대상이 아니다 그렇습니다. 혹시 달리기 등을 통해 MovementComponent의 WalkSpeed를 변경하는 분들은 다른 방식을 사용해야 합니다. GameMode는 서버에만 있다 그렇습니다. 아무리 클라이언트가 발광을 해도 얻을 수 없는 그것,..
-
[Unreal] 언리얼 유효성 검사 - IsValid, == nullptr, ensure쾌락없는 책임 (공부)/Unreal 2023. 5. 15. 22:54
개요 평소 언리얼에서 포인터 타입들에 대해 유효성 검사를 할 때 if(Ptr == nullptr) return; 이런 식으로 사용했습니다. 그런데 이와 관련한 여러 함수들이 있는 것을 점차 발견하게 되었습니다. 그래서 한번 차이를 알아보고 어떤 차이점이 있는지 알아보려고 합니다. IsValid() 이 함수가 유효성 검사에서 주로 사용되는 함수입니다. FORCEINLINE bool IsValid(const UObject *Test) { return Test && FInternalUObjectBaseUtilityIsValidFlagsChecker::CheckObjectValidBasedOnItsFlags(Test); } 자세히 보면 Test 포인터가 nullptr임을 판단함과 동시에 무언가 CheckObje..
-
[Unreal] 언리얼 Anim Notify State C++로 작성해보기쾌락없는 책임 (공부)/Unreal 2023. 4. 27. 14:06
개요 언리얼에서 Montage 를 사용하게 되면 애니메이션의 타이밍에 무언가를 호출하기 위해 Notify를 사용하는 경우가 있습니다. 이런 Notify는 일단 단일, 즉 1번 불리게 되는 기능이고 특정 구간동안 함수를 호출하고 싶다라고 한다면 Notify State를 사용하면 됩니다. BP로 만드는거야 여기저기 자료가 많이 있을 것 같고, 그래서 C++로 이를 작성하는 방법을 간단하게 적어보겠습니다. Notify State cpp 함수 일단 cpp 함수를 만들면서 Notify State를 상속받는 함수를 제작해야 합니다. 여기서 AnimNotifyState를 상속받았다면 재정의 가능한 함수 3개를 보시면 됩니다. NotifyBegin, NotifyTick, NotifyEnd 입니다. 이름을 들어보면 딱 ..
-
[Unreal] NewObject로 생성한 오브젝트에서 GetWorld() 가 nullptr 이라면쾌락없는 책임 (공부)/Unreal 2023. 4. 19. 21:50
개요 프로젝트를 진행하던 중 NewObject로 동적으로 생성한 인스턴스에서 GetWorld를 부를 수 없는 문제가 있었습니다. 왜 GetWorld가 nullptr을 반환할까 궁금하던 와중 결론을 얻게 되었습니다. Outer 인자를 지정해주지 않아서 이런 일이 있었던 것입니다. 결론 UObjet::GetWorld()는 조금 특수하게 되어 있습니다. class UWorld* UObject::GetWorld() const { if (UObject* Outer = GetOuter()) { return Outer->GetWorld(); } #if DO_CHECK if (IsInGameThread()) { bGetWorldOverridden = false; } #endif return nullptr; } 아무래도..
-
[Git] error: failed to push some refs to 오류쾌락없는 책임 (공부)/Git 2023. 3. 27. 22:35
개요 급하게 처리한다고 차마 해결하지 못했는데 Github Desktop 을 사용하면서 처음 보는 오류가 나왔습니다. 정확히는 아래 내용과 같았습니다. error: failed to push some refs to '내 깃허브 주소' 해결법 - 다른곳에서 클론 후 .git 파일 옮겨주기 일단 이 커밋 내역을 잃을 수는 없었기에 여러 방법을 시도해 봤습니다. git gc 도 해보고 패치는 당연히 되어 있었고 컴퓨터도 재부팅 해보고 등등... 이런 과정들에서 전부 해결이 안되어서 아래와 같은 방식을 사용했습니다. 기존 폴더는 그대로 둔 뒤 다른곳에서 해당 리포지토리를 Clone 클론이 되면 파일 탐색기에서 '보기 > 표시/숨기기 > 숨긴항복 > 체크' .git 파일이 보이면 이걸 가져와서 붙여넣기 이후 gi..
-
[Unreal] 언리얼 ListView 간단하게 알아보기쾌락없는 책임 (공부)/Unreal 2023. 3. 23. 13:35
개요 아이템을 파밍 할 때 아이템에 픽업이 뜨는가, 사용자에게 근처에 있는 아이템 목록을 알려 주는가 등 여러 가지 방법이 있습니다. 저는 프로젝트에서 '플레이어 근처에 있는 아이템들의 목록을 보여주자' 라고 결정을 했고 이에 따라 이 목록을 위한 List View 가 필요했습니다. 다만 역시 알아보면 C++로 처리한 래퍼런스를 찾기 어려워 제가 만든 걸 공유하고자 이렇게 글을 쓰게 됩니다. - 간단 요약만 알고 싶다면 맨 아래로 C++ 코드로 보는 ListView class UListView; UCLASS() class PROJECTFA_API UPickupItemList : public UUserWidget { GENERATED_BODY() public: UPROPERTY(meta=(BindWidge..