есть персонаж который болтается на крюке, и он может как ударить об стену так и об землю.
Расчитываю по принципу масса * скорость, он дает вроде бы хороший результат но в одну ось, будь то х, то у.
Если же брать скорость.Х + скорость.У * массу, то получается следующее. при столкновении в одну ось, работает все так же корректно, но если задействуется скорость 2 оси, то результат сразу становиться космическим
Попробуй использовать отражение вектора. https://docs.unity3d.com/ScriptReference/Vector2.Reflect.html Там нужен твой вектор и нормаль ко поверхности. Нормаль можно получить от соприкасновения с коллизией. У OnCollisionEnter приходит тебе Collision итам есть массив contacts и у них можно узнать нормаль. Можешь среднее подсчитывать или можешь первое значние. Там уже по ситуации. Пример есть в документации https://docs.unity3d.com/ScriptReference/Collider.OnCollisionEnter.html
Обсуждают сегодня