合計パーセンテージの残りの量を計算し、それをスライダーの上限として設定することで、パネルでこれを試みましたが、ロジックが間違っているか、パネルが壊れているため、不正確なようです。
現在、パネルは以下に示すようにスクリプト化されており、スライダーが到達できる最大値は 10 で、合計を示すラベルが付いているため、非常に非現実的です。
public static int ammoxBoxesPercent = EditorPrefs.GetInt("Ammo");
public static int medicKitsPercent = EditorPrefs.GetInt("MedicKits");
public static int amountOfItemsPerZone = EditorPrefs.GetInt("Amount");
public static int totalPercentageVal;
public static int maxTotalValue = 10;
[MenuItem("Enviroment Controls/ Object Spawners Control Panel")]
private static void showEditor()
{
EditorWindow.GetWindow<ObjectSpawnersControlPanel>(false, "OBJ Spawners CP");
}
void OnGUI()
{
ammoxBoxesPercent = EditorGUILayout.IntSlider("Ammox Box Percent", ammoxBoxesPercent, 1, 10);
EditorPrefs.SetInt("Ammo", ammoxBoxesPercent);
medicKitsPercent = EditorGUILayout.IntSlider("Medic Kit Percent", medicKitsPercent, 1, 10);
EditorPrefs.SetInt("MedicKits", medicKitsPercent);
amountOfItemsPerZone = EditorGUILayout.IntSlider("Amount of Items Spawned at Each Zone", amountOfItemsPerZone, 1, 5);
EditorPrefs.SetInt("Amount", amountOfItemsPerZone);
totalPercentageVal = medicKitsPercent + ammoxBoxesPercent;
EditorGUILayout.LabelField ("Total Percentage so far : " + totalPercentageVal.ToString() + "0");
EditorGUILayout.LabelField ("Total must not go above 100");
}
目標は、最初のスライダーを 6 に設定すると、パーセンテージ制限が 10 (私の場合は 100% を表す) であるため、2 番目のスライダーの制限を 4 に設定することです。
これを達成するためのまともな方法を知っている人はいますか?