ConfigManager.cs 21 KB

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