Как включить основную камеру плеера после ее включения - PullRequest
0 голосов
/ 09 апреля 2020

На сцене есть игрок и камера (не камера игрока), к которой я переключаюсь, чтобы воспроизвести анимацию того, как игрок встает с постели. Когда анимация заканчивается, я хочу вернуть камеру игрока, но по какой-то причине она находится в середине капсулы игрока, а не на уровне глаз, где находится сама камера.

Мне не ясно, что Начальный объект игрока Теоретически, вам нужно передать UCameraComponent, а не APlayerController, в SetViewTarget, но затем он генерирует ошибку "нет подходящей функции преобразования из" UCameraComponent "в" AActor * ", существует"

И у меня есть виджет который отображает описания объектов, если вы наводите курсор на них. По какой-то причине он отключается после использования кода ниже

.h

UPROPERTY() APlayerController* player;
UPROPERTY(EditAnywhere) AActor* cameraPlayerWakeUp;

// What else I've tried:
UPROPERTY(EditAnywhere) UCameraComponent* playerCameraComponent;
UPROPERTY(EditAnywhere) ACharacter* character;
FORCEINLINE ACharacter* GetCharacter() const { return character; }
UPROPERTY(EditAnywhere) APawn* playerPawn;

. cpp

void AAct_31::BeginPlay()
{
    Super::BeginPlay();
    player = UGameplayStatics::GetPlayerController(this, 0);
}

     void AAct_31::GameCicle()
     {
       player->SetViewTarget(cameraPlayerWakeUp);

       //.. animation of awakening

       // What I've tried to set up camera:
       player->SetViewTarget(player);
       player->SetViewTarget(playerCameraComponent);
       player->SetViewTarget(character);
       player->SetViewTarget(playerPawn);
     }

enter image description here

...