从像这样的脚本,可以查询当前状态:
value = Input.GetAxis ("Horizontal");
一个轴具有-1和1之间的值。中间位置为0。这种情况用于操纵杆输入和键盘输入。
然而,鼠标增量和Window Shake增量是鼠标或窗口从上一帧到现在的移动。这意思是当用户快速移动鼠标时,它可能大于1或小于-1。
参数内容如下:
1.触屏类:
MouseX 鼠标按着并沿着屏幕X轴方向滑动时触发
MouseY 鼠标按着并沿着屏幕Y轴方向滑动时触发
Mouse ScrollWheel 当鼠标滚动轮滚动时触发
2.键盘操作类:
1.Vertical 对应键盘上面的上下箭头,当按下上或下箭头时触发
2.Horizontal 对应键盘上面的左右箭头,当按下左或右箭头时触发
using UnityEngine;
using System.Collections;
public class example :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;
translation *= Time.deltaTime;
rotation *= Time.deltaTime;
transform.Translate(0, 0, translation);
transform.Rotate(0, rotation, 0);
}
}
// A very simplistic car driving on the x-z plane.
// 一个十分简单的在x-z平面的驾车例子
var speed : float = 10.0;
var rotationSpeed : float = 100.0;
function Update () {
// Get the horizontal and vertical axis.
//获取横向和纵向坐标轴
// By default they are mapped to the arrow keys.
//默认情况下他们关联到方向键上
// The value is in the range -1 to 1
//值的范围是在-1到1之间
var translation : float = Input.GetAxis ("Vertical") * speed;
var rotation : float = Input.GetAxis ("Horizontal") * rotationSpeed;
// Make it move 10 meters per second instead of 10 meters per frame...
// 使它每帧移动10米变为每秒移动10米...
translation *= Time.deltaTime;
rotation *= Time.deltaTime;
// Move translation along the object's z-axis
//沿着z轴平移对象
transform.Translate (0, 0, translation);
// Rotate around our y-axis
//以我们的y轴为中心旋转
原创文章,作者:Y4er,未经授权禁止转载!如若转载,请联系作者:Y4er