ConfigManager.cs 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Text.RegularExpressions;
  5. using UnityEngine;
  6. public class ConfigManager : MonoBehaviour
  7. {
  8. public UIPopupList subtitleTypePopupList
  9. {
  10. get
  11. {
  12. return this.subtitleType;
  13. }
  14. }
  15. public void Init(ConfigCblManager cblConfigMgr)
  16. {
  17. this.cblConfigMgr = cblConfigMgr;
  18. ConfigManager.CategoryButton[] array = this.categoryTabButtons;
  19. for (int i = 0; i < array.Length; i++)
  20. {
  21. ConfigManager.CategoryButton categoryData = array[i];
  22. if (categoryData.type == ConfigManager.CategoryButton.Type.System)
  23. {
  24. this.OnClickCategoryTabButton(categoryData);
  25. }
  26. EventDelegate.Add(categoryData.tab.onClick, delegate()
  27. {
  28. this.OnClickCategoryTabButton(categoryData);
  29. });
  30. if (categoryData.type == ConfigManager.CategoryButton.Type.ChuBLip)
  31. {
  32. categoryData.tab.gameObject.SetActive(false);
  33. }
  34. }
  35. KeyValuePair<UIGrid, GameObject> rootItem = this.GetRootItem<UIGrid>(this.deviceSelect.gameObject);
  36. UIGrid key = rootItem.Key;
  37. GameObject value = rootItem.Value;
  38. if (value != null)
  39. {
  40. value.gameObject.SetActive(false);
  41. }
  42. if (key != null)
  43. {
  44. key.repositionNow = true;
  45. }
  46. this.systemFrame.height -= 72;
  47. EventDelegate.Add(this.closeButton.onClick, new EventDelegate.Callback(BaseMgr<ConfigMgr>.Instance.CloseConfigPanel));
  48. EventDelegate.Add(this.vrConfigButton.onClick, delegate()
  49. {
  50. BaseMgr<ConfigMgr>.Instance.CloseConfigPanel();
  51. ConfigVRCtrl.Open(null);
  52. });
  53. Action<ConfigSelectButton> action = delegate(ConfigSelectButton button)
  54. {
  55. button.Initialize();
  56. this.selectButtons.Add(button);
  57. };
  58. Action<ConfigIntegerSlider> intSliderInit = delegate(ConfigIntegerSlider slider)
  59. {
  60. slider.Initialize();
  61. this.intSliders.Add(slider);
  62. };
  63. Action<ConfigIntegerSlider, AudioSourceMgr.Type> action2 = delegate(ConfigIntegerSlider slider, AudioSourceMgr.Type type)
  64. {
  65. intSliderInit(slider);
  66. slider.onGetValue = (() => GameMain.Instance.SoundMgr.GetVolume(type));
  67. slider.onSetValue = delegate(int setValue)
  68. {
  69. GameMain.Instance.SoundMgr.SetVolume(type, setValue);
  70. GameMain.Instance.SoundMgr.Apply();
  71. };
  72. };
  73. Action<WFCheckBox, AudioSourceMgr.Type> action3 = delegate(WFCheckBox checkBox, AudioSourceMgr.Type type)
  74. {
  75. checkBox.onClick.Add(delegate(WFCheckBox clickCheckBox)
  76. {
  77. GameMain.Instance.SoundMgr.SetThreeD(type, clickCheckBox.check);
  78. GameMain.Instance.SoundMgr.Apply();
  79. });
  80. };
  81. action(this.systemButtonVisible);
  82. this.systemButtonVisible.onGetValue = (() => GameMain.Instance.CMSystem.SysButtonShowAlways);
  83. this.systemButtonVisible.onSetValue = delegate(bool setValue)
  84. {
  85. GameMain.Instance.CMSystem.SysButtonShowAlways = setValue;
  86. };
  87. action(this.screenMode);
  88. this.screenMode.onGetValue = (() => GameMain.Instance.CMSystem.FullScreen);
  89. this.screenMode.onSetValue = delegate(bool setValue)
  90. {
  91. GameMain.Instance.CMSystem.FullScreen = setValue;
  92. GameMain.Instance.CMSystem.ConfigScreenApply();
  93. };
  94. action(this.drawFPS);
  95. this.drawFPS.onGetValue = (() => GameMain.Instance.CMSystem.ViewFps);
  96. this.drawFPS.onSetValue = delegate(bool setValue)
  97. {
  98. GameMain.Instance.CMSystem.ViewFps = setValue;
  99. GameMain.Instance.CMSystem.ConfigScreenApply();
  100. };
  101. action(this.sequentialVoice);
  102. this.sequentialVoice.onGetValue = (() => GameMain.Instance.CMSystem.MsgVoiceNoStop);
  103. this.sequentialVoice.onSetValue = delegate(bool setValue)
  104. {
  105. GameMain.Instance.CMSystem.MsgVoiceNoStop = setValue;
  106. };
  107. action(this.ejaculationSe);
  108. this.ejaculationSe.onGetValue = (() => GameMain.Instance.CMSystem.EjaculationSeEnabled);
  109. this.ejaculationSe.onSetValue = delegate(bool setValue)
  110. {
  111. GameMain.Instance.CMSystem.EjaculationSeEnabled = this.enabled;
  112. };
  113. foreach (Size<int> size in this.MakeResolutionPopupList())
  114. {
  115. this.screenResolution.items.Add(string.Format("{0}x{1}", size.width, size.height));
  116. }
  117. EventDelegate.Add(this.screenResolution.onChange, delegate()
  118. {
  119. string currentPopupListValue = this.GetCurrentPopupListValue();
  120. Size<int> screenSize = this.ResolutionTextToSize(currentPopupListValue);
  121. GameMain.Instance.CMSystem.SetScreenSize(screenSize);
  122. GameMain.Instance.CMSystem.ConfigScreenApply();
  123. });
  124. this.CreateEnumPopupList<CMSystem.SSSuperSizeType>(this.captureMagnification, delegate(CMSystem.SSSuperSizeType setValue)
  125. {
  126. GameMain.Instance.CMSystem.ScreenShotSuperSize = setValue;
  127. GameMain.Instance.CMSystem.ConfigScreenApply();
  128. });
  129. this.CreateEnumPopupList<CMSystem.AntiAliasType>(this.antiAlias, delegate(CMSystem.AntiAliasType setValue)
  130. {
  131. GameMain.Instance.CMSystem.Antialias = setValue;
  132. GameMain.Instance.CMSystem.ConfigScreenApply();
  133. });
  134. this.CreateEnumPopupList<CMSystem.ShadowQualityType>(this.shadowQuality, delegate(CMSystem.ShadowQualityType setValue)
  135. {
  136. GameMain.Instance.CMSystem.ShadowQuality = setValue;
  137. GameMain.Instance.CMSystem.ConfigScreenApply();
  138. });
  139. this.CreateEnumPopupList<CMSystem.TextureQualityType>(this.textureQuality, delegate(CMSystem.TextureQualityType setValue)
  140. {
  141. GameMain.Instance.CMSystem.TextureQuality = setValue;
  142. GameMain.Instance.CMSystem.ConfigScreenApply();
  143. });
  144. if (this.subtitleType != null)
  145. {
  146. if (GameUty.supportMultiLanguage)
  147. {
  148. IEnumerator enumerator2 = Enum.GetValues(typeof(SubtitleDisplayManager.DisplayType)).GetEnumerator();
  149. try
  150. {
  151. while (enumerator2.MoveNext())
  152. {
  153. object obj = enumerator2.Current;
  154. this.subtitleType.AddItem(SubtitleDisplayManager.EnumConvert.GetTerm((SubtitleDisplayManager.DisplayType)obj));
  155. }
  156. }
  157. finally
  158. {
  159. IDisposable disposable;
  160. if ((disposable = (enumerator2 as IDisposable)) != null)
  161. {
  162. disposable.Dispose();
  163. }
  164. }
  165. EventDelegate.Add(this.subtitleType.onChange, delegate()
  166. {
  167. string currentPopupListValue = this.GetCurrentPopupListValue();
  168. IEnumerator enumerator3 = Enum.GetValues(typeof(SubtitleDisplayManager.DisplayType)).GetEnumerator();
  169. try
  170. {
  171. while (enumerator3.MoveNext())
  172. {
  173. object obj2 = enumerator3.Current;
  174. string term = SubtitleDisplayManager.EnumConvert.GetTerm((SubtitleDisplayManager.DisplayType)obj2);
  175. if (currentPopupListValue == term)
  176. {
  177. GameMain.Instance.CMSystem.SubtitleType = (SubtitleDisplayManager.DisplayType)obj2;
  178. break;
  179. }
  180. }
  181. }
  182. finally
  183. {
  184. IDisposable disposable2;
  185. if ((disposable2 = (enumerator3 as IDisposable)) != null)
  186. {
  187. disposable2.Dispose();
  188. }
  189. }
  190. });
  191. }
  192. else
  193. {
  194. Transform transform = this.subtitleType.transform;
  195. while (transform.parent == null || transform.parent.GetComponent<UIGrid>() == null)
  196. {
  197. transform = transform.parent;
  198. }
  199. if (transform != null)
  200. {
  201. transform.gameObject.SetActive(false);
  202. }
  203. }
  204. }
  205. intSliderInit(this.manAlpha);
  206. this.manAlpha.onGetValue = (() => GameMain.Instance.CMSystem.ManAlpha);
  207. this.manAlpha.onSetValue = delegate(int setValue)
  208. {
  209. GameMain.Instance.CMSystem.ManAlpha = setValue;
  210. GameMain.Instance.CMSystem.ConfigScreenApply();
  211. };
  212. intSliderInit(this.bloom);
  213. this.bloom.onGetValue = (() => GameMain.Instance.CMSystem.BloomValue);
  214. this.bloom.onSetValue = delegate(int setValue)
  215. {
  216. GameMain.Instance.CMSystem.BloomValue = setValue;
  217. };
  218. intSliderInit(this.messageAlpha);
  219. this.messageAlpha.onGetValue = (() => GameMain.Instance.CMSystem.MsgWndAlpha);
  220. this.messageAlpha.onSetValue = delegate(int setValue)
  221. {
  222. GameMain.Instance.CMSystem.MsgWndAlpha = setValue;
  223. };
  224. intSliderInit(this.textSpeed);
  225. this.textSpeed.onGetValue = (() => GameMain.Instance.CMSystem.MsgTextSpeed);
  226. this.textSpeed.onSetValue = delegate(int setValue)
  227. {
  228. GameMain.Instance.CMSystem.MsgTextSpeed = setValue;
  229. };
  230. intSliderInit(this.textAutoSpeed);
  231. this.textAutoSpeed.onGetValue = (() => GameMain.Instance.CMSystem.MsgAutoSpeed);
  232. this.textAutoSpeed.onSetValue = delegate(int setValue)
  233. {
  234. GameMain.Instance.CMSystem.MsgAutoSpeed = setValue;
  235. };
  236. intSliderInit(this.volumeMaster);
  237. this.volumeMaster.onGetValue = (() => GameMain.Instance.SoundMgr.GetVolumeAll());
  238. this.volumeMaster.onSetValue = delegate(int setValue)
  239. {
  240. GameMain.Instance.SoundMgr.SetVolumeAll(setValue);
  241. GameMain.Instance.SoundMgr.Apply();
  242. };
  243. action2(this.volumeSystem, AudioSourceMgr.Type.System);
  244. action2(this.volumeBGM, AudioSourceMgr.Type.Bgm);
  245. intSliderInit(this.volumeDance);
  246. this.volumeDance.onGetValue = (() => GameMain.Instance.SoundMgr.GetVolumeDance());
  247. this.volumeDance.onSetValue = delegate(int setValue)
  248. {
  249. GameMain.Instance.SoundMgr.SetVolumeDance(setValue);
  250. GameMain.Instance.SoundMgr.Apply();
  251. };
  252. action2(this.volumeVoiceMaster, AudioSourceMgr.Type.Voice);
  253. action2(this.volumeVoiceHeroine, AudioSourceMgr.Type.VoiceHeroine);
  254. action3(this.threeDEffectVoiceHeroine, AudioSourceMgr.Type.VoiceHeroine);
  255. action2(this.volumeSubVoice, AudioSourceMgr.Type.VoiceSub);
  256. action3(this.threeDEffectSubVoice, AudioSourceMgr.Type.VoiceSub);
  257. action2(this.volumeExtraVoice, AudioSourceMgr.Type.VoiceExtra);
  258. action3(this.threeDEffectExtraVoice, AudioSourceMgr.Type.VoiceExtra);
  259. action2(this.volumeMobVoice, AudioSourceMgr.Type.VoiceMob);
  260. action3(this.threeDEffectMobVoice, AudioSourceMgr.Type.VoiceMob);
  261. action2(this.volumeSE, AudioSourceMgr.Type.Se);
  262. action3(this.threeDEffectSE, AudioSourceMgr.Type.Se);
  263. action2(this.volumeEnv, AudioSourceMgr.Type.Env);
  264. action3(this.threeDEffectEnv, AudioSourceMgr.Type.Env);
  265. }
  266. public void LoadConfig()
  267. {
  268. foreach (ConfigSelectButton configSelectButton in this.selectButtons)
  269. {
  270. configSelectButton.UpdateButton();
  271. }
  272. foreach (ConfigIntegerSlider configIntegerSlider in this.intSliders)
  273. {
  274. configIntegerSlider.UpdateSlider();
  275. }
  276. SoundMgr soundMgr = GameMain.Instance.SoundMgr;
  277. this.threeDEffectVoiceHeroine.check = soundMgr.GetThreeD(AudioSourceMgr.Type.VoiceHeroine);
  278. this.threeDEffectSubVoice.check = soundMgr.GetThreeD(AudioSourceMgr.Type.VoiceSub);
  279. this.threeDEffectExtraVoice.check = soundMgr.GetThreeD(AudioSourceMgr.Type.VoiceExtra);
  280. this.threeDEffectMobVoice.check = soundMgr.GetThreeD(AudioSourceMgr.Type.VoiceMob);
  281. this.threeDEffectSE.check = soundMgr.GetThreeD(AudioSourceMgr.Type.Se);
  282. this.threeDEffectEnv.check = soundMgr.GetThreeD(AudioSourceMgr.Type.Env);
  283. Size<int> screenSizeNow = GameMain.Instance.CMSystem.GetScreenSizeNow();
  284. this.screenResolution.value = string.Format("{0}x{1}", screenSizeNow.width, screenSizeNow.height);
  285. this.captureMagnification.value = GameMain.Instance.CMSystem.ScreenShotSuperSize.ToString();
  286. this.antiAlias.value = GameMain.Instance.CMSystem.Antialias.ToString();
  287. this.shadowQuality.value = GameMain.Instance.CMSystem.ShadowQuality.ToString();
  288. this.textureQuality.value = GameMain.Instance.CMSystem.TextureQuality.ToString();
  289. }
  290. public void SetCloseButtonActive(bool active)
  291. {
  292. this.closeButton.gameObject.SetActive(active);
  293. }
  294. private void OnClickCategoryTabButton(ConfigManager.CategoryButton data)
  295. {
  296. ConfigManager.CategoryButton.Type type = data.type;
  297. if (type != ConfigManager.CategoryButton.Type.System)
  298. {
  299. if (type != ConfigManager.CategoryButton.Type.Sound)
  300. {
  301. if (type == ConfigManager.CategoryButton.Type.ChuBLip)
  302. {
  303. UIRect uirect = this.systemWidget;
  304. float alpha = 0f;
  305. this.soundWidget.alpha = alpha;
  306. uirect.alpha = alpha;
  307. this.cblConfigMgr.visible = true;
  308. }
  309. }
  310. else
  311. {
  312. this.systemWidget.alpha = 0f;
  313. this.soundWidget.alpha = 1f;
  314. this.cblConfigMgr.visible = false;
  315. }
  316. }
  317. else
  318. {
  319. this.systemWidget.alpha = 1f;
  320. this.soundWidget.alpha = 0f;
  321. this.cblConfigMgr.visible = false;
  322. }
  323. foreach (ConfigManager.CategoryButton categoryButton in this.categoryTabButtons)
  324. {
  325. categoryButton.tab.SetSelect(categoryButton.type == data.type);
  326. }
  327. }
  328. private void CreateEnumPopupList<enumT>(UIPopupList addPopupList, Action<enumT> applyAction)
  329. {
  330. IEnumerator enumerator = Enum.GetValues(typeof(enumT)).GetEnumerator();
  331. try
  332. {
  333. while (enumerator.MoveNext())
  334. {
  335. object obj = enumerator.Current;
  336. if (obj.ToString() != "MAX")
  337. {
  338. addPopupList.items.Add(obj.ToString());
  339. }
  340. }
  341. }
  342. finally
  343. {
  344. IDisposable disposable;
  345. if ((disposable = (enumerator as IDisposable)) != null)
  346. {
  347. disposable.Dispose();
  348. }
  349. }
  350. EventDelegate.Add(addPopupList.onChange, delegate()
  351. {
  352. string currentPopupListValue = this.GetCurrentPopupListValue();
  353. if (this.IsValidatePopupValue<enumT>(currentPopupListValue))
  354. {
  355. enumT obj2 = (enumT)((object)Enum.Parse(typeof(enumT), currentPopupListValue));
  356. applyAction(obj2);
  357. }
  358. });
  359. }
  360. private string GetCurrentPopupListValue()
  361. {
  362. return Regex.Replace(UIPopupList.current.value, "[\\r\\n]+$", string.Empty);
  363. }
  364. private List<Size<int>> MakeResolutionPopupList()
  365. {
  366. List<Size<int>> screenSizeList = GameMain.Instance.CMSystem.GetScreenSizeList();
  367. Size<int> screenSizeNow = GameMain.Instance.CMSystem.GetScreenSizeNow();
  368. if (!screenSizeList.Contains(screenSizeNow))
  369. {
  370. screenSizeList.Add(screenSizeNow);
  371. }
  372. return screenSizeList;
  373. }
  374. private Size<int> ResolutionTextToSize(string value)
  375. {
  376. Size<int> result = default(Size<int>);
  377. int num = value.IndexOf("x");
  378. if (num < 0)
  379. {
  380. Debug.LogError(string.Format("不適切な解像度が設定されています。設定された解像度={0}", value));
  381. }
  382. string s = value.Substring(0, num);
  383. int width;
  384. if (int.TryParse(s, out width))
  385. {
  386. result.width = width;
  387. }
  388. else
  389. {
  390. Debug.LogError(string.Format("不適切な解像度が設定されています。設定された解像度={0}", value));
  391. }
  392. string s2 = value.Substring(num + 1);
  393. int height;
  394. if (int.TryParse(s2, out height))
  395. {
  396. result.height = height;
  397. }
  398. else
  399. {
  400. Debug.LogError(string.Format("不適切な解像度が設定されています。設定された解像度={0}", value));
  401. }
  402. return result;
  403. }
  404. private bool IsValidatePopupValue<T>(string value)
  405. {
  406. if (!Enum.IsDefined(typeof(T), value))
  407. {
  408. Debug.LogError(string.Format("ポップアップリストから不適切な値が選択されました。選択されたボタン名={0}", value));
  409. return false;
  410. }
  411. return true;
  412. }
  413. private KeyValuePair<T, GameObject> GetRootItem<T>(GameObject obj) where T : class
  414. {
  415. T t = (T)((object)null);
  416. Transform transform = obj.transform;
  417. for (;;)
  418. {
  419. t = transform.parent.GetComponent<T>();
  420. if (!(transform.parent == null) && t != null)
  421. {
  422. break;
  423. }
  424. transform = transform.parent;
  425. }
  426. if (transform != null)
  427. {
  428. transform.gameObject.SetActive(false);
  429. }
  430. return new KeyValuePair<T, GameObject>(t, transform.gameObject);
  431. }
  432. [SerializeField]
  433. [Header("タブボタンのデータ")]
  434. private ConfigManager.CategoryButton[] categoryTabButtons;
  435. [SerializeField]
  436. [Header("閉じるボタン")]
  437. private UIButton closeButton;
  438. [SerializeField]
  439. [Header("VRボタン")]
  440. private UIButton vrConfigButton;
  441. [SerializeField]
  442. [Header("システムタブ表示用Widget")]
  443. private UIWidget systemWidget;
  444. [SerializeField]
  445. [Header("システムフレーム")]
  446. private UISprite systemFrame;
  447. [SerializeField]
  448. [Header("サウンドタブ表示用Widget")]
  449. private UIWidget soundWidget;
  450. [SerializeField]
  451. [Header("システムボタン常時表示")]
  452. private ConfigSelectButton systemButtonVisible;
  453. [SerializeField]
  454. [Header("スクリーンモード")]
  455. private ConfigSelectButton screenMode;
  456. [SerializeField]
  457. [Header("FPS表示")]
  458. private ConfigSelectButton drawFPS;
  459. [SerializeField]
  460. [Header("ボイス継続")]
  461. private ConfigSelectButton sequentialVoice;
  462. [SerializeField]
  463. [Header("射精音の再生")]
  464. private ConfigSelectButton ejaculationSe;
  465. [SerializeField]
  466. [Header("男透明度")]
  467. private ConfigIntegerSlider manAlpha;
  468. [SerializeField]
  469. [Header("ブルーム")]
  470. private ConfigIntegerSlider bloom;
  471. [SerializeField]
  472. [Header("メッセージウィンドウ透明度")]
  473. private ConfigIntegerSlider messageAlpha;
  474. [SerializeField]
  475. [Header("テキストスピード")]
  476. private ConfigIntegerSlider textSpeed;
  477. [SerializeField]
  478. [Header("テキストオートスピード")]
  479. private ConfigIntegerSlider textAutoSpeed;
  480. [SerializeField]
  481. [Header("CBLデバイス選択")]
  482. private UIPopupList deviceSelect;
  483. [SerializeField]
  484. [Header("画面解像度")]
  485. private UIPopupList screenResolution;
  486. [SerializeField]
  487. [Header("キャプチャ倍率")]
  488. private UIPopupList captureMagnification;
  489. [SerializeField]
  490. [Header("アンチエイリアス")]
  491. private UIPopupList antiAlias;
  492. [SerializeField]
  493. [Header("影のクオリティ")]
  494. private UIPopupList shadowQuality;
  495. [SerializeField]
  496. [Header("テクスチャのクオリティ")]
  497. private UIPopupList textureQuality;
  498. [SerializeField]
  499. [Header("翻訳版用-ADVの表示タイプ")]
  500. private UIPopupList subtitleType;
  501. [SerializeField]
  502. [Header("音量-マスター")]
  503. private ConfigIntegerSlider volumeMaster;
  504. [SerializeField]
  505. [Header("音量-システム")]
  506. private ConfigIntegerSlider volumeSystem;
  507. [SerializeField]
  508. [Header("音量-BGM")]
  509. private ConfigIntegerSlider volumeBGM;
  510. [SerializeField]
  511. [Header("音量-ダンス")]
  512. private ConfigIntegerSlider volumeDance;
  513. [SerializeField]
  514. [Header("音量-ボイスマスター")]
  515. private ConfigIntegerSlider volumeVoiceMaster;
  516. [SerializeField]
  517. [Header("音量-ボイスヒロイン")]
  518. private ConfigIntegerSlider volumeVoiceHeroine;
  519. [SerializeField]
  520. [Header("3D-ボイスヒロイン")]
  521. private WFCheckBox threeDEffectVoiceHeroine;
  522. [SerializeField]
  523. [Header("音量-ボイスサブ")]
  524. private ConfigIntegerSlider volumeSubVoice;
  525. [SerializeField]
  526. [Header("3D-ボイスサブ")]
  527. private WFCheckBox threeDEffectSubVoice;
  528. [SerializeField]
  529. [Header("音量-ボイスエキストラ")]
  530. private ConfigIntegerSlider volumeExtraVoice;
  531. [SerializeField]
  532. [Header("3D-ボイスエキストラ")]
  533. private WFCheckBox threeDEffectExtraVoice;
  534. [SerializeField]
  535. [Header("音量-ボイスモブ")]
  536. private ConfigIntegerSlider volumeMobVoice;
  537. [SerializeField]
  538. [Header("3D-ボイスモブ")]
  539. private WFCheckBox threeDEffectMobVoice;
  540. [SerializeField]
  541. [Header("音量-SE")]
  542. private ConfigIntegerSlider volumeSE;
  543. [SerializeField]
  544. [Header("3D-SE")]
  545. private WFCheckBox threeDEffectSE;
  546. [SerializeField]
  547. [Header("音量-環境音")]
  548. private ConfigIntegerSlider volumeEnv;
  549. [SerializeField]
  550. [Header("3D-環境音")]
  551. private WFCheckBox threeDEffectEnv;
  552. private ConfigCblManager cblConfigMgr;
  553. private List<ConfigSelectButton> selectButtons = new List<ConfigSelectButton>();
  554. private List<ConfigIntegerSlider> intSliders = new List<ConfigIntegerSlider>();
  555. [Serializable]
  556. private struct CategoryButton
  557. {
  558. public ConfigManager.CategoryButton.Type type;
  559. public UIWFTabButton tab;
  560. public enum Type
  561. {
  562. System = 10,
  563. Sound = 20,
  564. ChuBLip = 30
  565. }
  566. }
  567. }