相机抖动未激活虚幻C++
Camera Shake Not Activating Unreal C++
我正在尝试在虚幻C++中为我的角色设置摄像机抖动。
目前,我在标头类中声明实例变量。
使用日志输出,代码到达 OnFire(( 函数中的正确位置,这意味着没有指针为空。 但是相机抖动不起作用。
UPROPERTY(EditAnywhere)
UCameraShake* CShake;
这就是我怎么称呼它
void AZombieCharacter::BeginPlay(){
SetUpCameraShake();
}
...
void AZombieCharacter::OnFire() {
...
auto CTRLR = UGameplayStatics::GetPlayerController(GetWorld(), 0);
if (CTRLR) {
auto CM = CTRLR->PlayerCameraManager;
if (CM) {
CM->PlayCameraShake(CShake->GetClass(), 1.0f);
}
else {
UE_LOG(LogTemp, Warning, TEXT("CANNOT FIND CM"));
}
}
else {
UE_LOG(LogTemp, Warning, TEXT("CANNOT FIND CTRLR"));
}
}
...
void AZombieCharacter::SetUpCameraShake() {
CShake = UCameraShake::StaticClass()->GetDefaultObject<UCameraShake>();
CShake->OscillationDuration = 4.f;
CShake->OscillationBlendInTime = 0.5f;
CShake->OscillationBlendOutTime = 0.5f;
CShake->RotOscillation.Pitch.Amplitude = FMath::RandRange(5.0f, 10.0f);
CShake->RotOscillation.Pitch.Frequency = FMath::RandRange(25.0f, 35.0f);
CShake->RotOscillation.Yaw.Amplitude = FMath::RandRange(5.0f, 10.0f);
CShake->RotOscillation.Yaw.Frequency = FMath::RandRange(25.0f, 35.0f);
}
谢谢。
播放相机抖动 接受UClass
/TSubClassOf<UCameraShake>
知道这会期望我们认为这个函数最终会构造一个新对象并忽略默认对象选项。
我建议对UCameraShake
类进行子类化,并使用TSubClassOf
来存储类类型,而不是像CShake
那样存储指针。因为它可能是垃圾收集,而你不知道谁知道?
这是关于UCameraShake的C++教程。https://unrealcpp.com/camera-shake/
您的摇杆没有播放的原因可能是没有将实际参数传递给摇杆。只有默认值 尽管您尝试设置默认值,但它似乎没有考虑到新创建的对象。
相关文章:
- 如何在日食中激活自动建议?
- QT5 信号不会激活插槽内的功能
- 堆栈上的最大激活记录数
- 使用 [#define & #ifdef] 跨文件激活代码块
- CNN的tanh()激活函数的实现
- C++(SFML?激活某些内容x秒钟,而不会冻结整个程序
- 激活上下文生成失败,依赖程序集,并行,事件 ID 33
- 当电子的窗口隐藏时如何激活另一个应用程序窗口
- 相机抖动未激活虚幻C++
- C++挂起线程,然后通过其他线程重新激活
- 激活填充和盐
- Visual Studio Code - 在调试之前激活环境
- 如果我在 Xbox UWP 应用程序上收到激活错误并且错误消息中没有任何有用的内容,该怎么办
- 需要知道 Windows API 才能在我的应用程序激活时获取回调
- 内存模型:激活记录
- 在哪里放置pthread Mutex和con var,以确保激活所有功能
- 检查Windows激活状态返回错误的值
- 如何激活视觉工作室中聚集体的RVO
- IMMDevice::激活缺少接口的返回代码
- 激活和部署“ QvIrtualKeyboard”(在Windows中)