コード例 #1
0
        void SetBoolListeners()
        {
            for (int i = 0; i < bools.Count; i++)
            {
                int m_i    = i;
                var boolUI = bools[m_i];

                bools[i].input.onEndEdit.RemoveAllListeners();
                bools[i].toggle.onValueChanged.RemoveAllListeners();
                bools[i].removeButton.onClick.RemoveAllListeners();

                // On Input field
                bools[i].input.onEndEdit.AddListener((s) =>
                {
                    if (!LocalPrefs.HasKey <bool>(s))
                    {
                        boolUI.key = LocalPrefs.ChangeKey <bool>(boolUI.key, s);
                        bools[m_i] = boolUI;
                    }
                    else if (s != boolUI.key)
                    {
                        bools[m_i].input.text = boolUI.key;
                        Debug.Log("Boolean with key \"" + s + "\" is already presented in preferences.");
                    }
                    SetBoolListeners();
                });
                // On Toggle
                bools[i].toggle.onValueChanged.AddListener((b) =>
                {
                    LocalPrefs.Set(boolUI.key, b);
                    SetBoolListeners();
                });
                // On Remove button
                bools[i].removeButton.onClick.AddListener(() =>
                {
                    DestroyBool(boolUI);
                    SetBoolListeners();
                });
            }
        }