From c16fe25e7df5b5e984c08d9867a6e5139f8072c34e74de7ebce5d300922c2f4d Mon Sep 17 00:00:00 2001 From: copecone Date: Fri, 22 May 2026 21:44:16 +0900 Subject: [PATCH] Add Verification to Render Settings Values --- UI/RenderButton.cs | 37 ++++++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/UI/RenderButton.cs b/UI/RenderButton.cs index 0efe7bb..39cf451 100644 --- a/UI/RenderButton.cs +++ b/UI/RenderButton.cs @@ -39,13 +39,34 @@ namespace ADOFAIRenderer.UI { if (IsAnyFieldEmpty()) return; if (RenderMod.IsRendering) return; - Melon.Logger.Msg($"레벨 로드: {RenderManager.LevelPath}"); - double.TryParse(targetFPSInput.text, out var targetFPS); - double.TryParse(videoFPSInput.text, out var videoFPS); - int.TryParse(renderWidthInput.text, out var renderWidth); - int.TryParse(renderHeightInput.text, out var renderHeight); - int.TryParse(bitrateInput.text, out var bitrate); + if (!double.TryParse(targetFPSInput.text, out var targetFPS) || targetFPS <= 0) + { + Melon.Logger.Error("올바르지 않은 Target FPS 값입니다. 0보다 큰 숫자여야 합니다."); + return; + } + if (!double.TryParse(videoFPSInput.text, out var videoFPS) || videoFPS <= 0) + { + Melon.Logger.Error("올바르지 않은 Video FPS 값입니다. 0보다 큰 숫자여야 합니다."); + return; + } + if (!int.TryParse(renderWidthInput.text, out var renderWidth) || renderWidth <= 0 || renderWidth > SystemInfo.maxTextureSize) + { + Melon.Logger.Error($"올바르지 않은 Render Width 값입니다. 1에서 {SystemInfo.maxTextureSize} 사이의 정수여야 합니다."); + return; + } + if (!int.TryParse(renderHeightInput.text, out var renderHeight) || renderHeight <= 0 || renderHeight > SystemInfo.maxTextureSize) + { + Melon.Logger.Error($"올바르지 않은 Render Height 값입니다. 1에서 {SystemInfo.maxTextureSize} 사이의 정수여야 합니다."); + return; + } + if (!int.TryParse(bitrateInput.text, out var bitrate) || bitrate <= 0) + { + Melon.Logger.Error("올바르지 않은 Bitrate 값입니다. 0보다 큰 정수여야 합니다."); + return; + } + + Melon.Logger.Msg($"레벨 로드: {RenderManager.LevelPath}"); var selectedCodecIndex = codecDropdown.value; var selectedCodecName = codecDropdown.options[selectedCodecIndex].text; @@ -75,9 +96,7 @@ namespace ADOFAIRenderer.UI // 드롭다운은 기본적으로 항상 무언가 선택되어 있지만(0번 항목 등), // 만약 '선택 안함(-1)' 같은 예외 처리가 필요하다면 아래처럼 검사할 수 있습니다. - if (codecDropdown.value < 0) return true; - - return false; + return codecDropdown.value < 0; } } } \ No newline at end of file