Input.GetAxis
Declaration
public static float GetAxis(string axisName);Описание
Возвращает значение виртуальной оси, заданной параметром axisName.
Примечание: Этот API является частью устаревшего менеджера ввода. Рекомендуется не использовать этот API в новых проектах. Для новых проектов используйте пакет Input System. Чтобы узнать больше о вводе, см. Вводимые ресурсы.
Значение будет находиться в диапазоне -1...1 для устройств ввода клавиатуры и джойстика.
Значение этого значения зависит от типа управления вводом, например, при горизонтальной оси джойстика значение 1 означает, что джойстик нажимается полностью вправо, а значение -1 означает, что он полностью налево; значение 0 означает, что джойстик находится в нейтральном положении.
Если ось сопоставлена с мышью, значение будет иным и не будет находиться в диапазоне -1...1. Вместо этого это будет текущая дельта мыши, умноженная на чувствительность оси. Как правило, положительное значение означает, что мышка движется вправо/вниз, а отрицательное значение означает, что мышка движется влево/вверх.
Этот параметр не зависит от частоты кадров; вам не нужно беспокоиться о разных частотах кадров при использовании этого значения.
Чтобы настроить ввод или просмотреть параметры для axisName, перейти Изменить > Project Настройки > Менеджер ввода. Откроется диспетчер ввода. Развернуть Ось чтобы увидеть список ваших текущих входов. Вы можете использовать один из них в качестве axisName. Чтобы переименовать вход или изменить положительную кнопку и т.д., разверните одну из опций и измените имя в Имя поле или Положительная кнопка поле. Кроме того, измените Тип до Джойстик оси. Чтобы добавить новый ввод, добавьте 1 к числу в поле Размер поле.
using UnityEngine; using System.Collections;
// A very simplistic car driving on the x-z plane.
public class ExampleClass : MonoBehaviour { public float speed = 10.0f; public float rotationSpeed = 100.0f;
void 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 float translation = Input.GetAxis("Vertical") * speed; float rotation = Input.GetAxis("Horizontal") * rotationSpeed;
// Make it move 10 meters per second instead of 10 meters per frame... translation *= Time.deltaTime; rotation *= Time.deltaTime;
// Move translation along the object's z-axis transform.Translate(0, 0, translation);
// Rotate around our y-axis transform.Rotate(0, rotation, 0); } }
using UnityEngine; using System.Collections;
// Performs a mouse look.
public class ExampleClass : MonoBehaviour { float horizontalSpeed = 2.0f; float verticalSpeed = 2.0f;
void Update() { // Get the mouse delta. This is not in the range -1...1 float h = horizontalSpeed * Input.GetAxis("Mouse X"); float v = verticalSpeed * Input.GetAxis("Mouse Y");
transform.Rotate(v, h, 0); } }
Примечание: Горизонтальные и вертикальные диапазоны изменяются от 0 до +1 или -1 с увеличением/уменьшением шагами по 0.05f. GetAxisRaw изменяются от 0 до 1 или -1 немедленно, то есть без шагов.