Unity脚本——13输入控制——02自定义输入

学习笔记适合新手,如有错误请指正。?号处也请各位指点下,谢谢。

键盘鼠标输入检测十分局限,一般仅用于计算机等设备,下面介绍另一种方法

自定义输入可以设置输入类型名称、输入设备类型、输入键位等参数,从而方便地解决了计算机与家用机的输入兼容

点击导航菜单栏》Edit》Project Settings》Input打开输入设置界面

unity提供了默认的输入设置包括:

Horizontal横向移动

Vertical纵向移动

Firel开火按钮等输入

Name:名字

Descriptive Name:控制设置中显示的正值名称

Descriptive Negative Name:控制设置中显示的负值名称

Negative Button:该按钮用于负方向移动轴

Positive Button:该按钮用于正方向移动轴

Alt Negative Button:备选按钮用于负方向移动轴

Alt Positive Button:备选按钮用于真方向移动轴

Gravity:当没哟u相关按钮按下时,回归0的速度,单位/秒

Dead:模拟的死区大小,设定范围所有模拟设备的值为0

Sensitivity:灵敏度,单位/秒,仅用于数码设备

Snap:如果启用,当按下相反方向的按钮,该轴值将重设为0

Invert:如果请用,负按钮将提供正值,反之亦然

Type:控制轴的输入设备类型

Axis:连接设备的轴将控制这个轴

Joy Num:连接操纵杆将控制这个轴

可以发现很多键如Horizontal都出现了重复,这是因为所有键位键盘鼠标是单独的一套键,而手柄则是另一套,例如:Firel开火键1分为键盘鼠标版和手机版

1按钮

键盘鼠标:键盘鼠标实现按钮非常简单

1设置类型:首先将Type设置为Key or Mouse Button

2填写名字:这里Name填的是Firel

3设置键位:因为是单一按钮,所以仅仅需要填写正向部分,Positive Button填left ctrl,Alt Positive Button填0,也就是键盘左侧的Control键或者鼠标左键都对应开火箭

手柄:步骤和键盘鼠标完全一样,只是键盘名称不一样而已,这里Positive Button填写的是joystick button 0

脚本:当在Input Manager界面中设置好键位后,我们可以通过脚本监测输入,如代码:

using UnityEngine;
using System.Collections;

public class C_3_8_2_1 : MonoBehaviour {
    void Update()
    {
        //按下Fire1键
        if(Input.GetButtonDown("Fire1"))
        {
            //...
        }
        //按住Fire1键
        if(Input.GetButton("Fire1"))
        {
            //...
        }
        //松开Fire1键
        if(Input.GetButtonUp("Fire1"))
        {
            //...
        }
    }
}

2方向轴

方向轴常用与控制玩家角色的左右移动或上下移动

他的设置页面和按钮是完全一样的,但用法却不一样,方向轴有两个按钮分别对应正负两个方向,

以Horizontal方向轴为例,如下图,按下键盘右箭头是正值,喊下键盘左键头是负值,输出的范围是【-1,1】的浮点数,我们可以用它来控制角色的左右移动

键盘鼠标:前几步和按钮一样,只是需要额外设置gravity、Dead、Sensitivity、Snap等参数

Gravity填写3表示当松开对应按钮后,输出值会以3/秒的速度迅速归零

Dead填写0.001表示当输出在[-0.001,0.001]之间时会被忽略不计,强制输出0

Sensitivity填写3表示当按钮对应按钮后,输出值会以3/秒的速度变化,当按下的是正向按钮时会迅速到达1,当按下的是负向按钮时会迅速到达-1

手柄:这里不再是手柄的按钮而是手柄轴

1设置类型:首先将Type设置为Joystick Axis

2填写名字:这里Name天地是Horizontal

3设置手柄:Joy Num栏如果填Get Motion from all Joysticks表示对应所有手柄,也可以填写Joystick 1等手柄序号

4设置轴:Axis栏这里填的是X axis,也就是手柄十字键的横向

脚本:脚本获得轴的代码非常简单

using UnityEngine;
using System.Collections;

public class C_3_8_2_2 : MonoBehaviour {
    void Update () {
        //得到Horizontal轴的值
        float axisH = Input.GetAxis("Horizontal");
    }
}
时间: 2024-10-13 00:59:34

Unity脚本——13输入控制——02自定义输入的相关文章

Unity脚本——13输入控制——03移动设备输入

