球(雪玉)であるポーン/アクターがあります。私が雪の上を転がると、成長します(私はそれをスケールし、質量を加えます)。球を拡大するとオーバーラップする衝突が発生する
問題:私は奇妙な振る舞いをしています。私のボールは転がりますが、時には「飛び跳ねる」(または飛び跳ねる)場合があります。
ボールが大きくなり地面と重なり、大きな衝突を引き起こしたようです。
は、私はそれがオフセット(Ball->SetAllPhysicsPosition(Ball->RelativeLocation + FVector(0, 0, newRadius-pastRadius);
との位置です変更しようとしましたが、私はまだ同じ問題を抱えている。大きなではなく)任意のサイズでオフセットハードコーディング。
と(それ「作品」あなたが持っているだろうこの動作を修正する方法についてのアイデア?
これは、私はボールが大きくなっ作るために使用するコードです。私はそれを周りに移動するためにトルクを加える。
void ASnowballBall::NotifyHit(...)
{
float resizeValue = 0.0f;
//If the snowball collides with snow, it grows
if (Other->GetName().StartsWith("Snow", ESearchCase::IgnoreCase) && Ball->BodyInstance.GetUnrealWorldVelocity().Size() > 50.0f)
{
// Max size based on mass
if (Ball->GetMass() < 10000.0f){
resizeValue = (20.0f/Ball->GetMass()));
resizeValue = FMath::Clamp(resizeValue, 0.0f, 0.003f);
Ball->SetRelativeScale3D(Ball->RelativeScale3D + resizeValue);
Ball->SetMassScale("None", Ball->BodyInstance.MassScale);
}
}