В моей игре я порождаю случайные объекты в случайное время из заданного диапазона. Я хотел, чтобы у разработчика были ползунки, использующие диапазоны, чтобы он не допустил логических ошибок (минимальное значение для числа с плавающей запятой maxValue
- это число с плавающей запятой minValue
, а максимальное значение для числа с плавающей запятой minValue
- это число с плавающей запятой maxValue
(оба из которых публикуются c в исходных скриптах GameManager). Подвох в том, что оба значения зависят друг от друга (но они все еще инициализируются: minValue = 0f; maxValue = 1f
. Но это просто ломает ползунки (они застряли на своих позициях).
using UnityEditor;
using UnityEngine;
[CustomEditor(typeof(GameManager))]
public class GameManagerEditor : Editor
{
SerializedProperty minSpawnRate;
SerializedProperty maxSpawnRate;
private void OnEnable()
{
minSpawnRate = serializedObject.FindProperty("minSpawnRate");
maxSpawnRate = serializedObject.FindProperty("maxSpawnRate");
}
public override void OnInspectorGUI()
{
serializedObject.UpdateIfRequiredOrScript();
EditorGUILayout.Slider("Min Spawn Rate", minSpawnRate.floatValue, 0f, maxSpawnRate.floatValue);
EditorGUILayout.Slider("Max Spawn Rate", maxSpawnRate.floatValue, minSpawnRate.floatValue, float.MaxValue);
serializedObject.ApplyModifiedProperties();
}
}
Но я закончил с ползунки, которые застряли и не будут двигаться. Если я попытаюсь изменить значение, введя его, он сразу же возвращается к старому значению (как показано на рисунке ниже):
Может кто-нибудь объяснить причину этой ошибки и как я могу ее исправить?
Редактировать: ( ВАЖНО ) Я вставил фиктивные значения для ползунков, опробовал ползунок int и все но кажется, что ползунки остаются сломанными. Я следовал инструкциям здесь и чувствую, что что-то может устареть.