ここでは、トリガーボリュームがドアを開くようにするために、次のコードを書きました(Changes Actor Yaw)。選択されたActor(ActorThatOpens)が入った場合Unreal Editorを再生するとinstatntlyクラッシュします。誰も助けることができますか?私は、私が達成しようとしていたことを十分にはっきりと願っています。オーバーレイをチェックすると、オーバーラップをチェックするとクラッシュする
追加この.Hのコード:
private:
UPROPERTY(VisibleAnywhere)
float OpenAngle = 90.0f;
UPROPERTY(EditAnywhere)
ATriggerVolume* PressurePlate;
UPROPERTY(EditAnywhere)
AActor* ActorThatOpens; //Pawn inherits from actor
この.cppファイルに:私はTriggerVolumeに圧力プレートを設定し、コンポーネントとしてこれを追加でした
void UOpenDoor::OpenDoor()
{
AActor* Owner = GetOwner();
FRotator NewRotation = FRotator(0.0f, -160.0f, 0.0f);
Owner->SetActorRotation(NewRotation);
}
// Called every frame
(line 42) void UOpenDoor::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction)
{
Super::TickComponent(DeltaTime, TickType, ThisTickFunction);
// ...
if (PressurePlate->IsOverlappingActor(ActorThatOpens))
{
OpenDoor();
}
}
俳優(ドア)に。 私はこのエラー(UE編集クラッシュ)を取得:
Fatal error!
Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x00000340
UE4Editor-Engine.dll!0x00000000AB8790A1
UE4Editor-BuildingGame-9929.dll!UOpenDoor::TickComponent() [d:\users\lf\documents\repos\unrealcourse\buildinggame\source\buildinggame\opendoor.cpp:42]
UE4Editor-Engine.dll!0x00000000ABC2C05F
UE4Editor-Engine.dll!0x00000000ABC51A15
UE4Editor-Engine.dll!0x00000000AC7DD9DD
UE4Editor-Engine.dll!0x00000000AC7E385D
UE4Editor-Core.dll!0x00000000C09ED84D
UE4Editor-Core.dll!0x00000000C09EDC6D
UE4Editor-Core.dll!0x00000000C0A0CCEB
UE4Editor-Engine.dll!0x00000000AC808861
UE4Editor-Engine.dll!0x00000000AC819532
UE4Editor-Engine.dll!0x00000000AC147B64
UE4Editor-Engine.dll!0x00000000AC1501AD
UE4Editor-Engine.dll!0x00000000ABF05B17
UE4Editor.exe!0x000000007A96DEE3
UE4Editor.exe!0x000000007A95EB40
UE4Editor.exe!0x000000007A95EBBA
UE4Editor.exe!0x000000007A970A29
UE4Editor.exe!0x000000007A9722B6
KERNEL32.DLL!0x00000000E8692774
ntdll.dll!0x00000000E8F90D61
ntdll.dll!0x00000000E8F90D61
(このチュートリアル続か:https://www.udemy.com/unrealcourse/learn/v4/t/lecture/4621210?start=15)
また、ゲームオブジェクトが破壊されることが予想される場合は、IsValidLowLevel()チェックを実行する必要があります。 –