1

合計パーセンテージの残りの量を計算し、それをスライダーの上限として設定することで、パネルでこれを試みましたが、ロジックが間違っているか、パネルが壊れているため、不正確なようです。

現在、パネルは以下に示すようにスクリプト化されており、スライダーが到達できる最大値は 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 に設定することです。

これを達成するためのまともな方法を知っている人はいますか?

4

1 に答える 1