unity3d 获取键盘按键怎么用虚拟杆代替键盘

Unity3D游戏开发之键盘、操纵杆和游戏手柄输入实现详解_文档库
文档库最新最全的文档下载
当前位置: & Unity3D游戏开发之键盘、操纵杆和游戏手柄输入实现详解
Unity3D游戏开发之键盘、操纵杆和游戏手柄输入实现详解
Unity3D 游戏开发之键盘、操纵杆和游戏手柄输入实现详解 输入桌面
Unity 支持键盘、操纵杆和游戏手柄输入。
可以在输入管理器 (Input Manager) 中创建虚拟轴和按钮,终端用户可以在简洁美观的配置对话框中配置键盘。
您可以设置操纵杆、手柄、键盘和鼠标,然后通过简单的脚本界面访问所有设置。
在脚本中,所有虚拟轴都按照名称访问。
在创建之时,所有工程都有以下默认的输入轴:
Word文档免费下载:
(共10页)
Unity3D游戏开发之ACT游戏三连击效果实现综述_计算机软件及应用_IT/计算机_专业资料。我们首先来了解三连击效果的具体流程,假定角色当前处于Idle状态,此时玩家如果按下...unity3d游戏开发之登录注册应用_计算机软件及应用_IT/计算机_专业资料。unity3d游戏开发之登录注册应用 在注册的时候,输入了数据库已存在的用户名,会显示用户已存在...Unity3D游戏开发之在Unity3D中实现视频播放_计算机硬件及网络_IT/计算机_专业资料...Unity3D游戏开发之键盘、... 10页 免费 喜欢此文档的还喜欢 unity...unity3d游戏开发之实现人物血条跟随人物移动_计算机软件及应用_IT/计算机_专业资料。unity3d游戏开发之实现人物血条跟随人物移动unity 中实现人物血条跟随人物移动。 publ...Unity3D游戏开发之自由视角下的角色控制_计算机软件及应用_IT/计算机_专业资料。...中根据坐标轴名称返回虚拟坐标系中的值, 通常情况下,使用控制器和键盘输入时此...Unity3D游戏开发流程与规范_计算机软件及应用_IT/计算机_专业资料。Unity3D游戏开发流程与规范经验分享 Unity3D游戏开发流程与规范 108km Studio 2012.04 为什么要有...unity3d游戏开发之发射子弹的源代码_计算机软件及应用_IT/计算机_专业资料。unity...(go,2.0f); } } } 接下来,我们要做一个太空大战的小游戏具体实现效果是:...unity3D游戏开发之工具了解_计算机软件及应用_IT/计算机_专业资料。关于unity游戏开发的工具 今天是培训的第一天,我们开始接受我们以前从来没有接触过的东西,对 于这...Unity3D游戏开发之鼠标滚轮实现物体放大缩小功能_计算机软件及应用_IT/计算机_专业资料。游戏开发之鼠标滚轮实现物体放大缩小功能 Unity3D 游戏开发之鼠标滚轮实现物体...unity3d游戏开发之打字机·输入框·进度条·按钮_计算机软件及应用_IT/计算机_专业...用到了打字机效果,输入框,进度条,按钮。。。 运行效果 实现打字机效果 创建 ...22619人阅读
unity3D(28)
//////////////////////////////////////////////////////
/////////////////////////////by& xbw//////////////////////////////
///////////////////////////环境&& unity4.6.1//////////////////
这个呢,是我自己想要的,这个虚拟按键呢在网上找了好多插件,对于人家的游戏适应的表现能力很好。然而在自己的游戏中并不适应,更没法用,思来想去还是自己写吗,早就想到了GUI的Button,索性就实现一下吧,先看一下效果图,
这几个就是Button,我的游戏中的按钮控制角色的移动也比较奇怪,非正常的运动,PC的按键对于这个Button的转换并不容易,先来看看代码,左右以及下的脚本
if (Input.GetKeyDown(&left&))
transform.Translate(Vector3.left * 18.0f);
transform.Translate(Vector3.left * 18.0f);
if (Input.GetKeyDown(&right&))
transform.Translate(Vector3.right * 18.0f);
transform.Translate(Vector3.right * 18.0f);
这是键盘控制的左右,我的想法变成button的,这样呢,一开始我是直接把要实现的代码放在了GUI中,后来不管怎么点角色都不会移动,通过查找资料,发现这个程序的执行是有顺序的,UpDate跟OnGUI差的不是一点半点,先直线UpDate,并且还了解到,UpDate是每一帧都会执行,而OnGUI是没几帧执行,这是unity官方的解释,这样的话,把角色移动写在OnGUI中,就不会每一帧都渲染啦,角色就没有反应了,所以,我把那些程序做了个开关,用开关控制在UpDate中执行,这样立马爽了,看一下代码
if (GUI.Button(new Rect(0, Screen.height * 0.72f, Screen.width * 0.13f, Screen.height * 0.13f), &左&))
GUI.DrawTexture(new Rect(0, Screen.height * 0.72f, Screen.width * 0.13f, Screen.height * 0.13f), zuo1);
GUI.DrawTexture(new Rect(0, Screen.height * 0.72f, Screen.width * 0.13f, Screen.height * 0.13f), zuo2);
if (GUI.Button(new Rect(0, Screen.height * 0.87f, Screen.width * 0.13f, Screen.height * 0.13f), &右&))
GUI.DrawTexture(new Rect(0, Screen.height * 0.87f, Screen.width * 0.13f, Screen.height * 0.13f), you1);
GUI.DrawTexture(new Rect(0, Screen.height * 0.87f, Screen.width * 0.13f, Screen.height * 0.13f), you2);
if (GUI.RepeatButton(new Rect(Screen.width * 0.92f, Screen.height*0.78f, Screen.height * 0.1f, Screen.height * 0.1f), &&))
GUI.DrawTexture(new Rect(Screen.width * 0.9f, Screen.height*0.75f, Screen.width * 0.1f, Screen.width * 0.1f), xia);
GUI.DrawTexture(new Rect(Screen.width * 0.9f, Screen.height*0.75f, Screen.width * 0.1f, Screen.width * 0.1f), xia1);至于那个注释掉的以及空着的else中的语句在手机上运行是有问题的,之前在电脑上调试一点问题都没有,鼠标点击button角色是能左右的,然而在手机上,却没有效果,后来又想到了几帧执行一次,这样的话我们不能再else中关闭开关,我们要在角色移动后在UpDate中关闭开关,这样就好了,至于这个下,我们的角色会下滑,并且是持续的,这样我们用到了RepeatButton,这个按钮有着持续的功能,这样只要一直按着就会一直下滑,至于那个上,同理,这个没什么,都一样的,好了;;;;希望大家互相学习交流,有错误或者无法显现请留言,我会一一回复的,晚安啦baby们
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:2426421次
积分:16208
积分:16208
排名:第660名
原创:177篇
转载:51篇
评论:60条
天天被打,怕了
(1)(7)(6)(12)(6)(6)(4)(4)(9)(21)(14)(10)(11)(14)(7)(3)(4)(3)(12)(3)(5)(2)(4)(16)(15)(14)(12)(3)
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'一直在想,使用模拟按键,也可以实现一些AI操作,具体还没做过,这里使用user32.dll在unity里写的一个简单demo
using UnityE
using System.C
using System.Runtime.InteropS
public class GetKeyCodeKey : MonoBehaviour {
[DllImport(&user32.dll&, EntryPoint = &keybd_event&)]
public static extern void keybd_event(
//虚拟键值 对应按键的ascll码十进制值
byte bScan,// 0
int dwFlags,
//0 为按下,1按住,2为释放
int dwExtraInfo
// Use this for initialization
void Start () {
keybd_event(65, 0, 0, 0);
keybd_event(65, 0, 1, 0);
keybd_event(65, 0, 2, 0);
// Update is called once per frame
void Update () {
if (Input.GetKeyDown(KeyCode.A))
Debug.Log(&按下了A键&);
if (Input.GetKey(KeyCode.A))
Debug.Log(&按住了A键&);
if (Input.GetKey(KeyCode.A))
Debug.Log(&按住了A键&);
本文已收录于以下专栏:
相关文章推荐
Unity3D使用input类控制用户的输入,输入包括了用户键盘,鼠标,触摸,重力感应以及地理位置输入等输入方式。
     本节我们介绍Unity3D中如何监听用户的鼠标、键盘输入。
     ...
模拟键盘输入首先要用到一个API函数:keybd_event。我现在要实现模拟ESC键按钮,通过下面的键值对照表可知ESC键的键码是27,然后我在下面实现了一个简单的例子。
附:常用模拟键的...
网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。
我们知道,Unity的异常处理做得非常好,源于他在框架底层会自动捕获异常,所以一般的异常(比如空引用、除0操作之类)均不会导致整个进程crash掉,原因很简单,代码在try段中发生了异常,在catch...
键盘或鼠标事件通常是需要用来响应某个按键按下,然后执行某段逻辑,这里的某个按键通常是事先确定的,比如按esc退出程序,按空格跳跃,鼠标单击选中。
但有的时候是先检测到按键按下,然后再判断是哪个按键,...
//////////////////////////////////////////////////////
/////////////////////////////by  x...
“开始”-&“控制面板”-&“管理工具”-&“组件服务”中,“控制台根目录”-&“组件服务”-&“计算机”-&“我的电脑”-&“COM+应用程序”中,有一个“IIS Out-Of-Process Po...
移动平台的输入
触摸相关的函数
触摸的一个示例
重力加速器
在Unity中访问重力加速器的信息
重力加速器示例
传统的输入
鼠标键盘控制杆手柄
虚拟控制轴Virtual Ax...
首先打开注册表,方法win+r 进入运行,或者从开始里找运行输入regedit进入注册表。
然后 在注册表 左边最上面HKEY_CLASSES_ROOT那个树右键新建——项。名字自己起就好了。然...
现在做的VR项目有这个功能,就是通过凝视来控制滑动条,但是用的是Google VR  SDK ,这是不支持点击的,
只能通过凝视时长判断点击,当时看到这个需求真心没思路,后来突然脑袋灵光了,
有同样的...
他的最新文章
讲师:董西成
讲师:唐宇迪
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)程序写累了,就来玩玩酷跑小游戏吧,嘿嘿。
雨松MOMO送你一首歌曲,嘿嘿。
Unity3D研究院之感应IOS设备旋转与iPhone键盘事件(十六)
Unity3D研究院之感应IOS设备旋转与iPhone键盘事件(十六)
围观14809次
编辑日期: 字体:
iPhone iPad iTouch 旋转设备都支持屏幕4个方向的任意旋转,那么强大的Unity3D 游戏引擎当然也支持啦,虽然很多游戏都为了避免麻烦强制的不让屏幕旋转,但是做为学习我们还是知道一下为好,因为Unity3D在处理屏幕旋转实在是非常方便,下面MOMO将以一个例子向各位盆友们介绍Unity3D 屏幕的哪些事儿~~。
强制屏幕四个方向不旋转的方法
void Start () {
//纵向 上下 两个方向
iPhoneKeyboard.autorotateToPortrait = false;
iPhoneKeyboard.autorotateToPortraitUpsideDown = false;&
//横向 上下两个方向
iPhoneKeyboard.autorotateToLandscapeLeft = false;
iPhoneKeyboard.autorotateToLandscapeRight = false; }
自动旋转屏幕的方法,此方式适用于Unity3.3及一下的版本。
Input.deviceOrientation 可以得到当前IOS 设备屏幕的方向状态。
Screen.orientation 设置屏幕的反转情况
123456789101112131415161718192021222324252627
void Update () {
//处理横向两个方向旋转
if(Input.deviceOrientation == DeviceOrientation.LandscapeLeft)
if (Screen.orientation != ScreenOrientation.LandscapeLeft) {
Screen.orientation = ScreenOrientation.LandscapeLeft;
}else if(Input.deviceOrientation == DeviceOrientation.LandscapeRight)
if (Screen.orientation != ScreenOrientation.LandscapeRight) {
Screen.orientation = ScreenOrientation.LandscapeRight;
//处理纵向两个方向的旋转
if(Input.deviceOrientation == DeviceOrientation.Portrait)
if (Screen.orientation != ScreenOrientation.Portrait) {
Screen.orientation = ScreenOrientation.Portrait;
}else if(Input.deviceOrientation == DeviceOrientation.PortraitUpsideDown)
if (Screen.orientation != ScreenOrientation.PortraitUpsideDown) {
Screen.orientation = ScreenOrientation.PortraitUpsideDown;
3.4及以上的版本可以在Setting for IOS 设置中直接设置屏幕旋转。
下面的游戏例子,通过左边的按钮直接切换屏幕旋转状态,右边的按钮打开iPhone输入状态框。
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
using UnityEngine;using System.Collections;&public class Main : MonoBehaviour {& //键盘输入 private iPhoneKeyboard keyboard;& //字体皮肤 public GUISkin fontSkin;&&& // Use this for initialization void Start () { }& // Update is called once per frame void Update () { }& void OnGUI() {
//设置皮肤
GUI.skin = fontSkin;&&&
//强制屏幕纵向
if (GUI.Button(new Rect(10, 10, 300, 100), "change LandscapeLeft"))&&{&&&&&&&&&&&&&&&& Screen.orientation = ScreenOrientation.LandscapeLeft;&&&&&&&&}else if (GUI.Button(new Rect(10, 110, 300, 100), "change LandscapeRight"))&&{&&
Screen.orientation = ScreenOrientation.LandscapeRight;
//强制屏幕横向
if (GUI.Button(new Rect(10, 210, 300, 100), "change Portrait"))&&{&&&&&&&&&&
Screen.orientation = ScreenOrientation.Portrait;&&&&&&&&}else if (GUI.Button(new Rect(10, 310, 300, 100), "change PortraitUpsideDown"))&&{&&&&&&&&&&&&&&&& Screen.orientation = ScreenOrientation.PortraitUpsideDown;&&&&&&&&}&& &&&&&&&&&if (GUI.Button(new Rect(320, 10, 300, 100), "open Keyboard"))&&{ &&&&&&&& &&//打开iphone输入框&&&&&&&& &&//第一个参数 默认显示 test&&&&&&&& &&//第二个参数 设置输入框类型,这里为默认,什么都可以输入&&&&&&&&&&&&&&keyboard = iPhoneKeyboard.Open("test",iPhoneKeyboardType.Default);&&&&&&&&&}&
if(keyboard != null){&
if (keyboard.done){
//输入完毕后 点击done 输入输入内容
Debug.Log( keyboard.text) ;
iPhoneKeyboardType 键盘类型几个比较重要的参数,盆友们可是输入试一试就知道效果啦。我就不截图了~
iPhoneKeyboardType.NumbersAndPunctuation : 输入标点符号与数字
iPhoneKeyboardType.URL:输入网址
iPhoneKeyboardType.PhonePad:输入电话
iPhoneKeyboardType.NumberPad:输入数字
iPhoneKeyboardType.EmailAddress:输入Email
屏幕方向不仅可以感应IOS设备平面4个方向,还可以感应屏幕上下方向。
屏幕面朝上:LandscapeLeft.FaceUp
屏幕面朝下:LandscapeLeft.FaceDown
最后欢迎各位盆友可以和MOMO一起讨论Unity3D游戏开发,总的来说这一章还是比较简单的,代码我就不上传了。哇咔咔~强烈感谢四角线技术大牛~
我愿和 大家好好学习!!!
本文固定链接:
转载请注明:
雨松MOMO提醒您:亲,如果您觉得本文不错,快快将这篇文章分享出去吧 。另外请点击网站顶部彩色广告或者捐赠支持本站发展,谢谢!
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
如果您愿意花10块钱请我喝一杯咖啡的话,请用手机扫描二维码即可通过支付宝直接向我捐款哦。
您可能还会对这些文章感兴趣!
Pingback 引用通告: 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
Unity3D游戏开发之键盘、操纵杆和游戏手柄输入实现详解
下载积分:1000
内容提示:Unity3D游戏开发之键盘、操纵杆和游戏手柄输入实现详解
文档格式:DOCX|
浏览次数:260|
上传日期: 00:17:53|
文档星级:
全文阅读已结束,如果下载本文需要使用
 1000 积分
下载此文档
该用户还上传了这些文档
Unity3D游戏开发之键盘、操纵杆和游戏手柄输入实现详解
官方公共微信

我要回帖

更多关于 unity3d 监听键盘键值 的文章

 

随机推荐