学习笔记适合新手,如有错误请指正.?号处也请各位指点下,谢谢. 移动设备也就是手机.平板等通过手指点击屏幕操作的设备,Unity有专门的接口检测与屏幕互动的各个手指的位置状态等信息 与屏幕接触的手指的信息对应名为Touch类的对象,可以通过Input.Touches变量得到所有Touch Touch常用的参数 FingerId:手机的编号,整型 Phase:手机的阶段,枚举类型,分为这几个阶段:Began开始接触屏幕.Moved移动.Stationary静止.Ended手指离开屏幕.Cancel

js输入控制(只能输入整数小数等)

1.页面 <asp:TextBox runat="server" ID="NumZYZCZMJ" OnKeyUp="InputFloat(this)"></asp:TextBox> 2.JS //只能输入整数        function InputNumber(e) {            e.value = e.value.replace(/\D/g, "");            if (e

【Unity】7.6 自定义输入

分类:Unity.C#.VS2015 创建日期:2016-04-21 一.简介 在Unity中可以创建自定义的虚拟按键,然后将设备的输入映射到自定义的按键上.使用虚拟按键的好处是可以让游戏玩家自己定义按键,满足个性化的操作习惯. 创建虚拟按键的方法是依次打开菜单栏中的[Edit]->[Project Setting]->[Input]项,在Inspector视图中会显示当前的虚拟按键列表和参数. 虚拟按键属于输入轴(Axis)的一种特殊情况,在输入管理器中,都统一视为输入轴. Unity默认创

Asp.net控制TextBox只能输入数字

在Asp.net开发中,为了确保数据的正确性,经常要对用户输入的内容进行验证,比如说用户只能输入数字,不能输入中文和英文,这如何实现呢?下面我们来看看.    实现过程,在TextBox控件中加两个属性事件:<asp:TextBox ID="txtName" runat="server" Width="175px" style="ime-mode:disabled" onkeypress="if (event.

C#/VB.NET Winform程序自定义输入光标

本文转载自真有意思网(http://www.zu14.cn) 作者:三角猫 DeltaCat摘要:C#/VB.NET Winform程序自定义输入光标的实现,我们可以通过调用Windows 提供的一套对输入光标进行控制的API进行操作...... Windows 提供了一套对输入光标进行控制的API, 包括:CreateCaret,SetCaretPos,DestroyCaret,ShowCaret,HideCaret.这些API的定义如下: [DllImport("user32.dll&quo

Flex控制用户可输入到文本字段中的字符集

指示用户可以输入到控件的字符集.如果 restrict 属性的值为 null,则可以输入任何字符.如果 restrict 属性的值为空字符串,则不能输入任何字符.此属性只限制用户交互:脚本可以将任何文本放入文本字段中.如果 restrict 属性的值为字符串,则只能在文本字段中输入该字符串中的字符. Flex 按从左到右的顺序浏览字符串.可以使用连字符 (-) 指定一个范围.如果字符串以尖号 (^) 开头,则先接受所有字符,然后从接受字符集中排除字符串中 ^ 之后的字符.如果字符串不以尖号 (^

干货--Hadoop自定义数据类型和自定义输入输出格式整合项目案例

正文开始前 ,先介绍几个概念 序列化 所谓序列化,是指将结构化对象转化为字节流,以便在网络上传输或写到磁盘进行永久存储. 反序列化 是指将字节流转回到结构化对象的逆过程 序列化在分布式数据处理的两个大领域经常出现:进程间通信和永久存储 在Hadoop中,系统中多个节点上进程间的通信是通过"远程过程调用"(remote procedure call,RPC)实现的 .RPC协议将消息序列化成二进制流后发送到远程节点,远程节点接着将二进制流反序列化为原始消息 Hadoop使用了自己写的序列

Hadoop 高级程序设计(二)---自定义输入输出格式

Hadoop提供了较为丰富的数据输入输出格式,可以满足很多的设计实现,但是在某些时候需要自定义输入输出格式. 数据的输入格式用于描述MapReduce作业的数据输入规范,MapReduce框架依靠数据输入格式完后输入规范检查(比如输入文件目录的检查),对数据文件进行输入分块(InputSpilt)以及提供从输入分快中将数据逐行的读出,并转换为Map过程的输入键值对等功能.Hadoop提供了很多的输入格式,TextInputFormat和KeyValueInputFormat,对于每个输入格式都有

hadoop自定义输入格式

一个任务的开始阶段是由InputFormat来决定的! 1.在MapReduce框架中,InputFormat扮演的角色:– 将输入数据切分成逻辑的分片(Split),一个分片将被分配给一个单独的Mapper– 提供RecordReader的对象,该对象会从分片中读出<Key-Value>对供Mapper处理 1.1InputFormat对Mapper的影响:– 决定了Mapper的数量– 决定了Mapper的map函数接收的Key和Value 1.2InputFormat: InputFor