コード例 #1
0
        private void UpdateKeyChoice(ModSettingsBase modSettings, FieldInfo field, CustomKeybinding customKeybinding)
        {
            KeyCode keyCode = (KeyCode)field.GetValue(modSettings);

            customKeybinding.currentKeycodeSetting = keyCode;
            customKeybinding.keyRebindingButton.SetValueLabel(keyCode.ToString());
        }
コード例 #2
0
        private void AddKeySetting(ModSettingsBase modSettings, FieldInfo field, NameAttribute name, DescriptionAttribute description)
        {
            // Create menu item
            GameObject setting         = CreateSetting(name, description, ObjectPrefabs.KeyEntryPrefab, "Label");
            GameObject keyButtonObject = setting.transform.FindChild("Keybinding_Button").gameObject;

            CustomKeybinding customKeybinding = setting.AddComponent <CustomKeybinding>();

            customKeybinding.keyRebindingButton    = keyButtonObject.GetComponent <KeyRebindingButton>();
            customKeybinding.currentKeycodeSetting = (KeyCode)field.GetValue(modSettings);
            customKeybinding.RefreshLabelValue();

            UIButton uiButton = keyButtonObject.GetComponent <UIButton>();

            EventDelegate.Set(uiButton.onClick, new Action(customKeybinding.OnClick));
            customKeybinding.OnChange = new Action(() => UpdateKeyValue(modSettings, field, customKeybinding));
            modSettings.AddRefreshAction(() => UpdateKeyChoice(modSettings, field, customKeybinding));

            // Control visibility
            SetVisibilityListener(modSettings, field, setting, lastHeader);
        }
コード例 #3
0
 private void UpdateKeyValue(ModSettingsBase modSettings, FieldInfo field, CustomKeybinding customKeybinding)
 {
     SetSettingsField(modSettings, field, customKeybinding.currentKeycodeSetting);
 }