[Fix] Closest Quaternion

This commit is contained in:
2026-03-08 00:45:14 +07:00
parent 9236d66022
commit 8ddcfb5018
3 changed files with 43 additions and 11 deletions
+1 -9
View File
@@ -157,14 +157,12 @@ namespace YachtDice.Dice
// ── 4. Ждём пока кубик успокоится ───────────────────────────
var stillTimer = 0f;
var sqrThreshold = settleSpeed * settleSpeed;
var didTimeout = false;
var maxDuration = Mathf.Max(0.1f, maxRollDuration);
while (stillTimer < settleDelay)
{
if (Time.time - rollStartedAt >= maxDuration)
{
didTimeout = true;
break;
}
@@ -189,13 +187,7 @@ namespace YachtDice.Dice
// ── 6. Плавный доворот до ровного положения ─────────────────
Quaternion startRot = transform.rotation;
// Вычисляем целевой поворот через Dice.AlignToTopByLocalAngles
dice.AlignToTopByLocalAngles();
Quaternion targetRot = transform.rotation;
// Откатываемся обратно — будем интерполировать
transform.rotation = startRot;
Quaternion targetRot = dice.GetClosestTopAlignedWorldRotation(startRot);
var elapsed = 0f;
var snapTime = Mathf.Max(0.01f, snapDuration);