话题:你是喜欢用传统手柄模拟模式的手柄键鼠还是喜欢用VR

为什么VR都要配手柄? 虚拟世界也需要双手
06:00&&&&天极网VR虚拟现实频道
  【天极网VR虚拟现实频道】这两天被三星Galaxy S8/S8+刷屏了,红花都火的不成样子了,也该绿叶发发光了。在纽约召开的新品发布会上,新款Gear VR头显与Gear 360全景相机亮相,前者还“拖家带口”附送手柄一个。新版Gear VR适配Galaxy S8(毕竟对性能要求高啊),身价也是增加到了129美元,手柄单卖价格也为40美元。
  从去年开始,VR头显+手柄就已经成为VR硬件标配,HTC Vive是配套最齐全的设备之一,Oculus Rift直到年底才变成完全体,期间谷歌的Daydream View也携手柄一同亮相。如此不难看出,未来的VR头显专用手柄将更为普及,甚至取代传统的游戏手柄。
  那么为什么VR都要配手柄呢?这个问题并不难回答。虚拟现实最大的魅力就在于“虚拟的现实”,让用户相信自己真的穿越到了一个新的世界中。在这个新世界仅仅是满足视觉听觉显然还不够,如果加入触觉,那么感受将更加真实。想要在虚拟世界中加入一双手就需要载体,光靠想象肯定是不行,于是VR手柄就成为当下最佳的解决方案。
  直观的触觉反馈
  手中握着手柄,在体验VR内容时,不是在“抓空气”,这本身就容易让体验者投入。除此之外,有些手柄上会加入震动反馈,完善体验。就算是简单的VR手柄也能凭借扳机键、触摸键甚至摇杆,来提升体验的真实感。
  操作更精准
  在VR世界中,用户被赋予极高自由度,有些情况下需要完成很多特定的操作,依靠传统游戏手柄虽然有丰富按键,但与实际体验相差很大,例如抓取等动作,并不能带给用户最自然的交互方式。此外,手势识别虽然摆脱硬件,用户可以在虚拟世界中看到双手运动轨迹,提升了真实感,但某些复杂操作当下还是难以完善。因此VR手柄凭借易用、自然的两大优势成为首选。
  手柄也在“进化”
  HTC Vive的手柄如今看来会显得笨重,特别是对比Oculus Touch,差距将进一步被放大。移动端VR头显受体积、性能限制,难以实现PC端VR头显那么丰富的功能,但却胜在灵活,适用性强。谷歌Daydream标准推出后,这艘基于Android的“大船”已经吸引了很多开发者,并针对其手柄做了优化。也就是说未来VR手柄不仅能够在硬件方面不断发展,在内容上也会日渐丰富。
