-
Create Door TriggerGame Programming/언리얼 2023. 10. 20. 14:19
문 트리거를 제작했다.
//Common static mesh for childs UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Item Properties", meta = (AllowPrivateAccess = "true")); class UStaticMeshComponent* StaticMesh;
스테틱 메시는 아이템 클래스 자식들이 공통적으로 사용해 부모로 이동시켰다.
TSubclassOf<ACDoor> classToFind; TArray<AActor*> FoundActors; UGameplayStatics::GetAllActorsOfClass(GetWorld(), ACDoor::StaticClass(), FoundActors); double dist = 0.f; for (int i = 0; i < FoundActors.Num(); ++i) { FString strName = ""; FoundActors[i]->GetActorLocation(); double currentdist = GetActorLocation().Distance(FoundActors[i]->GetActorLocation(), GetActorLocation()); if (currentdist > dist) { dist = currentdist; DoorActor = Cast<ACDoor>(FoundActors[i]); } }
BeginPlay에 추가된 부분이다.
TSubclassOf<ACDoor> classToFind; TArray<AActor*> FoundActors; UGameplayStatics::GetAllActorsOfClass(GetWorld(), ACDoor::StaticClass(), FoundActors);
GetAllActorsOfClass 사용해 월드상에 존재하는 Door 객체를 찾는 방법이다.
GetAllActorsOfClass는 블루프린트 객체 또는 객체 Tag string으로 찾을 수 있다.
if (TraceHitTriggerLastFrame) { ACDoor* DoorActor = nullptr; DoorActor = TraceHitTriggerLastFrame->GetDoorActor(); if (DoorActor) DoorActor->OpencloseDoor(); }
이렇게 찾은 ACDoor 객체를 소유하고, MyCharacter에서 문을 열고 닫는 것을 구현했다.
'Game Programming > 언리얼' 카테고리의 다른 글
총알 클래스 제작 (0) 2023.10.22 Camera Interp location (1) 2023.10.21 문 소켓 추가 (0) 2023.10.19 문 물리 작용 업데이트 (0) 2023.10.19 무기 교체 (0) 2023.10.18