码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-11-12 19:40:33      阅读:801      评论:0      收藏:0      [点我收藏+]

标签:

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

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

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

点击导航菜单栏》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");
    }
}

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

标签:

原文地址:http://www.cnblogs.com/kubll/p/4959705.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!