Open monguri opened 1 year ago
SurfaceCollisionレベルで再現させやすいのですが、DebugDraw系の関数でクラッシュします。 これは、DrawDebugHelpers.cpp/hのDebugDraw系の関数がスレッドセーフに作られてないためです。
FFunctionGraphTask::CreateAndDispatchWhenReady( [=]() { ::DrawDebugPoint(World, PositionWS, Size, Color, false, 0.0f, ESceneDepthPriorityGroup::SDPG_Foreground); }, TStatId(), nullptr, ENamedThreads::GameThread
のようにしてゲームスレッドで実行するようにすればクラッシュしなくなります。
あるいは、AnimationBlueprintEditorのビューポートでのみデバッグ表示できればいいのなら、 AnimDynamicsノードなどのUEのノードでよくやられているように FAnimInstanceProxyのAnimDrawDebugXxx()関数を使うことができます。
SurfaceCollisionレベルで再現させやすいのですが、DebugDraw系の関数でクラッシュします。 これは、DrawDebugHelpers.cpp/hのDebugDraw系の関数がスレッドセーフに作られてないためです。
のようにしてゲームスレッドで実行するようにすればクラッシュしなくなります。
あるいは、AnimationBlueprintEditorのビューポートでのみデバッグ表示できればいいのなら、 AnimDynamicsノードなどのUEのノードでよくやられているように FAnimInstanceProxyのAnimDrawDebugXxx()関数を使うことができます。