private void OnSave() { SettingsMessageData data = null; switch (actionsDropdown.value) { case 0: data = new SettingsMessageData(); break; case 1: data = ravenActionSettings.GetData(); break; case 2: data = spawnCreatureSettings.GetData(); break; case 3: data = hudMessageSettings.GetData(); break; case 4: data = randomEventSettings.GetData(); break; case 5: data = environmentSettings.GetData(); break; case 6: data = playerSettings.GetData(); break; default: throw new ArgumentOutOfRangeException(); } OnSettingsChanged?.Invoke(this, new SettingsChangedArgs { Data = data }); OnClose(); }