Unity中使用摇杆控制

本文章由cartzhang编写,转载请注明出处。 所有权利保留。
文章链接:http://blog.csdn.net/cartzhang/article/details/50957100
作者:cartzhang

一、说起摇杆

XBox的摇杆控制器,不知道何种原因,它拒绝在我电脑上工作。
别人给安装驱动,他们都好好的,在这里就是不识别。

只找到了一个数动的就和着使用。
为啥要研究摇杆啊?
因为这边在VR开发中,每次使用VR设置启动的时间较长,又因为有各种硬件,有枪
头盔等一批硬件控制和按钮,所以就想使用摇杆按键来在测试时候代替。

下面就是在Unity中使用摇杆的一些代码。

二、键值

摇杆的键值,在网上搜的:

按钮绘制:按钮灵敏度(Button Sensitivity)为1000;
A = button 0
B = joystick button 1
X = joystick button 2
Y = joystick button 3
LB = joystick button 4
RB = joystick button 5
Back = joystick button 6
Start = joystick button 7
Left Analogue Press = joystick button 8
Right Analogue Press = joystick button 9
坐标轴绘制:模拟坐标轴灵敏度(Analog Axis sensitivity)为1,量化后可以为1000;
Left Analog Horizontal = X Axis
Left Analog Vertical = Y Axis
Triggers = 3rd Axis (Left: -1 - 0, Right: 0 - 1) _ (Left Trigger Axis: 9th, Right Trigger Axis: 10th (Both axis are 0-1))
Right Analog Horizontal = 5th axis
Right Analog Vertical = 4th axis
D-Pad Horizontal = 6th Axis
D-Pad Vertical = 7th Axis

做为程序,怎么使用代码获取呢?
简单:

using UnityEngine;
using System.Collections;public class GetKeyValue : MonoBehaviour {public float speed = 10.0F;public float rotationSpeed = 100.0F;void Update(){detectPressedKeyOrButton();}public void detectPressedKeyOrButton(){foreach (KeyCode kcode in System.Enum.GetValues(typeof(KeyCode))){if (Input.GetKeyDown(kcode))Debug.Log("KeyCode down: " + kcode);}}
}

把此代码挂载到任意对象上,然后按下按键看看console中的打印,就知道对应的键值了。

三、控制对象

使用摇杆来控制对象,因为这边在VR开发中,每次使用VR设置启动的时间较长,又因为有各种硬件,有枪
头盔等一批硬件控制和按钮,所以就想使用摇杆按键来在测试时候代替。解放不够用的双手,之前的测试一个人不能完成,需要旋转头盔,需要按下按键,需要鼠标点击,真是需要个多的手啊!!就是这样!!

一个摇杆控制旋转和移动。
这里面,摇杆向前推,控制对象就向前移动,而左右就是控制左右旋转了。有点不符合常理,但是大家若有用就稍微修改下吧

using UnityEngine;
using System.Collections;public class StickCameraControl : MonoBehaviour {public float speed = 10.0F;public float rotationSpeed = 100.0F;void Update(){float translation = Input.GetAxis("Vertical") * speed;float rotation = Input.GetAxis("Horizontal") * rotationSpeed;if (Mathf.Abs(translation) <= 0.1*speed){translation = 0;rotation *= Time.deltaTime;transform.Rotate(0, rotation, 0);}else{translation *= Time.deltaTime;transform.position +=Camera.main.transform.forward * translation;}}
}

用来控制枪的旋转和开火的代码。
枪不能自己移动的,只可以旋转。所以代码就如下:

