18,摄像机和弹簧臂改为c++
一、核心规则(旋转顺序重点)
蓝图面板显示顺序:Roll(X) → Pitch(Y) → Yaw(Z)
C++ FRotator 构造顺序:FRotator(Pitch, Yaw, Roll)
转换公式:
C++旋转值 = FRotator(蓝图中间值, 蓝图最右值, 蓝图最左值)
二、当前蓝图原始参数
弹簧臂 Rotation:Roll=-90,Pitch=-90,Yaw=0
非默认勾选项:
关闭碰撞检测 Do Collision Test = false
开启相机延迟 Enable Camera Lag = true
延迟速度 Camera Lag Speed = 2.0
相机非默认项:
投影模式:正交 Orthographic
正交宽度:2000
近 / 远裁剪面、其余选项均为引擎默认,无需代码设置

class USpringArmComponent;
//弹簧臂组件
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Camera", meta = (AllowPrivateAccess = "true"))
USpringArmComponent* SpringArm;
#include <GameFramework/SpringArmComponent.h>
//创建弹簧臂组件
SpringArm = CreateDefaultSubobject(TEXT(“SpringArm”));
if (SpringArm)
{
SpringArm->SetupAttachment(RootComponent);
double row = -90.0f;
double pitch = -90.0f;
double yaw = 0.0f;
SpringArm->SetRelativeRotation(FRotator(pitch,yaw,row));
SpringArm->bDoCollisionTest = false;
SpringArm->bEnableCameraLag = true;
SpringArm->CameraLagSpeed = 2.0f;
}
class UCameraComponent;
//相机组件
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = “Camera”, meta = (AllowPrivateAccess = “true”))
UCameraComponent* Camera;
#include <Camera/CameraComponent.h>
//相机组件
Camera = CreateDefaultSubobject<UCameraComponent>(TEXT("Camera"));
if (Camera && SpringArm)
{
Camera->SetupAttachment(SpringArm, USpringArmComponent::SocketName);
Camera->SetProjectionMode(ECameraProjectionMode::Orthographic);
Camera->SetOrthoWidth(2000.0f);
}
更多推荐
所有评论(0)