[Fix] Closest Quaternion
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user