From c9498b086ed0aecff8250aad40b59a8477152acb Mon Sep 17 00:00:00 2001 From: min Date: Sat, 6 Jun 2026 09:49:01 +0300 Subject: [PATCH] =?UTF-8?q?fix(studio):=20SkyboxManager.hexToRgb=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=B4=D0=B4=D0=B5=D1=80=D0=B6=D0=B8=D0=B2=D0=B0=D0=B5?= =?UTF-8?q?=D1=82=20=D0=BA=D0=BE=D1=80=D0=BE=D1=82=D0=BA=D0=B8=D0=B9=20?= =?UTF-8?q?=D1=85=D0=B5=D0=BA=D1=81=20#fff=20(=D0=B1=D1=8B=D0=BB=20NaN=20?= =?UTF-8?q?=D0=B2=20=D0=BE=D0=B1=D0=BB=D0=B0=D0=BA=D0=B0=D1=85)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit skybox.clouds.color='#fff' → substring(4,6)='' → parseInt NaN → addColorStop 'rgba(255,15,NaN,0.9)' падал при load → прерывал загрузку проекта. hexToRgb теперь расширяет #fff→#ffffff и подстраховывает NaN. Co-Authored-By: Claude Opus 4.8 --- src/editor/engine/SkyboxManager.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/editor/engine/SkyboxManager.js b/src/editor/engine/SkyboxManager.js index d148cab..9c9e497 100644 --- a/src/editor/engine/SkyboxManager.js +++ b/src/editor/engine/SkyboxManager.js @@ -80,11 +80,17 @@ function registerSkyShader() { const hexToRgb = (hex) => { if (Array.isArray(hex)) return hex; - const h = String(hex || '#ffffff').replace('#', ''); + let h = String(hex || '#ffffff').replace('#', '').trim(); + // Короткая форма #fff → #ffffff. + if (h.length === 3) h = h[0] + h[0] + h[1] + h[1] + h[2] + h[2]; + if (h.length < 6) h = (h + 'ffffff').slice(0, 6); + const r = parseInt(h.substring(0, 2), 16); + const g = parseInt(h.substring(2, 4), 16); + const b = parseInt(h.substring(4, 6), 16); return [ - parseInt(h.substring(0, 2), 16) / 255, - parseInt(h.substring(2, 4), 16) / 255, - parseInt(h.substring(4, 6), 16) / 255, + (Number.isFinite(r) ? r : 255) / 255, + (Number.isFinite(g) ? g : 255) / 255, + (Number.isFinite(b) ? b : 255) / 255, ]; };