Input.GetAxis 用法:
GetAxis 是个方法,需要传参数,参数为string类型,参数如下:
一:触屏类
1.Mouse X 鼠标沿着屏幕X移动时触发
2.Mouse Y 鼠标沿着屏幕Y移动时触发
3.Mouse ScrollWheel 当鼠标滚动轮滚动时触发
二:键盘操作类
1.Vertical 对应键盘上面的上下箭头,当按下上或下箭头时触发
2.Horizontal 对应键盘上面的左右箭头,当按下左或右箭头时触发
例:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class InputFun : MonoBehaviour {
public float speed = 10.0F;
public float rotationSpeed = 100.0F;
public float horizontalSpeed = 2.0F;
public float verticalSpeed = 2.0F;
void Update () {
ReceiveInput();
}
void ReceiveInput()
{
//鼠标移动
float h = horizontalSpeed * Input.GetAxis("Mouse X");
float v = verticalSpeed * Input.GetAxis("Mouse Y");
transform.Rotate(v, h, 0);
//键盘按键
float translation = Input.GetAxis("Vertical") * speed;
float rotation = Input.GetAxis("Horizontal") * rotationSpeed;
translation *= Time.deltaTime;
rotation *= Time.deltaTime;
transform.Translate(0, 0, translation);
transform.Rotate(0, rotation, 0);
}
}
以下转自:
http://chaoyueg.blog.163.com/blog/static/9706739220131120105829434/
按键
Input.GetKey(“up”) = Input.GetKey(KeyCode.UpArrow) 按住键盘上键
Input.GetKeyDown (“up”) 按下键盘上键
Input.GetKeyUp (“up”) 放开键盘上键
(KeyCode.UpArrow)为键码
Input.GetButton("") = Input.GetKey("") 两种几乎相同(目前没发现差异)
Input.GetButton一样会有分Input.GetButtonDown & Input.GetButtonUp
("")符号内为按键英文--参考Unity→Edit→Project Settings→Input(可新增)
PS : Unity内并没有内建android(返回与选单)功能键设定,必须使用者自行设定,
在Input.GetButton("")中"escpae"&"menu"有对应返回与选单键
例: 按下返回就退出
if(Input.GetKeyDown (“escpae”))
{
Application.Quit();
}
滑鼠用
Input.GetMouseButton(0) 当0键被按住持续侦测(包含down和up各一次)
Input.GetMouseButtonDown(0) 当0键被按下一次
Input.GetMouseButtonUp(0) 当0键放开一次
键 : 0=左 1=中 2=右
PS : Unity有对应滑鼠左键输入功能部分可以用在Android手指触碰的操作上
获取轴
Input.GetAxis("") -- ("")参考Unity→Edit→Project Settings→Input(可新增)
根据座标轴传回虚拟座标值,取得输入装置输入时值范围[-1,1]
例: Input.GetAxis(“Mouse x”) - 可取得滑鼠横向移动增量
触碰
Input.touchCount - 触碰数量
Input.GetTouch(0) - 当第一支手指触碰时
0=第一支 1=第二支 2=第三支以此类推(触碰到点的侦测数量上限未测不知)
TouchPhase - 触碰状态有分五种Began Moved Stationary Ended Canceled
Began按下、Moved移动、Stationary按住没移动、Ended离开
Canceled用于触碰超过5点以上或贴至脸上时取消追踪
Input.GetTouch(0).position 取得第一支手指触碰座标
例 :
Touch 单点移动判断式
if(Input.touchCount == 1 && Input.GetTouch(0).phase==TouchPhase.Moved){}
(触碰数量为1个) 和(第一支手指触碰时的状态为移动) 时{}
Touch 双点移动判断式
if(Input.touchCount >1){
if(Input.GetTouch(0).phase==TouchPhase.Moved ||
Input.GetTouch(1).phase==TouchPhase.Moved){ }}
(触碰数量超过1个) 和(第一支手指触碰时的状态为移动)或者(第二支手指触碰时的状态为移动)时{}
Input.GetTouch(0) 和 Input.GetMouseButton(0)
单点时大致上互通(不确定是否完全相同)
多点上就会出现差异Touch会取手指前后顺序Mouse会取中心点