Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/146.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 限制第一人称照相机';s俯仰旋转c++;ue4_C++_Unreal Engine4 - Fatal编程技术网

C++ 限制第一人称照相机';s俯仰旋转c++;ue4

C++ 限制第一人称照相机';s俯仰旋转c++;ue4,c++,unreal-engine4,C++,Unreal Engine4,所以,我试图限制相机在我的第一人称游戏中可以上下观看的范围,但到目前为止我还没能得到一个好的结果。我制定了一个非常基本的上下查找方法(我在c++中仍然是一个noob)。我应该在代码中添加什么 void AYT_Character::LookUpAtRate(float value) { AddControllerPitchInput(value * BaseLookUpAtRate* GetWorld()->GetDeltaSeconds()); } 任何帮助都会被理解,我希望在C

所以,我试图限制相机在我的第一人称游戏中可以上下观看的范围,但到目前为止我还没能得到一个好的结果。我制定了一个非常基本的上下查找方法(我在c++中仍然是一个noob)。我应该在代码中添加什么

void AYT_Character::LookUpAtRate(float value)
{
   AddControllerPitchInput(value * BaseLookUpAtRate* GetWorld()->GetDeltaSeconds());
}

任何帮助都会被理解,我希望在C++中这样做,尽量避免蓝图。

< P>从字符类中,可以将它设置在开始()中,而不是构造函数:

APlayerController* PlayerController = Cast<APlayerController>(Controller);
if (PlayerController)
{
    if (PlayerController->PlayerCameraManager)
    {
        PlayerController->PlayerCameraManager->ViewPitchMin = 45.0; // Use whatever values you want
        PlayerController->PlayerCameraManager->ViewPitchMax = 100.0;
    }
}
APlayerController*PlayerController=Cast(控制器);
if(播放控制器)
{
如果(PlayerController->PlayerCameraManager)
{
PlayerController->PlayerCameraManager->ViewPitchMin=45.0;//使用您想要的任何值
PlayerController->PlayerCameraManager->ViewPitchMax=100.0;
}
}

我删除了CastToPlayerController answer,因为它已不推荐使用。

从字符类中,您可以在BeginPlay()而不是构造函数中设置它:

APlayerController* PlayerController = Cast<APlayerController>(Controller);
if (PlayerController)
{
    if (PlayerController->PlayerCameraManager)
    {
        PlayerController->PlayerCameraManager->ViewPitchMin = 45.0; // Use whatever values you want
        PlayerController->PlayerCameraManager->ViewPitchMax = 100.0;
    }
}
APlayerController*PlayerController=Cast(控制器);
if(播放控制器)
{
如果(PlayerController->PlayerCameraManager)
{
PlayerController->PlayerCameraManager->ViewPitchMin=45.0;//使用您想要的任何值
PlayerController->PlayerCameraManager->ViewPitchMax=100.0;
}
}

我删除了CastToPlayerController answer,因为它已经不受欢迎了。

你试过使用夹子吗?我试过了,我不确定我是否用对了方法,但它导致相机不断地自行上下移动。我在方法内部创建了一个float变量,并编写了var=FMath::clamp(value,min,max),然后我将var而不是传递到方法中的值放入该变量。您可以显示相关代码吗?您尝试过使用clamp吗?我尝试过,我不确定是否正确,但它导致相机不断地自行上下移动。我在方法中创建了一个float变量,并编写了var=FMath::clamp(value,min,max),然后我将var而不是传递到方法中的值放入方法中。您可以显示相关代码吗?我应该在ACharacter类中编写此代码吗?另外,我在网上的某个地方看到过PlayerCameraManager,但现在我刚用默认的空设置制作了自己的新相机。但是播放器相机管理器如何连接到我的默认相机?对不起,我在这里迷路了。我已经在我的自定义角色类构造函数中写过:PlayerCameraMan=CreateDefaultSubobject(TEXT(“PlayerCameraMan”);PlayerCameraMan->ViewPitchMax;PlayerCameraMan->ViewPitchMin;这将如何连接到我已经设置的默认相机组件?这是在没有播放器相机管理器的情况下设置相机的方式:SpringArmComp=CreateDefaultSubobject(TEXT(“SpringArmComp”);SpringArmComp->AttachToComponent(GetMesh(),FAttachmentTransformRules::SnapToTarget不包括缩放,“头”);CameraComp=CreateDefaultSubobject设置附件(SpringArmComp);更新以显示正确的代码,因为CastToPlayerController已不推荐使用。我应该在ACharacter类中编写此代码吗?另外,我在网上的某个地方看到过PlayerCameraManager,但现在我刚用默认的空设置制作了自己的新相机。但是播放器相机管理器如何连接到我的默认相机?对不起,我在这里迷路了。我已经在我的自定义角色类构造函数中写过:PlayerCameraMan=CreateDefaultSubobject(TEXT(“PlayerCameraMan”);PlayerCameraMan->ViewPitchMax;PlayerCameraMan->ViewPitchMin;这将如何连接到我已经设置的默认相机组件?这是在没有播放器相机管理器的情况下设置相机的方式:SpringArmComp=CreateDefaultSubobject(TEXT(“SpringArmComp”);SpringArmComp->AttachToComponent(GetMesh(),FAttachmentTransformRules::SnapToTarget不包括缩放,“头”);CameraComp=CreateDefaultSubobject设置附件(SpringArmComp);更新以显示正确的代码,因为CastToPlayerController已不推荐使用。