ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Create Door Trigger
    Game 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
Designed by Tistory.