1. 首页
  2. 编程学习

Unity3D之float Input.GetAxis(string axisname)

从像这样的脚本,可以查询当前状态:

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

联系我们

在线咨询:点击这里给我发消息

QR code