+1你赞过了
&2018 天极网旗下网站今天让我们来聊聊VR手柄,没有它们VR就是搞笑的消费级的PC VR正式进驻市场,其实也才过去了半年时间,Oculus Rift在3月28日发布之后,HTC Vive也迅速投放到了市场。Oculus的首席执行官帕胖(Palmer)对于Vive的抢先发布似乎不屑一顾,在接受Eurogamer的采访时表示:抢先发布并不意味任何事情,我们在这几个月内做了更有意义的事情:开发 Oculus Touch,并将此作为对 Vive 的回应。与Oculus将主机和手柄拆卖的策略不同,HTC Vive在发售之时就已经非常完整了,Vive手柄的开创性和易用性也为其赢得了一部分买家。受限于产能问题,Oculus Touch几经跳票才决定于12月6日正式发售,而随着Valve、微软的相继入局以及第三方原型设备的不断出现,VR的手柄之争也逐渐变得白热化起来。传统的十字键手柄暂且不提,目前比较契合VR操控的主流控制器大致包括Oculus Touch、Vive手柄、PS Move三种,而根据流出的信息来看,Valve和微软的原形手柄也相当抢眼。Vive控制器Vive控制器有些像头重脚轻的哑铃,顶端采取了横向的空心圆环设计,上面布满了用于定位的凹孔。持握时拇指方向有一个可供触控的圆形面板,而食指方向则有两阶扳机。这款产品在满电状态下可以独立运行4个小时,已经能够满足基本的使用需求。出色的定位能力是它的杀手锏之一,Lighthouse(灯塔)技术的引入能够将定位误差缩小到亚毫米级别,而激光定位也无疑是排除遮挡问题的最好解决方案。房间对角的两个发射器通过垂直和横向的扫描,就能构建出一个“感应空间”。而设备顶端诸多的光敏传感器,则能帮助计算单元重建一个手柄的三维模型。尽管Vive控制器几乎不存在延迟,也能支持15英尺范围内的站立姿态,但它的持握体验其实不尽人意,长时间持握Vive手柄是个沉重的负担。除此之外,设备在VR内容的应用上也没有太多扩展空间,“扣下”扳机的动作仅契合某些FPS游戏。不过,Vive控制器被有效的整合到了设备之中,得益于友好的SDK和官方支持,开发者可以没有后顾之忧的为其创造内容。而开创性的控制方式,也让人们意识到“虚拟手”对于VR的重要性。Oculus TouchTouch与Rift的拆卖一直以来都让玩家们有些不爽,本机+手柄高达700美元的价格其实已经和整套HTC Vive相差无几,而产品的数次跳票更是引起了人们的愤怒。不过,体验过Oculus Touch的用户对产品本身还是予以了肯定,并表示其紧贴双手的工业设计更符合人类的自然姿态。Touch的控制面板中嵌入了一个小型摇杆和数个圆形按键,握柄方向同样设置了单阶扳机,功能上与Vive手柄相差不大。其内部植入的摄像头感应器成了亮眼之处,它能够通过感知距离模拟出手指的大致动作,这大大增强了控制器的可扩展性。Oculus Touch的缺陷在于定位方案的不完善,红外光学定位和九轴系统的辅助本身还是不错的,也能免除一部分遮挡问题。但Rift当前只配备了一个摄像头,仅能感应正前方的小块区域,限制了Touch的使用范围。Palmer曾经声称Oculus Rift在多个摄像头的支持下也能完成房间级定位,但目前还没有具体的实操案例。除此之外,增设摄像头还需要按79美元一个的价格额外采购,看起来不怎么“良心”。PS Move留意PlayStation VR的首发内容就能得知,它们主要还是基于DualShock 4游戏手柄驱动,极少用到PS Move。实际上,PS Move是一款6年前发售的产品,主要对标任天堂Wii Remote的体感支持,并非PS VR的特供物。PS Move的造型更像是顶了个彩色圆球的手电筒,持握手感也非常相似,副操纵棒上甚至加上了传统手柄的十字按键,整体的控件按钮多达十数个,操控起来有些繁杂。相比其它VR手柄,PS Move的定位技术也是比较落后的,其可见光定位只能感应控制器的大致位置,完全谈不上精度,甚至有玩家表示自己的“光头反光”也会影响到设备识别。又由于抗遮挡性较差,多目标定位也有一定的数量限制。不过,PS Move的复用大大降低了研发成本,而优秀的内容支持也弥补了设备的缺陷。索尼似乎也察觉到了产品的不足,此前就为“Farpoint”打造了一款名为“PS VR Aim”的专用控制器,后续可能将有更多的拓展。Valve控制器Valve绝非一家纯粹的内容开发商,Valve VR可以说得上是Oculus Rift和HTC Vive的指明灯,在2014年召开的Steam第一届开发大会上,Palmer Luckey还特意登台进行过演讲。尽管Valve在虚拟现实的研发道路上不太顺畅,但时隔两年之后它们还是带来了一款全新的VR产品——Valve控制器。Valve此前也有开发Steam Controller的相关经验,产出VR控制器也在意料之中。这款产品在佩戴时有些类似“指虎”,手背上是条形的感应装置,手心的控制主体则通过腕带连接在一起。得益于这样的结构,使用者无需保持握紧的状态,设备在张开手掌的情况下也不会掉落。Valve控制器的消息不算太多,官方仅邀请了开发者参与体验。根据Vrerse透露的信息来看,手柄上搭载了21个感应器,抓取虚拟物品时也无需按任何键,手柄表面的触摸屏能够判断用户是否握拳。不过,这款产品在短时间内应该还不会投入商用,Valve表示“握拳感应”在以后的迭代中将被细化为“手指感应”,而做工比较粗糙的问题也将逐步解决。Normal Touch&Texture Touch相比上述那些完成度比较高的产品,微软的VR控制器显然还处在实验阶段。不过,除了基础的操控之外,Normal Touch&Texture Touch在压感和触感方向进行了深化,它们也许将成为VR控制器的未来雏形。Normal Touch&Texture Touch由微软的一个四人团队开发,Normal Touch主要通过分散的“触手”来反馈虚拟物体的硬度,而Texture Touch则能模拟出虚拟物品的材质变化。这两款产品目前可以适配Oculus Rift DK2,也使用了对应的红外光学追踪技术。遗憾的是,它们当前只能还原“一根”手指的触摸感受,笨重的元件堆砌和丑陋的工业设计还未能得到优化,真正应用还需等上很长一段时间。民间开发者Scott Devine设计的触感反馈装置,在原理上与Normal Touch有着异曲同工之妙。他为Baxter机器人写了一段程序,让其能够通过机器臂对玩家施力,从而再现VR世界中的“阻力”。可以看出,VR手柄目前处于“百花齐放”的阶段。由于没有绝对成功的产品,各个开发商的设计思路都不尽相同,HTC和Oculus在机械手感上加以精进,而Valve更倾向于Steam Controller一样的触摸体验。除此之外,专精于MR的Magic Leap则一直倡导手势控制。从1958年的突起旋钮到1982年的十字键手柄,传统控制器在历经数十种尝试、摸索了20余年之后才得以落地生根。时至如今,十字键手柄仍然是解决内容操控的最好方式之一。相较于越来越同质化的移动VR市场,繁杂而深入的VR手柄研发其实是一件好事。尽管它们之中免不了要淘汰一部分失败的设计,但大量开发商的入局,为VR手柄的发展奠定了良好的试错基础。(图片来源于:网络)本文图片来自:正版图库4人已赞分享订阅Copyright&2018雷科技适合VR体验眼镜的游戏,不要手柄就能玩,作者福利小编-得图网
适合VR体验眼镜的游戏,不要手柄就能玩
安卓版:第一款:《三维终极枪战》,进去体验CS的快感,第二款:《WOW跑酷》电脑级画面魔兽世界类跑酷游戏,第三款:《京东食尸鬼》帅帅哒的金木,金木小天使迷们必玩啊!!第四款:僵尸狩猎者 Zombie Shooter VR ,画质非常不错哦,第五款:《House of Terror VR》鬼屋厉险,画面吊炸天!!!第六款:看似简单,确有不简单,考研智商的时候到了!第六款:画面超优秀的开飞机游戏——《宇宙飞船》,第七款:《VR3D迷宫 》居然有不穿衣服拿PP对着你的人,怎么可以不玩,第八款:能够近距离体验爆头的快感《僵尸射击》,第九款:卡哇伊风格,《全民打老公》快来比比谁打的多,第十款:《隐寺冒险》画面精美游戏性极强的密室解密VR,IOS篇放心也有IOS游戏推荐哦:不用手柄,直接陀螺仪控制,
按ENTER快速回复
后方可回复
TA的其他话题
内容侵犯他人版权
内容涉及人身攻击或者侵犯他人隐私
怀疑为广告文案
也可以通过官方QQ提交反馈或咨询:
关注我们:请完成以下验证码
您当前的位置: &
vive手柄按键开发说明
查看: 4982|
|原作者: 52vr.com
如何开发一款VR游戏,实现输入交互至关重要,我们先来看看在unity中如何对vive手柄进行编程,包括对手柄圆盘的使用说法。第一步,导入steamVR 插件和认识手柄:& &如图,我们已经导入了SteamVR Plugin,下面的SteamVR绿色图标表明Htc Vive的硬件也已经准备就绪,这是SteamVR_TestThrow场景,也是我们展开分析的入手点.这个测试很简单,就是你按下Trigger的时候,手柄上会实例化一个圆球+cube的结合体,当然松开Trigger的时候这个结合体就会脱离手柄,当然,你还可以施加一个扔的动作,这样的话结合体会有一个对应的加速度。手柄的按键说明图示:手柄是HTC Vive的重要交互手段,我们通过第一个图片应该对其有一个直观的了解了,总共是九个按钮:第一个是菜单按钮;2,3,4,5分别对应的是Trackpad/Touchpad的上下左右,有时候对应的是XBox手柄的▲OX囗四个按钮或者摇杆;6对应的是系统按钮/S7是Trigger/扳机,对应大多数FPS游戏里面的枪械的Shoot/F8对应的Grip/紧握在手柄的左右两侧各有一个,有时候我们用它来翻页;9其实是Trackpad/Touchpad在Z轴的一个延伸,相当于是点击事件Click.第二步:上代码说明如何控制:比较难明白的就是那个圆盘键,这个键是一个以中心为(0,0)点的直角坐标系,四个端长度都是1,可接收触摸和按压两种事件,见上图,触摸touch或按压press会通过GetAxis方法返回一个坐标系中的点,可以判断你按在哪里,触发不同的事件,可以根据角度或各种方法来切分按键为n个按钮。[代码]:using UnityE
using System.C
//检测手柄功能的脚本 这个脚本挂到手柄上(controler(right)和controler(left))上
public class ButtonTouchAction : MonoBehaviour {
SteamVR_TrackedObject trackdeO
void Awake() {
//获取手柄上的这个组件
trackdeObjec = GetComponent();
// Use this for initialization
void Start () {
void FixedUpdate()
//获取手柄输入
var device = SteamVR_Controller.Input((int)trackdeObjec.index);
//以下是api中复制出来的按键列表
public class ButtonMask
public const ulong System = (1ul && (int)EVRButtonId.k_EButton_System); // reserved
public const ulong ApplicationMenu = (1ul && (int)EVRButtonId.k_EButton_ApplicationMenu);
public const ulong Grip = (1ul && (int)EVRButtonId.k_EButton_Grip);
public const ulong Axis0 = (1ul && (int)EVRButtonId.k_EButton_Axis0);
public const ulong Axis1 = (1ul && (int)EVRButtonId.k_EButton_Axis1);
public const ulong Axis2 = (1ul && (int)EVRButtonId.k_EButton_Axis2);
public const ulong Axis3 = (1ul && (int)EVRButtonId.k_EButton_Axis3);
public const ulong Axis4 = (1ul && (int)EVRButtonId.k_EButton_Axis4);
public const ulong Touchpad = (1ul && (int)EVRButtonId.k_EButton_SteamVR_Touchpad);
public const ulong Trigger = (1ul && (int)EVRButtonId.k_EButton_SteamVR_Trigger);
//同样是三种按键方式,以后不做赘述
if (device.GetTouch(SteamVR_Controller.ButtonMask.Trigger)) {
Debug.Log("按了 “trigger” “扳机键”");
//右手震动
//拉弓类似操作应该就是按住trigger(扳机)gettouch时持续调用震动方法模拟弓弦绷紧的感觉。
var deviceIndex2 = SteamVR_Controller.GetDeviceIndex(SteamVR_Controller.DeviceRelation.Rightmost);
SteamVR_Controller.Input(deviceIndex2).TriggerHapticPulse(500);
if (device.GetTouchDown(SteamVR_Controller.ButtonMask.Trigger))
Debug.Log("按下了 “trigger” “扳机键”");
if (device.GetTouchUp(SteamVR_Controller.ButtonMask.Trigger)) {
Debug.Log("松开了 “trigger” “扳机键”");
//左手震动
var deviceIndex = SteamVR_Controller.GetDeviceIndex(SteamVR_Controller.DeviceRelation.Leftmost);
SteamVR_Controller.Input(deviceIndex).TriggerHapticPulse(3000);
//右手震动
var deviceIndex1 = SteamVR_Controller.GetDeviceIndex(SteamVR_Controller.DeviceRelation.Rightmost);
SteamVR_Controller.Input(deviceIndex1).TriggerHapticPulse(3000);
//这三种也能检测到 后面不做赘述
if(device.GetPressDown(SteamVR_Controller.ButtonMask.Trigger)) {
Debug.Log("用press按下了 “trigger” “扳机键”");
if (device.GetPress(SteamVR_Controller.ButtonMask.Trigger))
Debug.Log("用press按了 “trigger” “扳机键”");
if (device.GetPressUp(SteamVR_Controller.ButtonMask.Trigger))
Debug.Log("用press松开了 “trigger” “扳机键”");
//system键 圆盘下面那个键
// reserved 为Steam系统保留,用来调出Steam系统菜单 因此貌似自己加的功能没啥用
if (device.GetTouchDown(SteamVR_Controller.ButtonMask.System))
Debug.Log("按下了 “system” “系统按钮/Steam”");
if (device.GetPressDown(SteamVR_Controller.ButtonMask.System))
Debug.Log("用press按下了 “System” “系统按钮/Steam”");
//ApplicationMenu键 带菜单标志的那个按键(在方向圆盘上面)
if (device.GetTouchDown(SteamVR_Controller.ButtonMask.ApplicationMenu))
Debug.Log("按下了 “ApplicationMenu” “菜单键”");
if (device.GetPressDown(SteamVR_Controller.ButtonMask.ApplicationMenu))
Debug.Log("用press按下了 “ApplicationMenu” “菜单键”");
//Grip键 两侧的键 (vive雇佣兵游戏中的换弹键),每个手柄左右各一功能相同,同一手柄两个键是一个键。
if (device.GetTouchDown(SteamVR_Controller.ButtonMask.Grip))
Debug.Log("按下了 “Grip” “ ”");
if (device.GetPressDown(SteamVR_Controller.ButtonMask.Grip))
Debug.Log("用press按下了 “Grip” “ ”");
//Axis0键 与圆盘有交互 与圆盘有关
//触摸触发
if (device.GetTouchDown(SteamVR_Controller.ButtonMask.Axis0))
Debug.Log("按下了 “Axis0” “方向 ”");
//按动触发
if (device.GetPressDown(SteamVR_Controller.ButtonMask.Axis0))
Debug.Log("用press按下了 “Axis0” “方向 ”");
目前未发现按键位置
//触摸触发
if (device.GetTouchDown(SteamVR_Controller.ButtonMask.Axis1))
Debug.Log("按下了 “Axis1” “ ”");
//按动触发
if (device.GetPressDown(SteamVR_Controller.ButtonMask.Axis1))
Debug.Log("用press按下了 “Axis1” “ ”");
//Axis2键 目前未发现按键位置
//触摸触发
if (device.GetTouchDown(SteamVR_Controller.ButtonMask.Axis2))
Debug.Log("按下了 “Axis2” “ ”");
//按动触发
if (device.GetPressDown(SteamVR_Controller.ButtonMask.Axis2))
Debug.Log("用press按下了 “Axis2” “ ”");
未目前未发现按键位置
//触摸触发
if (device.GetTouchDown(SteamVR_Controller.ButtonMask.Axis3))
Debug.Log("按下了 “Axis3” “ ”");
//按动触发
if (device.GetPressDown(SteamVR_Controller.ButtonMask.Axis3))
Debug.Log("用press按下了 “Axis3” “ ”");
目前未发现按键位置
//触摸触发
if (device.GetTouchDown(SteamVR_Controller.ButtonMask.Axis4))
Debug.Log("按下了 “Axis4” “ ”");
//按动触发
if (device.GetPressDown(SteamVR_Controller.ButtonMask.Axis4))
Debug.Log("用press按下了 “Axis4” “ ”");
//方向圆盘:
//这里开始区分了press检测与touch检测的不同之处,圆盘可以触摸,顾名思义,touch检测的是触摸,press检测的是按动 //Axis0键 与圆盘有交互 与圆盘有关
//触摸触发
if (device.GetTouchDown(SteamVR_Controller.ButtonMask.Axis0))
Debug.Log("按下了 “Axis0” “方向 ”");
//按动触发
if (device.GetPressDown(SteamVR_Controller.ButtonMask.Axis0))
Debug.Log("用press按下了 “Axis0” “方向 ”");
目前未发现按键位置
//触摸触发
if (device.GetTouchDown(SteamVR_Controller.ButtonMask.Axis1))
Debug.Log("按下了 “Axis1” “ ”");
//按动触发
if (device.GetPressDown(SteamVR_Controller.ButtonMask.Axis1))
Debug.Log("用press按下了 “Axis1” “ ”");
//Axis2键 目前未发现按键位置
//触摸触发
if (device.GetTouchDown(SteamVR_Controller.ButtonMask.Axis2))
Debug.Log("按下了 “Axis2” “ ”");
//按动触发
if (device.GetPressDown(SteamVR_Controller.ButtonMask.Axis2))
Debug.Log("用press按下了 “Axis2” “ ”");
未目前未发现按键位置
//触摸触发
if (device.GetTouchDown(SteamVR_Controller.ButtonMask.Axis3))
Debug.Log("按下了 “Axis3” “ ”");
//按动触发
if (device.GetPressDown(SteamVR_Controller.ButtonMask.Axis3))
Debug.Log("用press按下了 “Axis3” “ ”");
目前未发现按键位置
//触摸触发
if (device.GetTouchDown(SteamVR_Controller.ButtonMask.Axis4))
Debug.Log("按下了 “Axis4” “ ”");
//按动触发
if (device.GetPressDown(SteamVR_Controller.ButtonMask.Axis4))
Debug.Log("用press按下了 “Axis4” “ ”");
//ATouchpad键 圆盘交互
//触摸触发
if (device.GetTouchDown(SteamVR_Controller.ButtonMask.Touchpad))
Debug.Log("按下了 “Touchpad” “ ”");
//方法返回一个坐标 接触圆盘位置
Vector2 cc = device.GetAxis();
Debug.Log(cc);
// 例子:圆盘分成上下左右
float jiaodu = VectorAngle(new Vector2(1, 0), cc);
Debug.Log(jiaodu);
if (jiaodu & 45 && jiaodu & 135)
Debug.Log("下");
if (jiaodu & -45 && jiaodu & -135)
Debug.Log("上");
if ((jiaodu & 180 && jiaodu & 135) || (jiaodu & -135 && jiaodu & -180))
Debug.Log("左");
if ((jiaodu & 0 && jiaodu & 45) || (jiaodu & -45 && jiaodu & 0))
Debug.Log("右");
//按动触发
if (device.GetPressDown(SteamVR_Controller.ButtonMask.Touchpad))
Debug.Log("用press按下了 “Touchpad” “ ”");
// Update is called once per frame
void Update () {
//方向圆盘最好配合这个使用 圆盘的.GetAxis()会检测返回一个二位向量,可用角度划分圆盘按键数量
//这个函数输入两个二维向量会返回一个夹角 180 到 -180
float VectorAngle(Vector2 from, Vector2 to)
Vector3 cross = Vector3.Cross(from, to);
angle = Vector2.Angle(from, to);
return cross.z & 0 ? -angle :
附上 vive手柄 3ds max模型下载:&下载地址:http://www.52vr.com/forum.php?mod=viewthread&tid=30301
52VR.COM微信扫一扫
专注于VR的学习、开发和人才交流
&津ICP备号&网安备57&&[&& 原创&&]&& 作者:&&|&&责编:陈志勇
身临其境&结合手柄体验游戏&&&&魔甲人3D虚拟现实眼镜头盔除了能够享受3D电影的美妙,还能带您体验虚拟现实中的游戏世界。在NIBIRU平台后,用户在点击陀螺标识后即可进入游戏下载界面。魔甲人3D虚拟现实眼镜头盔&玩游戏&&&&不过要想使用魔甲人头盔,您还得需要一个MOGA手柄。在众筹界面,您仅需支付199元,即可获得魔甲人3D虚拟现实眼镜头盔、立体中国VIP账户和价值269元美国原装进口MOGA&PRO蓝牙手柄的全能套装。MOGA&Pivot&APP&&&&在下载过游戏平台后,为了配合手柄的使用,用户需要到MOGA&中国官网进行。手机与手柄间先用蓝牙连接,在官网下载名为“MOGA&Pivot”的APP,然后根据提示进行连接,在连接过程中需要注意的是手柄必须调至A档。整体连接时间长20-30秒,需要耐心等待。连接过后,用户就可以进行畅快的3D游戏之行了。NIBIRU&平台&&&&在魔甲人3D虚拟现实眼镜头盔实际使用中,笔者多名同事都进行了体验。NIBIRU平台游戏海量供应,可选择性多,能满足个性需求。实际体验3D眼镜头盔玩游戏时,魔甲人3D&VR头盔场景还原度高、如身临其境般的体验让同事们爱不释手。&&&&编辑点评:VR时代,用户已经不能满足于普通的游戏场景,能够“亲身”体验、如真实在场般体验游戏的乐趣才是用户追求的。魔甲人3D虚拟现实眼镜头盔与MOGA手柄合作使用,在海量游戏平台NIBIRU下载3D游戏,实现更加完美的沉侵式的3D游戏体验。
提示:支持键盘“← →”键翻页
适用平台 连接方式
投诉欺诈商家:
天津重庆哈尔滨沈阳长春石家庄呼和浩特西安太原兰州乌鲁木齐成都昆明贵阳长沙武汉郑州济南青岛烟台合肥南京杭州东莞南宁南昌福州厦门深圳温州佛山宁波泉州惠州银川
本城市下暂无经销商

我要回帖

更多关于 键盘各个键的功能图解 的文章

 

随机推荐