123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893 |
- using System;
- using System.Collections.Generic;
- using Kasizuki;
- using UnityEngine;
- public class ConfigVRCtrl : NGUIWindow
- {
- public static ConfigVRCtrl instance
- {
- get
- {
- Transform transform = null;
- GameObject gameObject = GameObject.Find("SystemUI Root");
- if (gameObject)
- {
- transform = gameObject.transform;
- }
- else
- {
- NDebug.Assert("SystemUI Rootが見つかりません", false);
- }
- if (ConfigVRCtrl.m_Instance == null)
- {
- Transform transform2 = transform.Find("ConfigVR");
- if (transform2 != null)
- {
- ConfigVRCtrl.m_Instance = transform2.GetComponent<ConfigVRCtrl>();
- }
- }
- if (ConfigVRCtrl.m_Instance == null)
- {
- string path = "SystemUI/Config/Prefab/ConfigVR";
- GameObject gameObject2 = Resources.Load<GameObject>(path);
- if (gameObject2 == null)
- {
- NDebug.Assert("[ConfigVRCtrl] VRコンフィグUIのプレハブが存在しません", false);
- }
- ConfigVRCtrl.m_Instance = UnityEngine.Object.Instantiate<GameObject>(gameObject2).GetComponent<ConfigVRCtrl>();
- ConfigVRCtrl.m_Instance.transform.SetParent(transform, false);
- ConfigVRCtrl.m_Instance.transform.localPosition = new Vector3(0f, -11f, 0f);
- ConfigVRCtrl.m_Instance.transform.localRotation = Quaternion.identity;
- ConfigVRCtrl.m_Instance.transform.localScale = Vector3.one;
- }
- if (ConfigVRCtrl.m_Instance == null)
- {
- NDebug.Assert("[ConfigVRCtrl] VRコンフィグUIのインスタンス取得に失敗しました", false);
- }
- return ConfigVRCtrl.m_Instance;
- }
- }
- public static bool IsOpen()
- {
- return ConfigVRCtrl.instance != null && ConfigVRCtrl.instance.gameObject.activeSelf;
- }
- public static void Open(Action onClickOK = null)
- {
- if (ConfigVRCtrl.IsOpen())
- {
- Debug.Log("[ConfigVRCtrl] VRConfigは既に開かれています。");
- return;
- }
- ConfigVRCtrl component = ConfigVRCtrl.instance.GetComponent<ConfigVRCtrl>();
- NGUIWindow component2 = ConfigVRCtrl.instance.GetComponent<NGUIWindow>();
- component.onClickOK = onClickOK;
- component.LoadConfigData();
- component2.Open(0.25f, null);
- }
- public static void Close(bool isExecutionOK = true)
- {
- ConfigVRCtrl component = ConfigVRCtrl.instance.GetComponent<ConfigVRCtrl>();
- NGUIWindow component2 = ConfigVRCtrl.instance.GetComponent<NGUIWindow>();
- component2.Close(0.25f, delegate
- {
- UnityEngine.Object.Destroy(ConfigVRCtrl.instance.gameObject);
- });
- if (isExecutionOK && component.onClickOK != null)
- {
- component.onClickOK();
- }
- }
- private Dictionary<ConfigVRCtrl.TypeItem, ConfigVRCtrl.ParentItem> dicItem
- {
- get
- {
- return this.m_DicItem;
- }
- set
- {
- this.m_DicItem = value;
- }
- }
- private CMSystem cmSystem
- {
- get
- {
- return GameMain.Instance.CMSystem;
- }
- }
- private void Log(object message)
- {
- Debug.Log(message);
- }
- public Action onClickOK { get; set; }
- public Action onClickChangeConfig { get; set; }
- protected override void Awake()
- {
- base.Awake();
- this.SetupAllUI();
- this.LoadConfigData();
- this.ItemSwitchingOfDevice();
- }
- private void SetupAllUI()
- {
- base.cachedObjectDic.CacheChildObject<UIButton>(base.gameObject, "OK", "ButtonOK");
- EventDelegate.Add(base.cachedObjectDic.GetCache<UIButton>("ButtonOK").onClick, delegate()
- {
- ConfigVRCtrl.Close(true);
- });
- base.cachedObjectDic.CacheChildObject<UIButton>(base.gameObject, "Change Normal", "ButtonChange");
- EventDelegate.Add(base.cachedObjectDic.GetCache<UIButton>("ButtonChange").onClick, delegate()
- {
- ConfigVRCtrl.Close(true);
- BaseMgr<ConfigMgr>.Instance.OpenConfigPanel();
- });
- base.cachedObjectDic.CacheChildObject<UISprite>(base.gameObject, "BG", "Background");
- base.cachedObjectDic.CacheChildObject<UILabel>(base.gameObject, "label notes", "注意書き");
- base.cachedObjectDic.GetCache<UILabel>("注意書き").gameObject.SetActive(!GameMain.Instance.VRMode);
- UIGrid uigrid = base.cachedObjectDic.CacheChildObject<UIGrid>(base.gameObject, "DataList/ScrollView/Grid", "Parent Grid");
- this.dicItem = new Dictionary<ConfigVRCtrl.TypeItem, ConfigVRCtrl.ParentItem>();
- this.SetupCommonUI(uigrid.gameObject);
- this.SetupViveUI(uigrid.gameObject);
- this.SetupOculusTouchUI(uigrid.gameObject);
- this.SetupHMDOnlyUI(uigrid.gameObject);
- this.Setup2DModeUI(uigrid.gameObject);
- }
- private void SetupCommonUI(GameObject parentItem)
- {
- 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)
- {
- this.cmSystem.VRCameraHeightStand = value;
- this.Log("身長 : " + this.cmSystem.VRCameraHeightStand);
- }));
- 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)
- {
- this.cmSystem.VRCameraHeightSit = value;
- this.Log("座高 : " + this.cmSystem.VRCameraHeightSit);
- }));
- 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)
- {
- this.cmSystem.VRCameraMoveSpeedKey = value;
- this.Log("カメラ移動速度(キーボード) : " + this.cmSystem.VRCameraMoveSpeedKey);
- }));
- 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)
- {
- this.cmSystem.VRCameraRotSpeedKey = value;
- this.Log("カメラ回転速度(キーボード) : " + this.cmSystem.VRCameraRotSpeedKey);
- }));
- this.dicItem.Add(ConfigVRCtrl.TypeItem.CommonShowDesktopScreen, this.SetupButton(parentItem, "common show desktop screen", delegate(bool isLeft)
- {
- if (isLeft && !GameMain.Instance.BgMgr.isShowDesktopScreen)
- {
- GameMain.Instance.BgMgr.SetShowDesktopScreen(true);
- }
- else if (!isLeft && GameMain.Instance.BgMgr.isShowDesktopScreen)
- {
- GameMain.Instance.BgMgr.SetShowDesktopScreen(false);
- }
- this.Log("デスクトップスクリーンの表示 + " + GameMain.Instance.BgMgr.isShowDesktopScreen);
- }));
- }
- private void SetupViveUI(GameObject parentItem)
- {
- this.dicItem.Add(ConfigVRCtrl.TypeItem.ViveFloorHeightType, this.SetupButton(parentItem, "vive floor height", delegate(bool isLeft)
- {
- this.cmSystem.OvrCameraHeightType = ((!isLeft) ? CMSystem.OVR_CAM_HEIGHT_TYPE.VR : CMSystem.OVR_CAM_HEIGHT_TYPE.REAL);
- this.Log("Vive\u3000床の高さ検出法 : " + this.cmSystem.OvrCameraHeightType.ToString());
- }));
- this.dicItem.Add(ConfigVRCtrl.TypeItem.ViveMoveMode, this.SetupButton(parentItem, "vive move mode", delegate(bool isLeft)
- {
- this.cmSystem.SConfig.OvrMoveType = ((!isLeft) ? CMSystem.SerializeConfig.OVR_MOVE_TYPE.DIRECTION : CMSystem.SerializeConfig.OVR_MOVE_TYPE.WARP_DRAW_STEPROT);
- this.Log("Vive\u3000移動方法 : " + this.cmSystem.SConfig.OvrMoveType);
- if (isLeft)
- {
- this.SetItemShowFlag(ConfigVRCtrl.TypeItem.ViveSnapRotateEnable, true);
- this.SetItemShowFlag(ConfigVRCtrl.TypeItem.ViveSnapRotateRate, true);
- this.SetItemShowFlag(ConfigVRCtrl.TypeItem.ViveOldRotatePad, false);
- this.SetItemShowFlag(ConfigVRCtrl.TypeItem.ViveOldMovePad, false);
- this.SetItemShowFlag(ConfigVRCtrl.TypeItem.ViveOldMoveRotatePadAriaRate, false);
- }
- else
- {
- this.SetItemShowFlag(ConfigVRCtrl.TypeItem.ViveSnapRotateEnable, false);
- this.SetItemShowFlag(ConfigVRCtrl.TypeItem.ViveSnapRotateRate, false);
- this.SetItemShowFlag(ConfigVRCtrl.TypeItem.ViveOldRotatePad, true);
- this.SetItemShowFlag(ConfigVRCtrl.TypeItem.ViveOldMovePad, true);
- this.SetItemShowFlag(ConfigVRCtrl.TypeItem.ViveOldMoveRotatePadAriaRate, true);
- }
- }));
- this.dicItem.Add(ConfigVRCtrl.TypeItem.ViveSnapRotateEnable, this.SetupButton(parentItem, "vive use snap rotate", delegate(bool isLeft)
- {
- this.cmSystem.OvrUseSnapRotate = isLeft;
- this.Log("Vive\u3000パッド端で回転 : " + this.cmSystem.OvrUseSnapRotate);
- }));
- 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)
- {
- this.cmSystem.OvrUseSnapRotateRate = (int)value;
- this.Log("Vive\u3000パッド端の回転量 : " + this.cmSystem.OvrUseSnapRotateRate);
- }));
- this.dicItem.Add(ConfigVRCtrl.TypeItem.ViveOldRotatePad, this.SetupButton(parentItem, "vive old rotate pad", delegate(bool isLeft)
- {
- this.cmSystem.SConfig.OvrViveSmoothRotatePadAreaUse = isLeft;
- this.Log("Vive\u3000(スムーズ移動)パッド左右端で回転 : " + this.cmSystem.SConfig.OvrViveSmoothRotatePadAreaUse);
- }));
- this.dicItem.Add(ConfigVRCtrl.TypeItem.ViveOldMovePad, this.SetupButton(parentItem, "vive old move pad", delegate(bool isLeft)
- {
- this.cmSystem.SConfig.OvrViveSmoothupDownPadAreaUse = isLeft;
- this.Log("Vive\u3000(スムーズ移動)パッド上下端で上下 : " + this.cmSystem.SConfig.OvrViveSmoothupDownPadAreaUse);
- }));
- this.dicItem.Add(ConfigVRCtrl.TypeItem.ViveOldMoveRotatePadAriaRate, this.SetupSlider(parentItem, "vive old rotate pad aria rate", 10f, 80f, delegate(float value)
- {
- this.cmSystem.SConfig.OvrViveSmoothRotatePadAriaRate = value;
- this.Log("Vive\u3000(スムーズ移動)端の領域 : " + this.cmSystem.SConfig.OvrViveSmoothRotatePadAriaRate);
- }));
- this.dicItem.Add(ConfigVRCtrl.TypeItem.ViveDDTouchToClick, this.SetupButton(parentItem, "vive dd touch to click", delegate(bool isLeft)
- {
- this.cmSystem.SConfig.OvrDDTouchToClick = isLeft;
- this.Log("Vive\u3000デスクトップスクリーンに触れるとクリック : " + this.cmSystem.SConfig.OvrDDTouchToClick);
- }));
- this.dicItem.Add(ConfigVRCtrl.TypeItem.ViveOvrTabletFrameHideWhenMsgWndVisible, this.SetupButton(parentItem, "vive OvrTabletFrameHideWhenMsgWndVisible", delegate(bool isLeft)
- {
- this.cmSystem.SConfig.OvrTabletFrameHideWhenMsgWndVisible = isLeft;
- this.Log("Vive\u3000メッセージ中タブレット枠を非表示 : " + this.cmSystem.SConfig.OvrTabletFrameHideWhenMsgWndVisible);
- }));
- }
- private void SetupOculusTouchUI(GameObject parentItem)
- {
- this.dicItem.Add(ConfigVRCtrl.TypeItem.TouchMoveMode, this.SetupButton(parentItem, "touch move mode", delegate(bool isLeft)
- {
- this.cmSystem.SConfig.OvrMoveType = ((!isLeft) ? CMSystem.SerializeConfig.OVR_MOVE_TYPE.DIRECTION : CMSystem.SerializeConfig.OVR_MOVE_TYPE.WARP_DRAW_STEPROT);
- this.Log("Touch\u3000移動方法 : " + this.cmSystem.SConfig.OvrMoveType);
- if (isLeft)
- {
- this.SetItemShowFlag(ConfigVRCtrl.TypeItem.TouchSnapRotateEnable, true);
- this.SetItemShowFlag(ConfigVRCtrl.TypeItem.TouchSnapRotateRate, true);
- this.SetItemShowFlag(ConfigVRCtrl.TypeItem.TouchOldMoveStick, false);
- this.SetItemShowFlag(ConfigVRCtrl.TypeItem.TouchOldRotateStick, false);
- }
- else
- {
- this.SetItemShowFlag(ConfigVRCtrl.TypeItem.TouchSnapRotateEnable, false);
- this.SetItemShowFlag(ConfigVRCtrl.TypeItem.TouchSnapRotateRate, false);
- this.SetItemShowFlag(ConfigVRCtrl.TypeItem.TouchOldMoveStick, true);
- this.SetItemShowFlag(ConfigVRCtrl.TypeItem.TouchOldRotateStick, true);
- }
- }));
- this.dicItem.Add(ConfigVRCtrl.TypeItem.TouchSnapRotateEnable, this.SetupButton(parentItem, "touch use snap rotate", delegate(bool isLeft)
- {
- this.cmSystem.OvrUseSnapRotate = isLeft;
- this.Log("Touch\u3000スティック傾けで回転 : " + this.cmSystem.OvrUseSnapRotate);
- }));
- 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)
- {
- this.cmSystem.OvrUseSnapRotateRate = (int)value;
- this.Log("Touch\u3000スティック傾けの回転量 : " + this.cmSystem.OvrUseSnapRotateRate);
- }));
- this.dicItem.Add(ConfigVRCtrl.TypeItem.TouchOldMoveStick, this.SetupButton(parentItem, "touch old move stick", delegate(bool isLeft)
- {
- this.cmSystem.SConfig.OvrRiftTriggerStickUpDown = isLeft;
- this.Log("Touch\u3000(スムーズ移動)グリップとスティックで回転 : " + this.cmSystem.SConfig.OvrRiftTriggerStickUpDown);
- }));
- this.dicItem.Add(ConfigVRCtrl.TypeItem.TouchOldRotateStick, this.SetupButton(parentItem, "touch old rotate stick", delegate(bool isLeft)
- {
- this.cmSystem.SConfig.OvrRiftGripStickRotate = isLeft;
- this.Log("Touch\u3000(スムーズ移動)トリガーとスティックで上下 : " + this.cmSystem.SConfig.OvrRiftGripStickRotate);
- }));
- this.dicItem.Add(ConfigVRCtrl.TypeItem.TouchDDTouchToClick, this.SetupButton(parentItem, "touch dd touch to click", delegate(bool isLeft)
- {
- this.cmSystem.SConfig.OvrDDTouchToClick = isLeft;
- this.Log("Touch\u3000デスクトップスクリーンに触れるとクリック : " + this.cmSystem.SConfig.OvrDDTouchToClick);
- }));
- this.dicItem.Add(ConfigVRCtrl.TypeItem.TouchOvrTabletFrameHideWhenMsgWndVisible, this.SetupButton(parentItem, "touch OvrTabletFrameHideWhenMsgWndVisible", delegate(bool isLeft)
- {
- this.cmSystem.SConfig.OvrTabletFrameHideWhenMsgWndVisible = isLeft;
- this.Log("Touch\u3000メッセージ中タブレット枠を非表示 : " + this.cmSystem.SConfig.OvrTabletFrameHideWhenMsgWndVisible);
- }));
- }
- private void SetupHMDOnlyUI(GameObject parentItem)
- {
- this.dicItem.Add(ConfigVRCtrl.TypeItem.HMDOnlyCameraPlaneMovement, this.SetupButton(parentItem, "no touch plane movement", delegate(bool isLeft)
- {
- this.cmSystem.VRCameraPlaneMove = isLeft;
- this.Log("HMDのみ\u3000カメラの平行移動 : " + this.cmSystem.VRCameraPlaneMove);
- }));
- this.dicItem.Add(ConfigVRCtrl.TypeItem.HMDOnlyMouseRotateEnable, this.SetupButton(parentItem, "no touch mouse rot enable", delegate(bool isLeft)
- {
- this.cmSystem.OvrMouseRot = isLeft;
- this.Log("HMDのみ\u3000マウスでカメラ回転 : " + this.cmSystem.OvrMouseRot);
- }));
- 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)
- {
- this.cmSystem.VRCameraRotSpeedMouse = value;
- this.Log("HMDのみ\u3000マウスのカメラ回転速度 : " + this.cmSystem.VRCameraRotSpeedMouse);
- }));
- }
- private void Setup2DModeUI(GameObject parentItem)
- {
- 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)
- {
- this.cmSystem.VRCameraRotSpeedMouse = value;
- this.Log("2Dモード\u3000マウスのカメラ回転速度 : " + this.cmSystem.VRCameraRotSpeedMouse);
- }));
- this.dicItem.Add(ConfigVRCtrl.TypeItem.DummyMouseRotateInverse, this.SetupButton(parentItem, "2d mouse rot inverse", delegate(bool isLeft)
- {
- this.cmSystem.VRCamRotDownUp = isLeft;
- this.Log("2Dモード\u3000マウスのカメラ反転 : " + this.cmSystem.VRCamRotDownUp);
- }));
- this.dicItem.Add(ConfigVRCtrl.TypeItem.DummyCameraPlaneMovement, this.SetupButton(parentItem, "2d plane movement", delegate(bool isLeft)
- {
- this.cmSystem.VRCameraPlaneMove = isLeft;
- this.Log("2Dモード\u3000カメラの平行移動 : " + this.cmSystem.VRCameraPlaneMove);
- }));
- this.dicItem.Add(ConfigVRCtrl.TypeItem.DummyShowMan, this.SetupButton(parentItem, "2d show man", delegate(bool isLeft)
- {
- this.cmSystem.VRManShow = isLeft;
- this.Log("2Dモード\u3000男の表示 : " + this.cmSystem.VRManShow);
- }));
- 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)
- {
- this.cmSystem.VRCameraFov = value;
- this.Log("2Dモード\u3000カメラの画角 : " + this.cmSystem.VRCameraFov);
- }));
- Collider[] componentsInChildren = this.dicItem[ConfigVRCtrl.TypeItem.DummyCameraFov].GetComponentsInChildren<Collider>();
- foreach (Collider collider in componentsInChildren)
- {
- UIEventTrigger uieventTrigger = collider.gameObject.AddComponent<UIEventTrigger>();
- EventDelegate.Add(uieventTrigger.onPress, delegate()
- {
- UISprite cache = base.cachedObjectDic.GetCache<UISprite>("Background");
- TweenAlpha.Begin(cache.gameObject, 0.25f, 0.25f);
- });
- EventDelegate.Add(uieventTrigger.onRelease, delegate()
- {
- UISprite cache = base.cachedObjectDic.GetCache<UISprite>("Background");
- TweenAlpha.Begin(cache.gameObject, 0.25f, 1f);
- });
- }
- }
- private ConfigVRCtrl.ParentSlider SetupSlider(GameObject parent, string objName, float min, float max, Action<float> onValueChanged)
- {
- ConfigVRCtrl.ParentSlider parentSlider = UTY.GetChildObject(parent, objName, false).AddComponent<ConfigVRCtrl.ParentSlider>();
- parentSlider.min = min;
- parentSlider.max = max;
- ConfigVRCtrl.ParentSlider parentSlider2 = parentSlider;
- parentSlider2.onValueChanged = (Action<float>)Delegate.Combine(parentSlider2.onValueChanged, onValueChanged);
- return parentSlider;
- }
- private ConfigVRCtrl.ParentButton SetupButton(GameObject parent, string objName, Action<bool> onClickIsLeft)
- {
- ConfigVRCtrl.ParentButton parentButton = UTY.GetChildObject(parent, objName, false).AddComponent<ConfigVRCtrl.ParentButton>();
- ConfigVRCtrl.ParentButton parentButton2 = parentButton;
- parentButton2.onClickIsLeft = (Action<bool>)Delegate.Combine(parentButton2.onClickIsLeft, onClickIsLeft);
- return parentButton;
- }
- private void ItemSwitchingOfDevice()
- {
- if (this.dicItem == null)
- {
- Debug.Log("[ConfigVRCtrl] まだ項目の初期化は行っていません");
- return;
- }
- GameMain.VRDeviceType vrdeviceTypeID = GameMain.Instance.VRDeviceTypeID;
- Dictionary<ConfigVRCtrl.TypeItem, bool> dictionary = new Dictionary<ConfigVRCtrl.TypeItem, bool>();
- Array values = Enum.GetValues(typeof(ConfigVRCtrl.TypeItem));
- for (int i = 0; i < values.Length; i++)
- {
- dictionary.Add((ConfigVRCtrl.TypeItem)values.GetValue(i), false);
- }
- dictionary[ConfigVRCtrl.TypeItem.CommonCameraMoveSpeed] = true;
- dictionary[ConfigVRCtrl.TypeItem.CommonCameraRotSpeed] = true;
- dictionary[ConfigVRCtrl.TypeItem.CommonEyeHeight] = true;
- dictionary[ConfigVRCtrl.TypeItem.CommonSitHeight] = true;
- dictionary[ConfigVRCtrl.TypeItem.CommonShowDesktopScreen] = true;
- if (vrdeviceTypeID == GameMain.VRDeviceType.NON)
- {
- dictionary[ConfigVRCtrl.TypeItem.DummyCameraFov] = true;
- dictionary[ConfigVRCtrl.TypeItem.DummyCameraPlaneMovement] = true;
- dictionary[ConfigVRCtrl.TypeItem.DummyMouseRotateInverse] = true;
- dictionary[ConfigVRCtrl.TypeItem.DummyMouseRotateSpeed] = true;
- dictionary[ConfigVRCtrl.TypeItem.DummyShowMan] = true;
- }
- else if (vrdeviceTypeID == GameMain.VRDeviceType.RIFT)
- {
- dictionary[ConfigVRCtrl.TypeItem.HMDOnlyCameraPlaneMovement] = true;
- dictionary[ConfigVRCtrl.TypeItem.HMDOnlyMouseRotateEnable] = true;
- dictionary[ConfigVRCtrl.TypeItem.HMDOnlyMouseRotateSpeed] = true;
- }
- else if (vrdeviceTypeID == GameMain.VRDeviceType.FOVE)
- {
- dictionary[ConfigVRCtrl.TypeItem.HMDOnlyCameraPlaneMovement] = true;
- dictionary[ConfigVRCtrl.TypeItem.HMDOnlyMouseRotateEnable] = true;
- dictionary[ConfigVRCtrl.TypeItem.HMDOnlyMouseRotateSpeed] = true;
- }
- else if (vrdeviceTypeID == GameMain.VRDeviceType.VIVE)
- {
- dictionary[ConfigVRCtrl.TypeItem.ViveFloorHeightType] = true;
- dictionary[ConfigVRCtrl.TypeItem.ViveMoveMode] = true;
- dictionary[ConfigVRCtrl.TypeItem.ViveSnapRotateEnable] = (this.cmSystem.SConfig.OvrMoveType == CMSystem.SerializeConfig.OVR_MOVE_TYPE.WARP_DRAW_STEPROT);
- dictionary[ConfigVRCtrl.TypeItem.ViveSnapRotateRate] = (this.cmSystem.SConfig.OvrMoveType == CMSystem.SerializeConfig.OVR_MOVE_TYPE.WARP_DRAW_STEPROT);
- dictionary[ConfigVRCtrl.TypeItem.ViveOldRotatePad] = (this.cmSystem.SConfig.OvrMoveType == CMSystem.SerializeConfig.OVR_MOVE_TYPE.DIRECTION);
- dictionary[ConfigVRCtrl.TypeItem.ViveOldMovePad] = (this.cmSystem.SConfig.OvrMoveType == CMSystem.SerializeConfig.OVR_MOVE_TYPE.DIRECTION);
- dictionary[ConfigVRCtrl.TypeItem.ViveOldMoveRotatePadAriaRate] = (this.cmSystem.SConfig.OvrMoveType == CMSystem.SerializeConfig.OVR_MOVE_TYPE.DIRECTION);
- dictionary[ConfigVRCtrl.TypeItem.ViveDDTouchToClick] = false;
- dictionary[ConfigVRCtrl.TypeItem.ViveOvrTabletFrameHideWhenMsgWndVisible] = true;
- }
- else if (vrdeviceTypeID == GameMain.VRDeviceType.RIFT_TOUCH)
- {
- dictionary[ConfigVRCtrl.TypeItem.TouchMoveMode] = true;
- dictionary[ConfigVRCtrl.TypeItem.TouchSnapRotateEnable] = (this.cmSystem.SConfig.OvrMoveType == CMSystem.SerializeConfig.OVR_MOVE_TYPE.WARP_DRAW_STEPROT);
- dictionary[ConfigVRCtrl.TypeItem.TouchSnapRotateRate] = (this.cmSystem.SConfig.OvrMoveType == CMSystem.SerializeConfig.OVR_MOVE_TYPE.WARP_DRAW_STEPROT);
- dictionary[ConfigVRCtrl.TypeItem.TouchOldRotateStick] = (this.cmSystem.SConfig.OvrMoveType == CMSystem.SerializeConfig.OVR_MOVE_TYPE.DIRECTION);
- dictionary[ConfigVRCtrl.TypeItem.TouchOldMoveStick] = (this.cmSystem.SConfig.OvrMoveType == CMSystem.SerializeConfig.OVR_MOVE_TYPE.DIRECTION);
- dictionary[ConfigVRCtrl.TypeItem.TouchDDTouchToClick] = false;
- dictionary[ConfigVRCtrl.TypeItem.TouchOvrTabletFrameHideWhenMsgWndVisible] = true;
- }
- dictionary[ConfigVRCtrl.TypeItem.DummyShowMan] = false;
- foreach (KeyValuePair<ConfigVRCtrl.TypeItem, bool> keyValuePair in dictionary)
- {
- this.dicItem[keyValuePair.Key].gameObject.SetActive(keyValuePair.Value);
- }
- UIGrid cache = base.cachedObjectDic.GetCache<UIGrid>("Parent Grid");
- cache.Reposition();
- }
- private void SetItemShowFlag(ConfigVRCtrl.TypeItem type, bool isShow)
- {
- if (this.dicItem == null)
- {
- Debug.Log("[ConfigVRCtrl] まだ項目の初期化は行っていません");
- return;
- }
- if (this.dicItem[type].gameObject.activeSelf == isShow)
- {
- return;
- }
- this.dicItem[type].gameObject.SetActive(isShow);
- UIGrid cache = base.cachedObjectDic.GetCache<UIGrid>("Parent Grid");
- cache.Reposition();
- }
- private void LoadConfigData()
- {
- if (this.dicItem == null)
- {
- Debug.Log("[ConfigVRCtrl] まだ項目の初期化は行っていません");
- return;
- }
- foreach (KeyValuePair<ConfigVRCtrl.TypeItem, ConfigVRCtrl.ParentItem> keyValuePair in this.dicItem)
- {
- switch (keyValuePair.Key)
- {
- case ConfigVRCtrl.TypeItem.CommonEyeHeight:
- keyValuePair.Value.Set(this.cmSystem.VRCameraHeightStand);
- break;
- case ConfigVRCtrl.TypeItem.CommonSitHeight:
- keyValuePair.Value.Set(this.cmSystem.VRCameraHeightSit);
- break;
- case ConfigVRCtrl.TypeItem.CommonCameraMoveSpeed:
- keyValuePair.Value.Set(this.cmSystem.VRCameraMoveSpeedKey);
- break;
- case ConfigVRCtrl.TypeItem.CommonCameraRotSpeed:
- keyValuePair.Value.Set(this.cmSystem.VRCameraRotSpeedKey);
- break;
- case ConfigVRCtrl.TypeItem.CommonShowDesktopScreen:
- keyValuePair.Value.Set(GameMain.Instance.BgMgr.isShowDesktopScreen);
- break;
- case ConfigVRCtrl.TypeItem.ViveFloorHeightType:
- keyValuePair.Value.Set(this.cmSystem.OvrCameraHeightType == CMSystem.OVR_CAM_HEIGHT_TYPE.REAL);
- break;
- case ConfigVRCtrl.TypeItem.ViveSnapRotateEnable:
- keyValuePair.Value.Set(this.cmSystem.OvrUseSnapRotate);
- break;
- case ConfigVRCtrl.TypeItem.ViveSnapRotateRate:
- keyValuePair.Value.Set((float)this.cmSystem.OvrUseSnapRotateRate);
- break;
- case ConfigVRCtrl.TypeItem.ViveMoveMode:
- keyValuePair.Value.Set(this.cmSystem.SConfig.OvrMoveType == CMSystem.SerializeConfig.OVR_MOVE_TYPE.WARP_DRAW_STEPROT);
- break;
- case ConfigVRCtrl.TypeItem.ViveOldRotatePad:
- keyValuePair.Value.Set(this.cmSystem.SConfig.OvrViveSmoothRotatePadAreaUse);
- break;
- case ConfigVRCtrl.TypeItem.ViveOldMovePad:
- keyValuePair.Value.Set(this.cmSystem.SConfig.OvrViveSmoothupDownPadAreaUse);
- break;
- case ConfigVRCtrl.TypeItem.ViveOldMoveRotatePadAriaRate:
- keyValuePair.Value.Set(this.cmSystem.SConfig.OvrViveSmoothRotatePadAriaRate);
- break;
- case ConfigVRCtrl.TypeItem.ViveDDTouchToClick:
- keyValuePair.Value.Set(this.cmSystem.SConfig.OvrDDTouchToClick);
- break;
- case ConfigVRCtrl.TypeItem.ViveOvrTabletFrameHideWhenMsgWndVisible:
- keyValuePair.Value.Set(this.cmSystem.SConfig.OvrTabletFrameHideWhenMsgWndVisible);
- break;
- case ConfigVRCtrl.TypeItem.TouchSnapRotateEnable:
- keyValuePair.Value.Set(this.cmSystem.OvrUseSnapRotate);
- break;
- case ConfigVRCtrl.TypeItem.TouchSnapRotateRate:
- keyValuePair.Value.Set((float)this.cmSystem.OvrUseSnapRotateRate);
- break;
- case ConfigVRCtrl.TypeItem.TouchMoveMode:
- keyValuePair.Value.Set(this.cmSystem.SConfig.OvrMoveType == CMSystem.SerializeConfig.OVR_MOVE_TYPE.WARP_DRAW_STEPROT);
- break;
- case ConfigVRCtrl.TypeItem.TouchOldRotateStick:
- keyValuePair.Value.Set(this.cmSystem.SConfig.OvrRiftGripStickRotate);
- break;
- case ConfigVRCtrl.TypeItem.TouchOldMoveStick:
- keyValuePair.Value.Set(this.cmSystem.SConfig.OvrRiftTriggerStickUpDown);
- break;
- case ConfigVRCtrl.TypeItem.TouchDDTouchToClick:
- keyValuePair.Value.Set(this.cmSystem.SConfig.OvrDDTouchToClick);
- break;
- case ConfigVRCtrl.TypeItem.TouchOvrTabletFrameHideWhenMsgWndVisible:
- keyValuePair.Value.Set(this.cmSystem.SConfig.OvrTabletFrameHideWhenMsgWndVisible);
- break;
- case ConfigVRCtrl.TypeItem.HMDOnlyCameraPlaneMovement:
- keyValuePair.Value.Set(this.cmSystem.VRCameraPlaneMove);
- break;
- case ConfigVRCtrl.TypeItem.HMDOnlyMouseRotateEnable:
- keyValuePair.Value.Set(this.cmSystem.OvrMouseRot);
- break;
- case ConfigVRCtrl.TypeItem.HMDOnlyMouseRotateSpeed:
- keyValuePair.Value.Set(this.cmSystem.VRCameraRotSpeedMouse);
- break;
- case ConfigVRCtrl.TypeItem.DummyMouseRotateSpeed:
- keyValuePair.Value.Set(this.cmSystem.VRCameraRotSpeedMouse);
- break;
- case ConfigVRCtrl.TypeItem.DummyMouseRotateInverse:
- keyValuePair.Value.Set(this.cmSystem.VRCamRotDownUp);
- break;
- case ConfigVRCtrl.TypeItem.DummyCameraPlaneMovement:
- keyValuePair.Value.Set(this.cmSystem.VRCameraPlaneMove);
- break;
- case ConfigVRCtrl.TypeItem.DummyShowMan:
- keyValuePair.Value.Set(this.cmSystem.VRManShow);
- break;
- case ConfigVRCtrl.TypeItem.DummyCameraFov:
- keyValuePair.Value.Set(this.cmSystem.VRCameraFov);
- break;
- default:
- Debug.LogError("[ConfigVRCtrl] 種類「" + keyValuePair.Key + "」のセッターがない");
- NDebug.Assert("[ConfigVRCtrl] 種類「" + keyValuePair.Key + "」のセッターがない", false);
- break;
- }
- }
- }
- private void OnApplicationQuit()
- {
- this.m_IsQuittingApplication = true;
- }
- private void OnDestroy()
- {
- if (this.m_IsQuittingApplication)
- {
- return;
- }
- if (ConfigVRCtrl.instance != null && ConfigVRCtrl.instance == this)
- {
- ConfigVRCtrl.m_Instance = null;
- }
- if (this.dicItem != null)
- {
- this.dicItem.Clear();
- this.dicItem = null;
- }
- this.onClickOK = null;
- }
- private static ConfigVRCtrl m_Instance;
- private static readonly Vector2 COMMON_EYE_HEIGHT_VALUE = new Vector2(1.5f, 1.8f);
- private static readonly Vector2 COMMON_SITTING_HEIGHT_VALUE = new Vector2(0.7f, 1f);
- private static readonly Vector2 COMMON_CAMERA_MOVE_VALUE = new Vector2(0f, 1f);
- private static readonly Vector2 COMMON_CAMERA_ROT_VALUE = new Vector2(0f, 1f);
- private static readonly Vector2 VR_CAMERA_SNAP_ROT_VALUE = new Vector2(10f, 80f);
- private static readonly Vector2 VR_CAMERA_MOUSE_ROT_VALUE = new Vector2(0f, 1f);
- private static readonly Vector2 VR2D_CAMERA_FOV_VALUE = new Vector2(30f, 60f);
- private Dictionary<ConfigVRCtrl.TypeItem, ConfigVRCtrl.ParentItem> m_DicItem;
- private bool m_IsQuittingApplication;
- private abstract class ParentItem : MonoBehaviour
- {
- public UILabel label
- {
- get
- {
- return this.m_Label;
- }
- }
- protected virtual void Awake()
- {
- this.m_Label = UTY.GetChildObject(base.gameObject, "name", false).GetComponent<UILabel>();
- if (this.m_Label == null)
- {
- string message = "[ConfigVRCtrl] " + base.gameObject.name + "/nameに、\nUILabel のコンポーネントがありませんでした";
- NDebug.Assert(message, false);
- Debug.LogError(message);
- }
- }
- public abstract void Set(object value);
- private UILabel m_Label;
- }
- private class ParentSlider : ConfigVRCtrl.ParentItem
- {
- public UISlider slider
- {
- get
- {
- return this.m_Slider;
- }
- private set
- {
- this.m_Slider = value;
- }
- }
- public float normalizedValue
- {
- get
- {
- return this.slider.value;
- }
- set
- {
- this.slider.value = value;
- }
- }
- public float min
- {
- get
- {
- return this.m_Min;
- }
- set
- {
- this.m_Min = value;
- }
- }
- public float max
- {
- get
- {
- return this.m_Max;
- }
- set
- {
- this.m_Max = value;
- }
- }
- public float value
- {
- get
- {
- return Mathf.Lerp(this.min, this.max, this.normalizedValue);
- }
- set
- {
- this.normalizedValue = Mathf.InverseLerp(this.min, this.max, value);
- }
- }
- public Action<float> onValueChanged { get; set; }
- public Action onDragFinished { get; set; }
- protected override void Awake()
- {
- base.Awake();
- GameObject childObject = UTY.GetChildObject(base.gameObject, "slider", false);
- this.slider = childObject.GetComponent<UISlider>();
- if (this.slider == null)
- {
- string message = string.Concat(new string[]
- {
- "[ConfigVRCtrl] ",
- base.gameObject.name,
- "/",
- childObject.name,
- "に、\nUISlider のコンポーネントがありませんでした"
- });
- NDebug.Assert(message, false);
- Debug.LogError(message);
- }
- EventDelegate.Add(this.slider.onChange, delegate()
- {
- if (this.onValueChanged != null)
- {
- this.onValueChanged(this.value);
- }
- });
- UISlider slider = this.slider;
- slider.onDragFinished = (UIProgressBar.OnDragFinished)Delegate.Combine(slider.onDragFinished, new UIProgressBar.OnDragFinished(delegate()
- {
- if (this.onDragFinished != null)
- {
- this.onDragFinished();
- }
- }));
- }
- public override void Set(object value)
- {
- this.value = (float)value;
- }
- private UISlider m_Slider;
- private float m_Min;
- private float m_Max = 1f;
- }
- private class ParentButton : ConfigVRCtrl.ParentItem
- {
- public UIButton buttonRight
- {
- get
- {
- return this.m_ButtonRight;
- }
- private set
- {
- this.m_ButtonRight = value;
- }
- }
- public UIButton buttonLeft
- {
- get
- {
- return this.m_ButtonLeft;
- }
- private set
- {
- this.m_ButtonLeft = value;
- }
- }
- public Action<bool> onClickIsLeft { get; set; }
- protected override void Awake()
- {
- base.Awake();
- GameObject childObject = UTY.GetChildObject(base.gameObject, "button right", false);
- this.buttonRight = childObject.GetComponent<UIButton>();
- if (this.buttonRight == null)
- {
- string message = string.Concat(new string[]
- {
- "[ConfigVRCtrl] ",
- base.gameObject.name,
- "/",
- childObject.name,
- "に、\nUIButton のコンポーネントがありませんでした"
- });
- NDebug.Assert(message, false);
- Debug.LogError(message);
- }
- childObject = UTY.GetChildObject(base.gameObject, "button left", false);
- this.buttonLeft = childObject.GetComponent<UIButton>();
- if (this.buttonLeft == null)
- {
- string message2 = string.Concat(new string[]
- {
- "[ConfigVRCtrl] ",
- base.gameObject.name,
- "/",
- childObject.name,
- "に、\nUIButton のコンポーネントがありませんでした"
- });
- NDebug.Assert(message2, false);
- Debug.LogError(message2);
- }
- EventDelegate.Add(this.buttonRight.onClick, delegate()
- {
- if (this.onClickIsLeft != null)
- {
- this.onClickIsLeft(false);
- }
- this.OnClickButton(false);
- });
- EventDelegate.Add(this.buttonLeft.onClick, delegate()
- {
- if (this.onClickIsLeft != null)
- {
- this.onClickIsLeft(true);
- }
- this.OnClickButton(true);
- });
- }
- private void OnClickButton(bool isLeft)
- {
- this.buttonLeft.defaultColor = ((!isLeft) ? ConfigVRCtrl.ParentButton.ButtonDefaultColor : ConfigVRCtrl.ParentButton.ButtonClickedColor);
- this.buttonRight.defaultColor = (isLeft ? ConfigVRCtrl.ParentButton.ButtonDefaultColor : ConfigVRCtrl.ParentButton.ButtonClickedColor);
- }
- public void Emulate(bool isLeft)
- {
- UIButton uibutton = (!isLeft) ? this.buttonRight : this.buttonLeft;
- EventDelegate.Execute(uibutton.onClick);
- }
- public override void Set(object value)
- {
- this.Emulate((bool)value);
- }
- private static Color ButtonDefaultColor = new Color(1f, 1f, 1f, 0.5f);
- private static Color ButtonClickedColor = Color.white;
- private UIButton m_ButtonRight;
- private UIButton m_ButtonLeft;
- }
- private enum TypeItem
- {
- CommonEyeHeight,
- CommonSitHeight,
- CommonCameraMoveSpeed,
- CommonCameraRotSpeed,
- CommonShowDesktopScreen,
- ViveFloorHeightType,
- ViveSnapRotateEnable,
- ViveSnapRotateRate,
- ViveMoveMode,
- ViveOldRotatePad,
- ViveOldMovePad,
- ViveOldMoveRotatePadAriaRate,
- ViveDDTouchToClick,
- ViveOvrTabletFrameHideWhenMsgWndVisible,
- TouchSnapRotateEnable,
- TouchSnapRotateRate,
- TouchMoveMode,
- TouchOldRotateStick,
- TouchOldMoveStick,
- TouchDDTouchToClick,
- TouchOvrTabletFrameHideWhenMsgWndVisible,
- HMDOnlyCameraPlaneMovement,
- HMDOnlyMouseRotateEnable,
- HMDOnlyMouseRotateSpeed,
- DummyMouseRotateSpeed,
- DummyMouseRotateInverse,
- DummyCameraPlaneMovement,
- DummyShowMan,
- DummyCameraFov
- }
- }
|