TargetLocation을 기즈모로 나타냄
UPROPERTY(EditAnywhere, Meta = (MakeEditWidget = true))
FVector mTargetLocation;
mTargetLocation은 Actor의 자식 오브젝트이다.
상대좌표로 나오기에 의도하지 않은 방향으로 이동함.
mTargetLocation을 월드좌표로 변환해야함.
//방향은 목적지 - 현재위치에서 GetSafeNormal로 한다.
//자식 오브젝트인 mTargetLocation은 World좌표로 변환시킨다.
this->mDirection = (GetTransform().TransformPosition(mTargetLocation) - GetActorLocation()).GetSafeNormal();
void AMovingPlatform_B::Tick(float DeltaTime)
{
//서버의 권한인가?, 서버에서 실행하나?
//!HasAuthority일경우 클라이언트의 권한.
//!
//! //서버에서만 작동.
if (HasAuthority())
{
//이동
FVector Location = GetActorLocation();
Location += mDirection * DeltaTime * mSpeed;
//위치 변경
SetActorLocation(Location);
}
}
'unreal engine' 카테고리의 다른 글
[언리얼엔진] C++로 움직이는(왕복) 물체 만들기 (0) | 2022.07.10 |
---|---|
[언리얼엔진] C++로 컴포넌트 생성하기 (0) | 2022.07.10 |
[언리얼엔진] Authotiry와 멀티플레이 관계 (0) | 2022.07.09 |
[언리얼엔진] 클라이언트 - 서버 모델, 커맨드로 언리얼 실행 (0) | 2022.07.09 |
[언리얼엔진] C++에서 메뉴 탐색하기 (0) | 2022.03.06 |