UE5
[UE5] 캐릭터 이동 설정 / SetActorLocation vs AddMovementInput
1. SetActorLocationset은 deltatime도 곱해줘야하고, 직접 newLocation 을 + * 로 계산해서 넣어줘야했다. 2. AddMovementInput반면 add 는 World Direction 이라는 어디로 이동할것인지 그 "의도" 만 World Direction에 던져주면좌측의 캐릭터무브먼트에서 "소비" 즉 의도를 해석해서 이동을 시켜준다.언리얼이 이를 분리해서 구현하였다. 3. 키보드 입력 설정방법
[UE5] 가고일 물리반응 끄기, trigger에 붙여서 같이 내려가도록 구현
1. 전체코드 void UTriggerComponent::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) { Super::TickComponent(DeltaTime, TickType, ThisTickFunction); AActor* Actor = GetAcceptableActor(); if (Actor != nullptr) { //1. 액터의부모받아옴 / 타입 : 씬컴포넌트 //2. 캐스팅(대상) => primitive이면 그거리턴, 아니면 null 리턴 UPrimitiveComponent* Component= Cast(Actor->GetRootComponent()); //액터..
[UE5] 의존성 주입, mover-trigger간 통신하는 방법, 가고일올리면 문 내려가도록 구현
1. Mover에서 public:setter 만듬 void UMover::SetShouldMove(bool NewShouldMove) { ShouldMove = NewShouldMove; } 2.trigger에서 mover.h 인클루드 멤버 UMover* mover 만듬 그 맴버(mover)에 의존성주입하는 함수 만듬 // 매개변수 명을 다르게 지어야함에 주의 void UTriggerComponent::SetMover(UMover* NewMover) { Mover = NewMover; } 3. 문BP에서 매개변수로 문에 달려있는 mover전달. => 의존성주입됨. 4. trigger-tick에서 mover의 setter 실행 void UTriggerComponent::TickComponent(float ..
[UE5] 특정액터에만 반응하도록 구현
1. 가고일에 태그달기 2. 문-Trigger파일 수정 해당태그 액터만 반환하도록 // Fill out your copyright notice in the Description page of Project Settings. #include "TriggerComponent.h" UTriggerComponent::UTriggerComponent() { //문제 : 컴포넌트는 틱 작동안하게 되어잇음 (성능문제) //해결 : tick 함수 활성화 PrimaryComponentTick.bCanEverTick = true; } // Called when the game starts void UTriggerComponent::BeginPlay() { Super::BeginPlay(); } void UTriggerCo..
[UE5] 오버랩 이벤트 발생시키는 방법
1. 트리거 c++ 2. 문짝 블루프린트 생성, 트리거c++ 추가, 이벤트로 이름찍기 BP 추가 3. 조각상-오버랩 이벤트 켜기 양쪽(조각상,트리거) 모두 이벤트 체크되있어야 이벤트 발생함
[UE5] 충돌위치 찾기 location vs impactpoint
location : 초록구체 impactpoint : 빨간구체 FCollisionShape SPhere = FCollisionShape::MakeSphere(GrabRadius); FHitResult HitResult;//함수안에서 부딪힌 결과물 넣어줌 bool HasHit = GetWorld()->SweepSingleByChannel( HitResult, Start, End, FQuat::Identity, ECC_GameTraceChannel2, SPhere); if (HasHit) { //파랑구체그리기 //location : Sphere(sweep 매개변수)랑 물체랑 닿았을때, sphere의 위치 //impactpoint : sphere랑 실제물체가 닿은 위치 DrawDebugSphere(GetWor..