diff --git a/UI/RenderConfigUIManager.cs b/UI/RenderConfigUIManager.cs index e739ed5..5033547 100644 --- a/UI/RenderConfigUIManager.cs +++ b/UI/RenderConfigUIManager.cs @@ -178,17 +178,16 @@ namespace ADOFAIRenderer.UI // 4. 랜덤 시드 로우 var randomSeedRow = CreateRow(); var randomSeedLabel = CreateFormLabel("랜덤 시드 (입력 선택)"); - var randomSeedField = new IntegerField { name = "AdvancedRandomSeed", label = "", value = tempConfig.RandomSeed ?? 0 }; - - if (!tempConfig.RandomSeed.HasValue) + var randomSeedField = new TextField { name = "AdvancedRandomSeed", label = "", value = tempConfig.RandomSeed?.ToString() ?? string.Empty }; + + randomSeedField.RegisterValueChangedCallback(evt => { - var textProperty = typeof(IntegerField).GetProperty("text", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.FlattenHierarchy); - if (textProperty == null) + if (string.IsNullOrEmpty(evt.newValue)) return; + if (!int.TryParse(evt.newValue, out _) && evt.newValue != "-") { - textProperty = typeof(TextInputBaseField).GetProperty("text", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.FlattenHierarchy); + randomSeedField.SetValueWithoutNotify(evt.previousValue); } - textProperty?.SetValue(randomSeedField, string.Empty); - } + }); randomSeedRow.Add(randomSeedLabel); randomSeedRow.Add(randomSeedField); @@ -214,9 +213,9 @@ namespace ADOFAIRenderer.UI { tempConfig.ProcessAudio = processAudioToggle.value; tempConfig.NonTile = nonTileToggle.value; - if (!string.IsNullOrEmpty(randomSeedField.text)) + if (int.TryParse(randomSeedField.value?.Trim(), out var seed)) { - tempConfig.RandomSeed = randomSeedField.value; + tempConfig.RandomSeed = seed; } else {