using UnityEngine;
using System.Collections;public class StickGunContorl : MonoBehaviour {public float speed = 10.0F;public float rotationSpeed = 100.0F;public KeyCode []FireButton;void Update(){SetFire();SetRotate();}void SetFire(){if (Input.GetKeyDown(KeyCode.JoystickButton4) || Input.GetKeyDown(KeyCode.JoystickButton5)|| Input.GetKeyDown(KeyCode.Joystick1Button4) || Input.GetKeyDown(KeyCode.Joystick1Button5)){Debug.Log(Input.mousePosition);}}void SetRotate(){//float translation = Input.GetAxis("RightV") * speed;float rotation = Input.GetAxis("RightH") * rotationSpeed;Debug.Log("gun" + rotation);rotation *= Time.deltaTime;transform.Rotate(0, rotation, 0);}
}

代码超级简单。注释没有!!!
要是直接复制代码,运行会报错。原因在于你没有RightH这个东动
怎么来的呢?看这里,看这里……

这在里定义的Input,然后才可以在代码中正确调用的。

四、参考

http://tieba.baidu.com/p/3668735969

——–THE——————END———————–

若有问题,请随时联系!!
非常感谢

Unity中使用摇杆控制相关推荐

  1. unity中通过代码控制游戏中画质

    最近在开发项目的时候突然想到可以添加一个调整画质的按钮或者DropDown或者Slider的UI来控制游戏中的画质 因为我之前写过一篇关于DropDown的使用方法的博客 DropDown的使用方法地 ...

  2. unity中声音大小控制物体行为(音量的大小)

    声音的大小控制物体的运动:这个是写好的脚本,拿到unity中就可以测试一下. public class Manager : MonoBehaviour { public float volume; A ...

  3. Unity中使用SimpleWaypointSystem控制物体移动

    在Unity中通过SimpleWaypointSystem在沙盘上绘制出轨迹,一个物体沿着轨迹移动. 需要实现当沙盘旋转时,物体.轨迹也跟随旋转,且物体的移动不会偏移轨迹. 重要变量:fullPosi ...

  4. unity中摄像机的控制---调整摄像机,不让他摔倒

    摄像机大部分人都会控制,最明显的就是让他旋转,随着鼠标的左右上下移动而旋转,但是总是会遇到一个问题,就是转着转着就仿佛他自己摔倒了似的,其实就是它本身绕着Z轴旋转了 这样就不是我们想要的结果了 要想解 ...

  5. unity中触屏控制人物移动

    例如在飞机大战中,让战机随手指移动而移动 public class Hero : MonoBehaviour {private bool isMouseDown = false;private Vec ...

  6. unity pico3 手柄摇杆控制物体移动和旋转

  7. Unity3D中使用Joystick Pack实现摇杆控制

    学更好的别人, 做更好的自己. --<微卡智享> 本文长度为2342字,预计阅读6分钟 前言 花了几个小时重新根据Unity3D的初学者教程做了一个简单的Demo,做完后确实对新人来说是个 ...

  8. unity使用摇杆控制物体移动

    文章目录 前言 一.Scroll Rect是什么? 二.虚拟摇杆的建立过程 1.创建摇杆UI 2,为摇杆添加Scroll Rect 2.写代码,来实现摇杆对于物体移动的控制 总结 前言 unity做移 ...

  9. 【Unity】【Pico】手柄摇杆控制第一人称移动和旋转

    [Unity][Pico]手柄摇杆控制第一人称移动和旋转 背景:开发影院系统 环境:Unity2021.3.PicoNeo3ProEye 描述:已经在Unity项目中实现第一人称WASD移动和鼠标旋转 ...

  10. Unity UGUI通过摇杆joystick 控制角色移动 标准的第三人称视角手游-左侧控制移动,右侧控制视角和方向

    Unity UGUI通过摇杆joystick 控制角色移动 标准的第三人称视角手游-左侧控制移动,右侧控制视角和方向 效果图显示 附上demo下载地址 备注:资源是URP的,普通平台修改资源材质即可 ...

最新文章

  1. 大型网站技术架构(3):WEB 前端性能优化
  2. 如何完全卸载VMware
  3. C#解析Markdown文档,实现替换图片链接操作
  4. 院士拿布袋领奖归来,朋友圈刷屏了
  5. 会动的图解 | 既然IP层会分片,为什么TCP层也还要分段?
  6. 在Qt Creator中添加OpenCV库
  7. C#笔记12 自定义集合和常用集合
  8. python核心编程
  9. shared pool 和buffer pool 详解(之二, Cache Buffers LRU Chain、Cache Buffers LRU Chain闩锁竞争与解决)
  10. Spring boot 与 Spring MVC
  11. ubuntu zip文件解压失败
  12. 平衡小车之家--风力摆开箱实录(附资料)
  13. 脑科学家:神经科学与大数据的结合带来的新领域
  14. 《windows核心编程》第6章 线程基础
  15. 又一重磅利好,海南撒10亿基金发展区块链技术
  16. 使用Socks5代理加速爬虫访问的方法
  17. Java分解整型质因数
  18. #Revit二次开发# 创建剖面视图
  19. springboot和springcloud的区别是什么?
  20. 微信小程序云开发-批量上传文件到云储存空间

热门文章

  1. 视频接口详细设计方案
  2. 电脑安装什么杀毒软件最好?这4款满分杀毒软件了解一下
  3. H5传奇源码,附带微信支付,商城系统,新增了元宝交易商城系统源码
  4. PYTHON-音视频合并方法
  5. 短文本相似度计算-simHash从原理到实现
  6. 2019python二级真题_2019年3月二级python真题,上岸必备!
  7. 数据驱动进化优化(data-driven evolutionary optimization)
  8. 西门子802d数控立式加工中心智能调节参数
  9. python爬虫设计图片大全_PYTHON爬虫——必应图片关键词爬取
  10. keyshot渲染图文教程_使用keyshot渲染器精确贴图的步骤教程详解