언리얼_엔진_게임개발_공부/언리얼 C++14 [언리얼/C++] 굴러다니며 벽에 부딪힐 때 방향 바뀌는 바위 (반사 벡터) 목표- 벽이 직사각형 모양으로 둘러싼 레벨 안에서 굴러다니는 바위- 벽에 부딪혔을 때 당구공처럼 반사 방향으로 이동- 반사 방향으로 굴러감 반사 벡터 계산아직 벡터 수학에 대한 이해가 부족하지만 아래 글을 보며 열심히 이해하려고 노력했다. 게임 프로그래밍(반사벡터)우리는 띄어놓은 창에서 어떤 물체가 튈때의 반사 벡터를 구해야 하는 경우가 있다. 예를 들면 총알을 발사...blog.naver.com 우선 바위 액터는 아래와 같이 스폰되며, Tick 함수에서 방향 벡터로 움직임을 구현했다.// 현재 회전 FRotator 에서 방향 유닛 벡터를 가져와 이동 방향 벡터에 대입void ARollingRock::BeginPlay(){ Super::BeginPlay(); MoveDirectionVector = Get.. 2025. 2. 14. [언리얼/C++] 디버프 - 코드로 UTextBlock 동적 생성 및 추가 디버프 효과가 적용될 때 디버프 이름과 남은 시간을 UTextBlock 으로 생성하여 HUD 위젯 블루프린트에서 만들어 놓은 Vertical Box 에 추가하는 과정을 기록한다. 프로세스아래의 내용을 0.1초마다 호출되어 HUD 를 업데이트하는 함수에 구현한다.1. 만들어 놓은 Vertical Box 가져오기--> GetWidgetFromName 함수로 가져온 후 UVerticalBox 로 캐스팅if (UVerticalBox* StatusBox = Cast(HUDWidget->GetWidgetFromName(TEXT("StatusBox")))){//...2. 캐릭터의 현재 상태--> 캐릭터 클래스의 퍼블릭 멤버 변수 가져오기if (ASpartaCharacter* PlayerCharacter = Cast(.. 2025. 2. 13. [언리얼/C++] UUserWidget 인스턴스에 RemoveFromParent 호출 시 메모리 해제? 물론 알아서 잘 해주는 언리얼 엔진이지만...언리얼 엔진의 UMG 를 활용해 게임 UI 를 만드는 것에 대한 강의를 들었다.예제를 다루며 특정 상황에 위젯 객체를 RemoveFromParent 함수를 호출하여 화면에서 삭제하고 객체를 가리키던 포인터 변수에 nullptr 를 대입하였다.이 때 메모리가 해제되는 것인지에 대한 언급이 없어서, RemoveFromParent 함수에서 메모리 해제가 되는 것이 맞는지 확인하고 싶어졌다.(생성자에서 초기화하는 것 외에, 런타임에 생성되는 객체를 가리키는 raw pointer 변수에 특정 함수에서 nullptr 를 직접 assign 하는 것에 대한 두려움이 있다 ㅋ... 지난 첫 팀프로젝트에서 메모리 릭을 잔뜩 만들어냈던 장본인으로숴...^^ 다행히 고쳤지만...).. 2025. 2. 10. [언리얼/C++] ApplyDamage / TakeDamage 파헤쳐보자 오늘 공부한 내용에서는 캐릭터 클래스에 체력을 구분하고,지뢰 아이템이 폭발할 때 폭발 범위 내에 있으면 체력을 깎는 (데미지를 입히는) 부분을 구현하였다.여기에서 두 가지 언리얼 엔진의 코드를 사용했다.UGameplayStatics::ApplyDamage() - 액터에 데미지를 적용시킨다AActor::TakeDamage() - 액터가 데미지를 받는다 언리얼 엔진의 코드를 사용하게 될 때마다 너무너무 궁금하다!뜯어?보면 엄청난? 것들이 일어나고 있고 다양한 정보가 오고가기 때문에...정확히 알아두면 나중에 필요한 정보를 간편하게 뽑아쓸 수 있을 것만 같은 기분...?그래서 각 함수가 어떻게 정의되어 있는지 살펴보았다.(비주얼 스튜디오에서 F12를 눌러 함수 정의된 부분으로 순간이동해 살펴보았다. 넘 재밌다.. 2025. 2. 7. [언리얼/C++] TSubclassOf 와 TSoftClassPtr - Get() 함수 비교하기 랜덤으로 아이템을 스폰하기 위해 아이템 종류와 확률을 데이터테이블에 저장하고, 이를 스폰 볼륨에서 불러와 TSubclassOf 로 클래스에 대한 참조를 가져오는 과정에서 TSubclassOf 와 TSoftClassPtr 의 차이에 대해 더 자세히 알고 싶어졌다. *아래 내용은 마지막에 링크해 둔 여러가지 자료들에서 찾아 본 내용을 정리한 것으로, 혹시 사실과 다른 부분이 있다면 알려주시면 감사하겠습니다!!! 우선 공식 도큐멘테이션을 비롯하여 온라인에서 찾아본 기본적인 정보는 아래와 같다.TSubclassOfTSoftClassPtr특정 클래스 혹은 자식 클래스만 포괄하는 참조를 위한 템플릿--> type safety (관계 없는 클래스로 활용되는 것을 방지)클래스의 경로를 담은 구조체 FSoftObject.. 2025. 2. 6. [언리얼/C++] LineTraceSingleByChannel 로 충돌 감지 참고 : https://dev.epicgames.com/community/snippets/2rR/simple-c-line-trace-collision-queryLineTraceSingleByChannel 함수를 활용하는 방법에 대해서는 위 포럼 글에 간단하게 정리되어 있었다. 블루프린트로 충돌 감지하는 것에 대해서는 지난번 TIL 로 정리했었다.https://jaboy.tistory.com/19 [언리얼/블루프린트] 충돌 감지 (overlap / hit), 시선 상 충돌 감지 (line trace / sweep)Overlap- 오버랩을 "당하는" 컴포넌트의 레퍼런스와 트랜스폼을 입력 핀에 연결e.g. 시야 내에 오버랩하는지 체크하고자 한다면, 시야를 나타내고 있는 컴포넌트**위와 같이 컴포넌트가 오버랩 .. 2025. 2. 4. 이전 1 2 3 다음