ConfigVRCtrl.cs 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893
  1. using System;
  2. using System.Collections.Generic;
  3. using Kasizuki;
  4. using UnityEngine;
  5. public class ConfigVRCtrl : NGUIWindow
  6. {
  7. public static ConfigVRCtrl instance
  8. {
  9. get
  10. {
  11. Transform transform = null;
  12. GameObject gameObject = GameObject.Find("SystemUI Root");
  13. if (gameObject)
  14. {
  15. transform = gameObject.transform;
  16. }
  17. else
  18. {
  19. NDebug.Assert("SystemUI Rootが見つかりません", false);
  20. }
  21. if (ConfigVRCtrl.m_Instance == null)
  22. {
  23. Transform transform2 = transform.Find("ConfigVR");
  24. if (transform2 != null)
  25. {
  26. ConfigVRCtrl.m_Instance = transform2.GetComponent<ConfigVRCtrl>();
  27. }
  28. }
  29. if (ConfigVRCtrl.m_Instance == null)
  30. {
  31. string path = "SystemUI/Config/Prefab/ConfigVR";
  32. GameObject gameObject2 = Resources.Load<GameObject>(path);
  33. if (gameObject2 == null)
  34. {
  35. NDebug.Assert("[ConfigVRCtrl] VRコンフィグUIのプレハブが存在しません", false);
  36. }
  37. ConfigVRCtrl.m_Instance = UnityEngine.Object.Instantiate<GameObject>(gameObject2).GetComponent<ConfigVRCtrl>();
  38. ConfigVRCtrl.m_Instance.transform.SetParent(transform, false);
  39. ConfigVRCtrl.m_Instance.transform.localPosition = new Vector3(0f, -11f, 0f);
  40. ConfigVRCtrl.m_Instance.transform.localRotation = Quaternion.identity;
  41. ConfigVRCtrl.m_Instance.transform.localScale = Vector3.one;
  42. }
  43. if (ConfigVRCtrl.m_Instance == null)
  44. {
  45. NDebug.Assert("[ConfigVRCtrl] VRコンフィグUIのインスタンス取得に失敗しました", false);
  46. }
  47. return ConfigVRCtrl.m_Instance;
  48. }
  49. }
  50. public static bool IsOpen()
  51. {
  52. return ConfigVRCtrl.instance != null && ConfigVRCtrl.instance.gameObject.activeSelf;
  53. }
  54. public static void Open(Action onClickOK = null)
  55. {
  56. if (ConfigVRCtrl.IsOpen())
  57. {
  58. Debug.Log("[ConfigVRCtrl] VRConfigは既に開かれています。");
  59. return;
  60. }
  61. ConfigVRCtrl component = ConfigVRCtrl.instance.GetComponent<ConfigVRCtrl>();
  62. NGUIWindow component2 = ConfigVRCtrl.instance.GetComponent<NGUIWindow>();
  63. component.onClickOK = onClickOK;
  64. component.LoadConfigData();
  65. component2.Open(0.25f, null);
  66. }
  67. public static void Close(bool isExecutionOK = true)
  68. {
  69. ConfigVRCtrl component = ConfigVRCtrl.instance.GetComponent<ConfigVRCtrl>();
  70. NGUIWindow component2 = ConfigVRCtrl.instance.GetComponent<NGUIWindow>();
  71. component2.Close(0.25f, delegate
  72. {
  73. UnityEngine.Object.Destroy(ConfigVRCtrl.instance.gameObject);
  74. });
  75. if (isExecutionOK && component.onClickOK != null)
  76. {
  77. component.onClickOK();
  78. }
  79. }
  80. private Dictionary<ConfigVRCtrl.TypeItem, ConfigVRCtrl.ParentItem> dicItem
  81. {
  82. get
  83. {
  84. return this.m_DicItem;
  85. }
  86. set
  87. {
  88. this.m_DicItem = value;
  89. }
  90. }
  91. private CMSystem cmSystem
  92. {
  93. get
  94. {
  95. return GameMain.Instance.CMSystem;
  96. }
  97. }
  98. private void Log(object message)
  99. {
  100. Debug.Log(message);
  101. }
  102. public Action onClickOK { get; set; }
  103. public Action onClickChangeConfig { get; set; }
  104. protected override void Awake()
  105. {
  106. base.Awake();
  107. this.SetupAllUI();
  108. this.LoadConfigData();
  109. this.ItemSwitchingOfDevice();
  110. }
  111. private void SetupAllUI()
  112. {
  113. base.cachedObjectDic.CacheChildObject<UIButton>(base.gameObject, "OK", "ButtonOK");
  114. EventDelegate.Add(base.cachedObjectDic.GetCache<UIButton>("ButtonOK").onClick, delegate()
  115. {
  116. ConfigVRCtrl.Close(true);
  117. });
  118. base.cachedObjectDic.CacheChildObject<UIButton>(base.gameObject, "Change Normal", "ButtonChange");
  119. EventDelegate.Add(base.cachedObjectDic.GetCache<UIButton>("ButtonChange").onClick, delegate()
  120. {
  121. ConfigVRCtrl.Close(true);
  122. BaseMgr<ConfigMgr>.Instance.OpenConfigPanel();
  123. });
  124. base.cachedObjectDic.CacheChildObject<UISprite>(base.gameObject, "BG", "Background");
  125. base.cachedObjectDic.CacheChildObject<UILabel>(base.gameObject, "label notes", "注意書き");
  126. base.cachedObjectDic.GetCache<UILabel>("注意書き").gameObject.SetActive(!GameMain.Instance.VRMode);
  127. UIGrid uigrid = base.cachedObjectDic.CacheChildObject<UIGrid>(base.gameObject, "DataList/ScrollView/Grid", "Parent Grid");
  128. this.dicItem = new Dictionary<ConfigVRCtrl.TypeItem, ConfigVRCtrl.ParentItem>();
  129. this.SetupCommonUI(uigrid.gameObject);
  130. this.SetupViveUI(uigrid.gameObject);
  131. this.SetupOculusTouchUI(uigrid.gameObject);
  132. this.SetupHMDOnlyUI(uigrid.gameObject);
  133. this.Setup2DModeUI(uigrid.gameObject);
  134. }
  135. private void SetupCommonUI(GameObject parentItem)
  136. {
  137. this.dicItem.Add(ConfigVRCtrl.TypeItem.CommonEyeHeight, this.SetupSlider(parentItem, "common eye height", ConfigVRCtrl.COMMON_EYE_HEIGHT_VALUE.x, ConfigVRCtrl.COMMON_EYE_HEIGHT_VALUE.y, delegate(float value)
  138. {
  139. this.cmSystem.VRCameraHeightStand = value;
  140. this.Log("身長 : " + this.cmSystem.VRCameraHeightStand);
  141. }));
  142. this.dicItem.Add(ConfigVRCtrl.TypeItem.CommonSitHeight, this.SetupSlider(parentItem, "common sitting height", ConfigVRCtrl.COMMON_SITTING_HEIGHT_VALUE.x, ConfigVRCtrl.COMMON_SITTING_HEIGHT_VALUE.y, delegate(float value)
  143. {
  144. this.cmSystem.VRCameraHeightSit = value;
  145. this.Log("座高 : " + this.cmSystem.VRCameraHeightSit);
  146. }));
  147. this.dicItem.Add(ConfigVRCtrl.TypeItem.CommonCameraMoveSpeed, this.SetupSlider(parentItem, "common camera move speed", ConfigVRCtrl.COMMON_CAMERA_MOVE_VALUE.x, ConfigVRCtrl.COMMON_CAMERA_MOVE_VALUE.y, delegate(float value)
  148. {
  149. this.cmSystem.VRCameraMoveSpeedKey = value;
  150. this.Log("カメラ移動速度(キーボード) : " + this.cmSystem.VRCameraMoveSpeedKey);
  151. }));
  152. this.dicItem.Add(ConfigVRCtrl.TypeItem.CommonCameraRotSpeed, this.SetupSlider(parentItem, "common camera rot speed", ConfigVRCtrl.COMMON_CAMERA_ROT_VALUE.x, ConfigVRCtrl.COMMON_CAMERA_ROT_VALUE.y, delegate(float value)
  153. {
  154. this.cmSystem.VRCameraRotSpeedKey = value;
  155. this.Log("カメラ回転速度(キーボード) : " + this.cmSystem.VRCameraRotSpeedKey);
  156. }));
  157. this.dicItem.Add(ConfigVRCtrl.TypeItem.CommonShowDesktopScreen, this.SetupButton(parentItem, "common show desktop screen", delegate(bool isLeft)
  158. {
  159. if (isLeft && !GameMain.Instance.BgMgr.isShowDesktopScreen)
  160. {
  161. GameMain.Instance.BgMgr.SetShowDesktopScreen(true);
  162. }
  163. else if (!isLeft && GameMain.Instance.BgMgr.isShowDesktopScreen)
  164. {
  165. GameMain.Instance.BgMgr.SetShowDesktopScreen(false);
  166. }
  167. this.Log("デスクトップスクリーンの表示 + " + GameMain.Instance.BgMgr.isShowDesktopScreen);
  168. }));
  169. }
  170. private void SetupViveUI(GameObject parentItem)
  171. {
  172. this.dicItem.Add(ConfigVRCtrl.TypeItem.ViveFloorHeightType, this.SetupButton(parentItem, "vive floor height", delegate(bool isLeft)
  173. {
  174. this.cmSystem.OvrCameraHeightType = ((!isLeft) ? CMSystem.OVR_CAM_HEIGHT_TYPE.VR : CMSystem.OVR_CAM_HEIGHT_TYPE.REAL);
  175. this.Log("Vive\u3000床の高さ検出法 : " + this.cmSystem.OvrCameraHeightType.ToString());
  176. }));
  177. this.dicItem.Add(ConfigVRCtrl.TypeItem.ViveMoveMode, this.SetupButton(parentItem, "vive move mode", delegate(bool isLeft)
  178. {
  179. this.cmSystem.SConfig.OvrMoveType = ((!isLeft) ? CMSystem.SerializeConfig.OVR_MOVE_TYPE.DIRECTION : CMSystem.SerializeConfig.OVR_MOVE_TYPE.WARP_DRAW_STEPROT);
  180. this.Log("Vive\u3000移動方法 : " + this.cmSystem.SConfig.OvrMoveType);
  181. if (isLeft)
  182. {
  183. this.SetItemShowFlag(ConfigVRCtrl.TypeItem.ViveSnapRotateEnable, true);
  184. this.SetItemShowFlag(ConfigVRCtrl.TypeItem.ViveSnapRotateRate, true);
  185. this.SetItemShowFlag(ConfigVRCtrl.TypeItem.ViveOldRotatePad, false);
  186. this.SetItemShowFlag(ConfigVRCtrl.TypeItem.ViveOldMovePad, false);
  187. this.SetItemShowFlag(ConfigVRCtrl.TypeItem.ViveOldMoveRotatePadAriaRate, false);
  188. }
  189. else
  190. {
  191. this.SetItemShowFlag(ConfigVRCtrl.TypeItem.ViveSnapRotateEnable, false);
  192. this.SetItemShowFlag(ConfigVRCtrl.TypeItem.ViveSnapRotateRate, false);
  193. this.SetItemShowFlag(ConfigVRCtrl.TypeItem.ViveOldRotatePad, true);
  194. this.SetItemShowFlag(ConfigVRCtrl.TypeItem.ViveOldMovePad, true);
  195. this.SetItemShowFlag(ConfigVRCtrl.TypeItem.ViveOldMoveRotatePadAriaRate, true);
  196. }
  197. }));
  198. this.dicItem.Add(ConfigVRCtrl.TypeItem.ViveSnapRotateEnable, this.SetupButton(parentItem, "vive use snap rotate", delegate(bool isLeft)
  199. {
  200. this.cmSystem.OvrUseSnapRotate = isLeft;
  201. this.Log("Vive\u3000パッド端で回転 : " + this.cmSystem.OvrUseSnapRotate);
  202. }));
  203. this.dicItem.Add(ConfigVRCtrl.TypeItem.ViveSnapRotateRate, this.SetupSlider(parentItem, "vive use snap rotate rate", ConfigVRCtrl.VR_CAMERA_SNAP_ROT_VALUE.x, ConfigVRCtrl.VR_CAMERA_SNAP_ROT_VALUE.y, delegate(float value)
  204. {
  205. this.cmSystem.OvrUseSnapRotateRate = (int)value;
  206. this.Log("Vive\u3000パッド端の回転量 : " + this.cmSystem.OvrUseSnapRotateRate);
  207. }));
  208. this.dicItem.Add(ConfigVRCtrl.TypeItem.ViveOldRotatePad, this.SetupButton(parentItem, "vive old rotate pad", delegate(bool isLeft)
  209. {
  210. this.cmSystem.SConfig.OvrViveSmoothRotatePadAreaUse = isLeft;
  211. this.Log("Vive\u3000(スムーズ移動)パッド左右端で回転 : " + this.cmSystem.SConfig.OvrViveSmoothRotatePadAreaUse);
  212. }));
  213. this.dicItem.Add(ConfigVRCtrl.TypeItem.ViveOldMovePad, this.SetupButton(parentItem, "vive old move pad", delegate(bool isLeft)
  214. {
  215. this.cmSystem.SConfig.OvrViveSmoothupDownPadAreaUse = isLeft;
  216. this.Log("Vive\u3000(スムーズ移動)パッド上下端で上下 : " + this.cmSystem.SConfig.OvrViveSmoothupDownPadAreaUse);
  217. }));
  218. this.dicItem.Add(ConfigVRCtrl.TypeItem.ViveOldMoveRotatePadAriaRate, this.SetupSlider(parentItem, "vive old rotate pad aria rate", 10f, 80f, delegate(float value)
  219. {
  220. this.cmSystem.SConfig.OvrViveSmoothRotatePadAriaRate = value;
  221. this.Log("Vive\u3000(スムーズ移動)端の領域 : " + this.cmSystem.SConfig.OvrViveSmoothRotatePadAriaRate);
  222. }));
  223. this.dicItem.Add(ConfigVRCtrl.TypeItem.ViveDDTouchToClick, this.SetupButton(parentItem, "vive dd touch to click", delegate(bool isLeft)
  224. {
  225. this.cmSystem.SConfig.OvrDDTouchToClick = isLeft;
  226. this.Log("Vive\u3000デスクトップスクリーンに触れるとクリック : " + this.cmSystem.SConfig.OvrDDTouchToClick);
  227. }));
  228. this.dicItem.Add(ConfigVRCtrl.TypeItem.ViveOvrTabletFrameHideWhenMsgWndVisible, this.SetupButton(parentItem, "vive OvrTabletFrameHideWhenMsgWndVisible", delegate(bool isLeft)
  229. {
  230. this.cmSystem.SConfig.OvrTabletFrameHideWhenMsgWndVisible = isLeft;
  231. this.Log("Vive\u3000メッセージ中タブレット枠を非表示 : " + this.cmSystem.SConfig.OvrTabletFrameHideWhenMsgWndVisible);
  232. }));
  233. }
  234. private void SetupOculusTouchUI(GameObject parentItem)
  235. {
  236. this.dicItem.Add(ConfigVRCtrl.TypeItem.TouchMoveMode, this.SetupButton(parentItem, "touch move mode", delegate(bool isLeft)
  237. {
  238. this.cmSystem.SConfig.OvrMoveType = ((!isLeft) ? CMSystem.SerializeConfig.OVR_MOVE_TYPE.DIRECTION : CMSystem.SerializeConfig.OVR_MOVE_TYPE.WARP_DRAW_STEPROT);
  239. this.Log("Touch\u3000移動方法 : " + this.cmSystem.SConfig.OvrMoveType);
  240. if (isLeft)
  241. {
  242. this.SetItemShowFlag(ConfigVRCtrl.TypeItem.TouchSnapRotateEnable, true);
  243. this.SetItemShowFlag(ConfigVRCtrl.TypeItem.TouchSnapRotateRate, true);
  244. this.SetItemShowFlag(ConfigVRCtrl.TypeItem.TouchOldMoveStick, false);
  245. this.SetItemShowFlag(ConfigVRCtrl.TypeItem.TouchOldRotateStick, false);
  246. }
  247. else
  248. {
  249. this.SetItemShowFlag(ConfigVRCtrl.TypeItem.TouchSnapRotateEnable, false);
  250. this.SetItemShowFlag(ConfigVRCtrl.TypeItem.TouchSnapRotateRate, false);
  251. this.SetItemShowFlag(ConfigVRCtrl.TypeItem.TouchOldMoveStick, true);
  252. this.SetItemShowFlag(ConfigVRCtrl.TypeItem.TouchOldRotateStick, true);
  253. }
  254. }));
  255. this.dicItem.Add(ConfigVRCtrl.TypeItem.TouchSnapRotateEnable, this.SetupButton(parentItem, "touch use snap rotate", delegate(bool isLeft)
  256. {
  257. this.cmSystem.OvrUseSnapRotate = isLeft;
  258. this.Log("Touch\u3000スティック傾けで回転 : " + this.cmSystem.OvrUseSnapRotate);
  259. }));
  260. this.dicItem.Add(ConfigVRCtrl.TypeItem.TouchSnapRotateRate, this.SetupSlider(parentItem, "touch use snap rotate rate", ConfigVRCtrl.VR_CAMERA_SNAP_ROT_VALUE.x, ConfigVRCtrl.VR_CAMERA_SNAP_ROT_VALUE.y, delegate(float value)
  261. {
  262. this.cmSystem.OvrUseSnapRotateRate = (int)value;
  263. this.Log("Touch\u3000スティック傾けの回転量 : " + this.cmSystem.OvrUseSnapRotateRate);
  264. }));
  265. this.dicItem.Add(ConfigVRCtrl.TypeItem.TouchOldMoveStick, this.SetupButton(parentItem, "touch old move stick", delegate(bool isLeft)
  266. {
  267. this.cmSystem.SConfig.OvrRiftTriggerStickUpDown = isLeft;
  268. this.Log("Touch\u3000(スムーズ移動)グリップとスティックで回転 : " + this.cmSystem.SConfig.OvrRiftTriggerStickUpDown);
  269. }));
  270. this.dicItem.Add(ConfigVRCtrl.TypeItem.TouchOldRotateStick, this.SetupButton(parentItem, "touch old rotate stick", delegate(bool isLeft)
  271. {
  272. this.cmSystem.SConfig.OvrRiftGripStickRotate = isLeft;
  273. this.Log("Touch\u3000(スムーズ移動)トリガーとスティックで上下 : " + this.cmSystem.SConfig.OvrRiftGripStickRotate);
  274. }));
  275. this.dicItem.Add(ConfigVRCtrl.TypeItem.TouchDDTouchToClick, this.SetupButton(parentItem, "touch dd touch to click", delegate(bool isLeft)
  276. {
  277. this.cmSystem.SConfig.OvrDDTouchToClick = isLeft;
  278. this.Log("Touch\u3000デスクトップスクリーンに触れるとクリック : " + this.cmSystem.SConfig.OvrDDTouchToClick);
  279. }));
  280. this.dicItem.Add(ConfigVRCtrl.TypeItem.TouchOvrTabletFrameHideWhenMsgWndVisible, this.SetupButton(parentItem, "touch OvrTabletFrameHideWhenMsgWndVisible", delegate(bool isLeft)
  281. {
  282. this.cmSystem.SConfig.OvrTabletFrameHideWhenMsgWndVisible = isLeft;
  283. this.Log("Touch\u3000メッセージ中タブレット枠を非表示 : " + this.cmSystem.SConfig.OvrTabletFrameHideWhenMsgWndVisible);
  284. }));
  285. }
  286. private void SetupHMDOnlyUI(GameObject parentItem)
  287. {
  288. this.dicItem.Add(ConfigVRCtrl.TypeItem.HMDOnlyCameraPlaneMovement, this.SetupButton(parentItem, "no touch plane movement", delegate(bool isLeft)
  289. {
  290. this.cmSystem.VRCameraPlaneMove = isLeft;
  291. this.Log("HMDのみ\u3000カメラの平行移動 : " + this.cmSystem.VRCameraPlaneMove);
  292. }));
  293. this.dicItem.Add(ConfigVRCtrl.TypeItem.HMDOnlyMouseRotateEnable, this.SetupButton(parentItem, "no touch mouse rot enable", delegate(bool isLeft)
  294. {
  295. this.cmSystem.OvrMouseRot = isLeft;
  296. this.Log("HMDのみ\u3000マウスでカメラ回転 : " + this.cmSystem.OvrMouseRot);
  297. }));
  298. this.dicItem.Add(ConfigVRCtrl.TypeItem.HMDOnlyMouseRotateSpeed, this.SetupSlider(parentItem, "no touch mouse rot speed", ConfigVRCtrl.VR_CAMERA_MOUSE_ROT_VALUE.x, ConfigVRCtrl.VR_CAMERA_MOUSE_ROT_VALUE.y, delegate(float value)
  299. {
  300. this.cmSystem.VRCameraRotSpeedMouse = value;
  301. this.Log("HMDのみ\u3000マウスのカメラ回転速度 : " + this.cmSystem.VRCameraRotSpeedMouse);
  302. }));
  303. }
  304. private void Setup2DModeUI(GameObject parentItem)
  305. {
  306. this.dicItem.Add(ConfigVRCtrl.TypeItem.DummyMouseRotateSpeed, this.SetupSlider(parentItem, "2d mouse rot speed", ConfigVRCtrl.VR_CAMERA_MOUSE_ROT_VALUE.x, ConfigVRCtrl.VR_CAMERA_MOUSE_ROT_VALUE.y, delegate(float value)
  307. {
  308. this.cmSystem.VRCameraRotSpeedMouse = value;
  309. this.Log("2Dモード\u3000マウスのカメラ回転速度 : " + this.cmSystem.VRCameraRotSpeedMouse);
  310. }));
  311. this.dicItem.Add(ConfigVRCtrl.TypeItem.DummyMouseRotateInverse, this.SetupButton(parentItem, "2d mouse rot inverse", delegate(bool isLeft)
  312. {
  313. this.cmSystem.VRCamRotDownUp = isLeft;
  314. this.Log("2Dモード\u3000マウスのカメラ反転 : " + this.cmSystem.VRCamRotDownUp);
  315. }));
  316. this.dicItem.Add(ConfigVRCtrl.TypeItem.DummyCameraPlaneMovement, this.SetupButton(parentItem, "2d plane movement", delegate(bool isLeft)
  317. {
  318. this.cmSystem.VRCameraPlaneMove = isLeft;
  319. this.Log("2Dモード\u3000カメラの平行移動 : " + this.cmSystem.VRCameraPlaneMove);
  320. }));
  321. this.dicItem.Add(ConfigVRCtrl.TypeItem.DummyShowMan, this.SetupButton(parentItem, "2d show man", delegate(bool isLeft)
  322. {
  323. this.cmSystem.VRManShow = isLeft;
  324. this.Log("2Dモード\u3000男の表示 : " + this.cmSystem.VRManShow);
  325. }));
  326. this.dicItem.Add(ConfigVRCtrl.TypeItem.DummyCameraFov, this.SetupSlider(parentItem, "2d camera field of view", ConfigVRCtrl.VR2D_CAMERA_FOV_VALUE.x, ConfigVRCtrl.VR2D_CAMERA_FOV_VALUE.y, delegate(float value)
  327. {
  328. this.cmSystem.VRCameraFov = value;
  329. this.Log("2Dモード\u3000カメラの画角 : " + this.cmSystem.VRCameraFov);
  330. }));
  331. Collider[] componentsInChildren = this.dicItem[ConfigVRCtrl.TypeItem.DummyCameraFov].GetComponentsInChildren<Collider>();
  332. foreach (Collider collider in componentsInChildren)
  333. {
  334. UIEventTrigger uieventTrigger = collider.gameObject.AddComponent<UIEventTrigger>();
  335. EventDelegate.Add(uieventTrigger.onPress, delegate()
  336. {
  337. UISprite cache = base.cachedObjectDic.GetCache<UISprite>("Background");
  338. TweenAlpha.Begin(cache.gameObject, 0.25f, 0.25f);
  339. });
  340. EventDelegate.Add(uieventTrigger.onRelease, delegate()
  341. {
  342. UISprite cache = base.cachedObjectDic.GetCache<UISprite>("Background");
  343. TweenAlpha.Begin(cache.gameObject, 0.25f, 1f);
  344. });
  345. }
  346. }
  347. private ConfigVRCtrl.ParentSlider SetupSlider(GameObject parent, string objName, float min, float max, Action<float> onValueChanged)
  348. {
  349. ConfigVRCtrl.ParentSlider parentSlider = UTY.GetChildObject(parent, objName, false).AddComponent<ConfigVRCtrl.ParentSlider>();
  350. parentSlider.min = min;
  351. parentSlider.max = max;
  352. ConfigVRCtrl.ParentSlider parentSlider2 = parentSlider;
  353. parentSlider2.onValueChanged = (Action<float>)Delegate.Combine(parentSlider2.onValueChanged, onValueChanged);
  354. return parentSlider;
  355. }
  356. private ConfigVRCtrl.ParentButton SetupButton(GameObject parent, string objName, Action<bool> onClickIsLeft)
  357. {
  358. ConfigVRCtrl.ParentButton parentButton = UTY.GetChildObject(parent, objName, false).AddComponent<ConfigVRCtrl.ParentButton>();
  359. ConfigVRCtrl.ParentButton parentButton2 = parentButton;
  360. parentButton2.onClickIsLeft = (Action<bool>)Delegate.Combine(parentButton2.onClickIsLeft, onClickIsLeft);
  361. return parentButton;
  362. }
  363. private void ItemSwitchingOfDevice()
  364. {
  365. if (this.dicItem == null)
  366. {
  367. Debug.Log("[ConfigVRCtrl] まだ項目の初期化は行っていません");
  368. return;
  369. }
  370. GameMain.VRDeviceType vrdeviceTypeID = GameMain.Instance.VRDeviceTypeID;
  371. Dictionary<ConfigVRCtrl.TypeItem, bool> dictionary = new Dictionary<ConfigVRCtrl.TypeItem, bool>();
  372. Array values = Enum.GetValues(typeof(ConfigVRCtrl.TypeItem));
  373. for (int i = 0; i < values.Length; i++)
  374. {
  375. dictionary.Add((ConfigVRCtrl.TypeItem)values.GetValue(i), false);
  376. }
  377. dictionary[ConfigVRCtrl.TypeItem.CommonCameraMoveSpeed] = true;
  378. dictionary[ConfigVRCtrl.TypeItem.CommonCameraRotSpeed] = true;
  379. dictionary[ConfigVRCtrl.TypeItem.CommonEyeHeight] = true;
  380. dictionary[ConfigVRCtrl.TypeItem.CommonSitHeight] = true;
  381. dictionary[ConfigVRCtrl.TypeItem.CommonShowDesktopScreen] = true;
  382. if (vrdeviceTypeID == GameMain.VRDeviceType.NON)
  383. {
  384. dictionary[ConfigVRCtrl.TypeItem.DummyCameraFov] = true;
  385. dictionary[ConfigVRCtrl.TypeItem.DummyCameraPlaneMovement] = true;
  386. dictionary[ConfigVRCtrl.TypeItem.DummyMouseRotateInverse] = true;
  387. dictionary[ConfigVRCtrl.TypeItem.DummyMouseRotateSpeed] = true;
  388. dictionary[ConfigVRCtrl.TypeItem.DummyShowMan] = true;
  389. }
  390. else if (vrdeviceTypeID == GameMain.VRDeviceType.RIFT)
  391. {
  392. dictionary[ConfigVRCtrl.TypeItem.HMDOnlyCameraPlaneMovement] = true;
  393. dictionary[ConfigVRCtrl.TypeItem.HMDOnlyMouseRotateEnable] = true;
  394. dictionary[ConfigVRCtrl.TypeItem.HMDOnlyMouseRotateSpeed] = true;
  395. }
  396. else if (vrdeviceTypeID == GameMain.VRDeviceType.FOVE)
  397. {
  398. dictionary[ConfigVRCtrl.TypeItem.HMDOnlyCameraPlaneMovement] = true;
  399. dictionary[ConfigVRCtrl.TypeItem.HMDOnlyMouseRotateEnable] = true;
  400. dictionary[ConfigVRCtrl.TypeItem.HMDOnlyMouseRotateSpeed] = true;
  401. }
  402. else if (vrdeviceTypeID == GameMain.VRDeviceType.VIVE)
  403. {
  404. dictionary[ConfigVRCtrl.TypeItem.ViveFloorHeightType] = true;
  405. dictionary[ConfigVRCtrl.TypeItem.ViveMoveMode] = true;
  406. dictionary[ConfigVRCtrl.TypeItem.ViveSnapRotateEnable] = (this.cmSystem.SConfig.OvrMoveType == CMSystem.SerializeConfig.OVR_MOVE_TYPE.WARP_DRAW_STEPROT);
  407. dictionary[ConfigVRCtrl.TypeItem.ViveSnapRotateRate] = (this.cmSystem.SConfig.OvrMoveType == CMSystem.SerializeConfig.OVR_MOVE_TYPE.WARP_DRAW_STEPROT);
  408. dictionary[ConfigVRCtrl.TypeItem.ViveOldRotatePad] = (this.cmSystem.SConfig.OvrMoveType == CMSystem.SerializeConfig.OVR_MOVE_TYPE.DIRECTION);
  409. dictionary[ConfigVRCtrl.TypeItem.ViveOldMovePad] = (this.cmSystem.SConfig.OvrMoveType == CMSystem.SerializeConfig.OVR_MOVE_TYPE.DIRECTION);
  410. dictionary[ConfigVRCtrl.TypeItem.ViveOldMoveRotatePadAriaRate] = (this.cmSystem.SConfig.OvrMoveType == CMSystem.SerializeConfig.OVR_MOVE_TYPE.DIRECTION);
  411. dictionary[ConfigVRCtrl.TypeItem.ViveDDTouchToClick] = false;
  412. dictionary[ConfigVRCtrl.TypeItem.ViveOvrTabletFrameHideWhenMsgWndVisible] = true;
  413. }
  414. else if (vrdeviceTypeID == GameMain.VRDeviceType.RIFT_TOUCH)
  415. {
  416. dictionary[ConfigVRCtrl.TypeItem.TouchMoveMode] = true;
  417. dictionary[ConfigVRCtrl.TypeItem.TouchSnapRotateEnable] = (this.cmSystem.SConfig.OvrMoveType == CMSystem.SerializeConfig.OVR_MOVE_TYPE.WARP_DRAW_STEPROT);
  418. dictionary[ConfigVRCtrl.TypeItem.TouchSnapRotateRate] = (this.cmSystem.SConfig.OvrMoveType == CMSystem.SerializeConfig.OVR_MOVE_TYPE.WARP_DRAW_STEPROT);
  419. dictionary[ConfigVRCtrl.TypeItem.TouchOldRotateStick] = (this.cmSystem.SConfig.OvrMoveType == CMSystem.SerializeConfig.OVR_MOVE_TYPE.DIRECTION);
  420. dictionary[ConfigVRCtrl.TypeItem.TouchOldMoveStick] = (this.cmSystem.SConfig.OvrMoveType == CMSystem.SerializeConfig.OVR_MOVE_TYPE.DIRECTION);
  421. dictionary[ConfigVRCtrl.TypeItem.TouchDDTouchToClick] = false;
  422. dictionary[ConfigVRCtrl.TypeItem.TouchOvrTabletFrameHideWhenMsgWndVisible] = true;
  423. }
  424. dictionary[ConfigVRCtrl.TypeItem.DummyShowMan] = false;
  425. foreach (KeyValuePair<ConfigVRCtrl.TypeItem, bool> keyValuePair in dictionary)
  426. {
  427. this.dicItem[keyValuePair.Key].gameObject.SetActive(keyValuePair.Value);
  428. }
  429. UIGrid cache = base.cachedObjectDic.GetCache<UIGrid>("Parent Grid");
  430. cache.Reposition();
  431. }
  432. private void SetItemShowFlag(ConfigVRCtrl.TypeItem type, bool isShow)
  433. {
  434. if (this.dicItem == null)
  435. {
  436. Debug.Log("[ConfigVRCtrl] まだ項目の初期化は行っていません");
  437. return;
  438. }
  439. if (this.dicItem[type].gameObject.activeSelf == isShow)
  440. {
  441. return;
  442. }
  443. this.dicItem[type].gameObject.SetActive(isShow);
  444. UIGrid cache = base.cachedObjectDic.GetCache<UIGrid>("Parent Grid");
  445. cache.Reposition();
  446. }
  447. private void LoadConfigData()
  448. {
  449. if (this.dicItem == null)
  450. {
  451. Debug.Log("[ConfigVRCtrl] まだ項目の初期化は行っていません");
  452. return;
  453. }
  454. foreach (KeyValuePair<ConfigVRCtrl.TypeItem, ConfigVRCtrl.ParentItem> keyValuePair in this.dicItem)
  455. {
  456. switch (keyValuePair.Key)
  457. {
  458. case ConfigVRCtrl.TypeItem.CommonEyeHeight:
  459. keyValuePair.Value.Set(this.cmSystem.VRCameraHeightStand);
  460. break;
  461. case ConfigVRCtrl.TypeItem.CommonSitHeight:
  462. keyValuePair.Value.Set(this.cmSystem.VRCameraHeightSit);
  463. break;
  464. case ConfigVRCtrl.TypeItem.CommonCameraMoveSpeed:
  465. keyValuePair.Value.Set(this.cmSystem.VRCameraMoveSpeedKey);
  466. break;
  467. case ConfigVRCtrl.TypeItem.CommonCameraRotSpeed:
  468. keyValuePair.Value.Set(this.cmSystem.VRCameraRotSpeedKey);
  469. break;
  470. case ConfigVRCtrl.TypeItem.CommonShowDesktopScreen:
  471. keyValuePair.Value.Set(GameMain.Instance.BgMgr.isShowDesktopScreen);
  472. break;
  473. case ConfigVRCtrl.TypeItem.ViveFloorHeightType:
  474. keyValuePair.Value.Set(this.cmSystem.OvrCameraHeightType == CMSystem.OVR_CAM_HEIGHT_TYPE.REAL);
  475. break;
  476. case ConfigVRCtrl.TypeItem.ViveSnapRotateEnable:
  477. keyValuePair.Value.Set(this.cmSystem.OvrUseSnapRotate);
  478. break;
  479. case ConfigVRCtrl.TypeItem.ViveSnapRotateRate:
  480. keyValuePair.Value.Set((float)this.cmSystem.OvrUseSnapRotateRate);
  481. break;
  482. case ConfigVRCtrl.TypeItem.ViveMoveMode:
  483. keyValuePair.Value.Set(this.cmSystem.SConfig.OvrMoveType == CMSystem.SerializeConfig.OVR_MOVE_TYPE.WARP_DRAW_STEPROT);
  484. break;
  485. case ConfigVRCtrl.TypeItem.ViveOldRotatePad:
  486. keyValuePair.Value.Set(this.cmSystem.SConfig.OvrViveSmoothRotatePadAreaUse);
  487. break;
  488. case ConfigVRCtrl.TypeItem.ViveOldMovePad:
  489. keyValuePair.Value.Set(this.cmSystem.SConfig.OvrViveSmoothupDownPadAreaUse);
  490. break;
  491. case ConfigVRCtrl.TypeItem.ViveOldMoveRotatePadAriaRate:
  492. keyValuePair.Value.Set(this.cmSystem.SConfig.OvrViveSmoothRotatePadAriaRate);
  493. break;
  494. case ConfigVRCtrl.TypeItem.ViveDDTouchToClick:
  495. keyValuePair.Value.Set(this.cmSystem.SConfig.OvrDDTouchToClick);
  496. break;
  497. case ConfigVRCtrl.TypeItem.ViveOvrTabletFrameHideWhenMsgWndVisible:
  498. keyValuePair.Value.Set(this.cmSystem.SConfig.OvrTabletFrameHideWhenMsgWndVisible);
  499. break;
  500. case ConfigVRCtrl.TypeItem.TouchSnapRotateEnable:
  501. keyValuePair.Value.Set(this.cmSystem.OvrUseSnapRotate);
  502. break;
  503. case ConfigVRCtrl.TypeItem.TouchSnapRotateRate:
  504. keyValuePair.Value.Set((float)this.cmSystem.OvrUseSnapRotateRate);
  505. break;
  506. case ConfigVRCtrl.TypeItem.TouchMoveMode:
  507. keyValuePair.Value.Set(this.cmSystem.SConfig.OvrMoveType == CMSystem.SerializeConfig.OVR_MOVE_TYPE.WARP_DRAW_STEPROT);
  508. break;
  509. case ConfigVRCtrl.TypeItem.TouchOldRotateStick:
  510. keyValuePair.Value.Set(this.cmSystem.SConfig.OvrRiftGripStickRotate);
  511. break;
  512. case ConfigVRCtrl.TypeItem.TouchOldMoveStick:
  513. keyValuePair.Value.Set(this.cmSystem.SConfig.OvrRiftTriggerStickUpDown);
  514. break;
  515. case ConfigVRCtrl.TypeItem.TouchDDTouchToClick:
  516. keyValuePair.Value.Set(this.cmSystem.SConfig.OvrDDTouchToClick);
  517. break;
  518. case ConfigVRCtrl.TypeItem.TouchOvrTabletFrameHideWhenMsgWndVisible:
  519. keyValuePair.Value.Set(this.cmSystem.SConfig.OvrTabletFrameHideWhenMsgWndVisible);
  520. break;
  521. case ConfigVRCtrl.TypeItem.HMDOnlyCameraPlaneMovement:
  522. keyValuePair.Value.Set(this.cmSystem.VRCameraPlaneMove);
  523. break;
  524. case ConfigVRCtrl.TypeItem.HMDOnlyMouseRotateEnable:
  525. keyValuePair.Value.Set(this.cmSystem.OvrMouseRot);
  526. break;
  527. case ConfigVRCtrl.TypeItem.HMDOnlyMouseRotateSpeed:
  528. keyValuePair.Value.Set(this.cmSystem.VRCameraRotSpeedMouse);
  529. break;
  530. case ConfigVRCtrl.TypeItem.DummyMouseRotateSpeed:
  531. keyValuePair.Value.Set(this.cmSystem.VRCameraRotSpeedMouse);
  532. break;
  533. case ConfigVRCtrl.TypeItem.DummyMouseRotateInverse:
  534. keyValuePair.Value.Set(this.cmSystem.VRCamRotDownUp);
  535. break;
  536. case ConfigVRCtrl.TypeItem.DummyCameraPlaneMovement:
  537. keyValuePair.Value.Set(this.cmSystem.VRCameraPlaneMove);
  538. break;
  539. case ConfigVRCtrl.TypeItem.DummyShowMan:
  540. keyValuePair.Value.Set(this.cmSystem.VRManShow);
  541. break;
  542. case ConfigVRCtrl.TypeItem.DummyCameraFov:
  543. keyValuePair.Value.Set(this.cmSystem.VRCameraFov);
  544. break;
  545. default:
  546. Debug.LogError("[ConfigVRCtrl] 種類「" + keyValuePair.Key + "」のセッターがない");
  547. NDebug.Assert("[ConfigVRCtrl] 種類「" + keyValuePair.Key + "」のセッターがない", false);
  548. break;
  549. }
  550. }
  551. }
  552. private void OnApplicationQuit()
  553. {
  554. this.m_IsQuittingApplication = true;
  555. }
  556. private void OnDestroy()
  557. {
  558. if (this.m_IsQuittingApplication)
  559. {
  560. return;
  561. }
  562. if (ConfigVRCtrl.instance != null && ConfigVRCtrl.instance == this)
  563. {
  564. ConfigVRCtrl.m_Instance = null;
  565. }
  566. if (this.dicItem != null)
  567. {
  568. this.dicItem.Clear();
  569. this.dicItem = null;
  570. }
  571. this.onClickOK = null;
  572. }
  573. private static ConfigVRCtrl m_Instance;
  574. private static readonly Vector2 COMMON_EYE_HEIGHT_VALUE = new Vector2(1.5f, 1.8f);
  575. private static readonly Vector2 COMMON_SITTING_HEIGHT_VALUE = new Vector2(0.7f, 1f);
  576. private static readonly Vector2 COMMON_CAMERA_MOVE_VALUE = new Vector2(0f, 1f);
  577. private static readonly Vector2 COMMON_CAMERA_ROT_VALUE = new Vector2(0f, 1f);
  578. private static readonly Vector2 VR_CAMERA_SNAP_ROT_VALUE = new Vector2(10f, 80f);
  579. private static readonly Vector2 VR_CAMERA_MOUSE_ROT_VALUE = new Vector2(0f, 1f);
  580. private static readonly Vector2 VR2D_CAMERA_FOV_VALUE = new Vector2(30f, 60f);
  581. private Dictionary<ConfigVRCtrl.TypeItem, ConfigVRCtrl.ParentItem> m_DicItem;
  582. private bool m_IsQuittingApplication;
  583. private abstract class ParentItem : MonoBehaviour
  584. {
  585. public UILabel label
  586. {
  587. get
  588. {
  589. return this.m_Label;
  590. }
  591. }
  592. protected virtual void Awake()
  593. {
  594. this.m_Label = UTY.GetChildObject(base.gameObject, "name", false).GetComponent<UILabel>();
  595. if (this.m_Label == null)
  596. {
  597. string message = "[ConfigVRCtrl] " + base.gameObject.name + "/nameに、\nUILabel のコンポーネントがありませんでした";
  598. NDebug.Assert(message, false);
  599. Debug.LogError(message);
  600. }
  601. }
  602. public abstract void Set(object value);
  603. private UILabel m_Label;
  604. }
  605. private class ParentSlider : ConfigVRCtrl.ParentItem
  606. {
  607. public UISlider slider
  608. {
  609. get
  610. {
  611. return this.m_Slider;
  612. }
  613. private set
  614. {
  615. this.m_Slider = value;
  616. }
  617. }
  618. public float normalizedValue
  619. {
  620. get
  621. {
  622. return this.slider.value;
  623. }
  624. set
  625. {
  626. this.slider.value = value;
  627. }
  628. }
  629. public float min
  630. {
  631. get
  632. {
  633. return this.m_Min;
  634. }
  635. set
  636. {
  637. this.m_Min = value;
  638. }
  639. }
  640. public float max
  641. {
  642. get
  643. {
  644. return this.m_Max;
  645. }
  646. set
  647. {
  648. this.m_Max = value;
  649. }
  650. }
  651. public float value
  652. {
  653. get
  654. {
  655. return Mathf.Lerp(this.min, this.max, this.normalizedValue);
  656. }
  657. set
  658. {
  659. this.normalizedValue = Mathf.InverseLerp(this.min, this.max, value);
  660. }
  661. }
  662. public Action<float> onValueChanged { get; set; }
  663. public Action onDragFinished { get; set; }
  664. protected override void Awake()
  665. {
  666. base.Awake();
  667. GameObject childObject = UTY.GetChildObject(base.gameObject, "slider", false);
  668. this.slider = childObject.GetComponent<UISlider>();
  669. if (this.slider == null)
  670. {
  671. string message = string.Concat(new string[]
  672. {
  673. "[ConfigVRCtrl] ",
  674. base.gameObject.name,
  675. "/",
  676. childObject.name,
  677. "に、\nUISlider のコンポーネントがありませんでした"
  678. });
  679. NDebug.Assert(message, false);
  680. Debug.LogError(message);
  681. }
  682. EventDelegate.Add(this.slider.onChange, delegate()
  683. {
  684. if (this.onValueChanged != null)
  685. {
  686. this.onValueChanged(this.value);
  687. }
  688. });
  689. UISlider slider = this.slider;
  690. slider.onDragFinished = (UIProgressBar.OnDragFinished)Delegate.Combine(slider.onDragFinished, new UIProgressBar.OnDragFinished(delegate()
  691. {
  692. if (this.onDragFinished != null)
  693. {
  694. this.onDragFinished();
  695. }
  696. }));
  697. }
  698. public override void Set(object value)
  699. {
  700. this.value = (float)value;
  701. }
  702. private UISlider m_Slider;
  703. private float m_Min;
  704. private float m_Max = 1f;
  705. }
  706. private class ParentButton : ConfigVRCtrl.ParentItem
  707. {
  708. public UIButton buttonRight
  709. {
  710. get
  711. {
  712. return this.m_ButtonRight;
  713. }
  714. private set
  715. {
  716. this.m_ButtonRight = value;
  717. }
  718. }
  719. public UIButton buttonLeft
  720. {
  721. get
  722. {
  723. return this.m_ButtonLeft;
  724. }
  725. private set
  726. {
  727. this.m_ButtonLeft = value;
  728. }
  729. }
  730. public Action<bool> onClickIsLeft { get; set; }
  731. protected override void Awake()
  732. {
  733. base.Awake();
  734. GameObject childObject = UTY.GetChildObject(base.gameObject, "button right", false);
  735. this.buttonRight = childObject.GetComponent<UIButton>();
  736. if (this.buttonRight == null)
  737. {
  738. string message = string.Concat(new string[]
  739. {
  740. "[ConfigVRCtrl] ",
  741. base.gameObject.name,
  742. "/",
  743. childObject.name,
  744. "に、\nUIButton のコンポーネントがありませんでした"
  745. });
  746. NDebug.Assert(message, false);
  747. Debug.LogError(message);
  748. }
  749. childObject = UTY.GetChildObject(base.gameObject, "button left", false);
  750. this.buttonLeft = childObject.GetComponent<UIButton>();
  751. if (this.buttonLeft == null)
  752. {
  753. string message2 = string.Concat(new string[]
  754. {
  755. "[ConfigVRCtrl] ",
  756. base.gameObject.name,
  757. "/",
  758. childObject.name,
  759. "に、\nUIButton のコンポーネントがありませんでした"
  760. });
  761. NDebug.Assert(message2, false);
  762. Debug.LogError(message2);
  763. }
  764. EventDelegate.Add(this.buttonRight.onClick, delegate()
  765. {
  766. if (this.onClickIsLeft != null)
  767. {
  768. this.onClickIsLeft(false);
  769. }
  770. this.OnClickButton(false);
  771. });
  772. EventDelegate.Add(this.buttonLeft.onClick, delegate()
  773. {
  774. if (this.onClickIsLeft != null)
  775. {
  776. this.onClickIsLeft(true);
  777. }
  778. this.OnClickButton(true);
  779. });
  780. }
  781. private void OnClickButton(bool isLeft)
  782. {
  783. this.buttonLeft.defaultColor = ((!isLeft) ? ConfigVRCtrl.ParentButton.ButtonDefaultColor : ConfigVRCtrl.ParentButton.ButtonClickedColor);
  784. this.buttonRight.defaultColor = (isLeft ? ConfigVRCtrl.ParentButton.ButtonDefaultColor : ConfigVRCtrl.ParentButton.ButtonClickedColor);
  785. }
  786. public void Emulate(bool isLeft)
  787. {
  788. UIButton uibutton = (!isLeft) ? this.buttonRight : this.buttonLeft;
  789. EventDelegate.Execute(uibutton.onClick);
  790. }
  791. public override void Set(object value)
  792. {
  793. this.Emulate((bool)value);
  794. }
  795. private static Color ButtonDefaultColor = new Color(1f, 1f, 1f, 0.5f);
  796. private static Color ButtonClickedColor = Color.white;
  797. private UIButton m_ButtonRight;
  798. private UIButton m_ButtonLeft;
  799. }
  800. private enum TypeItem
  801. {
  802. CommonEyeHeight,
  803. CommonSitHeight,
  804. CommonCameraMoveSpeed,
  805. CommonCameraRotSpeed,
  806. CommonShowDesktopScreen,
  807. ViveFloorHeightType,
  808. ViveSnapRotateEnable,
  809. ViveSnapRotateRate,
  810. ViveMoveMode,
  811. ViveOldRotatePad,
  812. ViveOldMovePad,
  813. ViveOldMoveRotatePadAriaRate,
  814. ViveDDTouchToClick,
  815. ViveOvrTabletFrameHideWhenMsgWndVisible,
  816. TouchSnapRotateEnable,
  817. TouchSnapRotateRate,
  818. TouchMoveMode,
  819. TouchOldRotateStick,
  820. TouchOldMoveStick,
  821. TouchDDTouchToClick,
  822. TouchOvrTabletFrameHideWhenMsgWndVisible,
  823. HMDOnlyCameraPlaneMovement,
  824. HMDOnlyMouseRotateEnable,
  825. HMDOnlyMouseRotateSpeed,
  826. DummyMouseRotateSpeed,
  827. DummyMouseRotateInverse,
  828. DummyCameraPlaneMovement,
  829. DummyShowMan,
  830. DummyCameraFov
  831. }
  832. }