Перейти к содержимому

Getaxis unity что это

  • автор:

Input.GetAxis

Благодарим вас за то, что вы помогаете нам улучшить качество документации по Unity. Однако, мы не можем принять любой перевод. Мы проверяем каждый предложенный вами вариант перевода и принимаем его только если он соответствует оригиналу.

Ошибка внесения изменений

По определённым причинам предложенный вами перевод не может быть принят. Пожалуйста попробуйте снова через пару минут. И выражаем вам свою благодарность за то, что вы уделяете время, чтобы улучшить документацию по Unity.

Ваше имя Адрес вашей электронной почты Предложение * Разместить предложенное
public static function GetAxis ( axisName : string): float;
public static float GetAxis (string axisName );

Параметры

Описание

Возвращает значение по axisName виртуальной оси.

Для ввода с клавиатуры или джойстика значение будет лежать в диапазоне -1. 1. If the axis is setup to be delta mouse movement, the mouse delta is multiplied by the axis sensitivity and the range is not -1. 1.

Это не зависит от частоты кадров. При использовании данного значения нет необходимости беспокоиться об изменении частоты кадров.

// A very simplistic car driving on the x-z plane.

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 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. 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;

public class ExampleClass : 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); > >
// Performs a mouse look.

var horizontalSpeed : float = 2.0; var verticalSpeed : float = 2.0; function Update () < // Get the mouse delta. This is not in the range -1. 1 var h : float = horizontalSpeed * Input.GetAxis ("Mouse X"); var v : float = verticalSpeed * Input.GetAxis ("Mouse Y"); transform.Rotate (v, h, 0); >
using UnityEngine; using System.Collections;

public class ExampleClass : MonoBehaviour < public float horizontalSpeed = 2.0F; public float verticalSpeed = 2.0F; void Update() < float h = horizontalSpeed * Input.GetAxis("Mouse X"); float v = verticalSpeed * Input.GetAxis("Mouse Y"); transform.Rotate(v, h, 0); > >

Традиционный игровой ввод

Unity поддерживает ввод с клавиатуры, джойстика и гейпада.

Virtual axes and buttons can be created on the Input window, and end users can configure Keyboard input in a nice screen configuration dialog.

NOTE: This is a legacy image. This Input Selector image dates back to the very earliest versions of the Unity Editor in 2005. GooBall was a Unity Technologies game.

Вы можете настроить джойстики, геймпады, клавиатуру и мышь, затем обращаться к ним через один простой скриптовый интерфейс.

Virtual Axes

Из скриптов все виртуальные оси доступны по их именам.

Каждый проект при создании содержит следующие оси ввода по умолчанию:

  • Horizontal и Vertical привязаны к w, a, s, d и клавишам направления.
  • Fire1, Fire2, Fire3 привязаны к клавишам Control, Option (Alt) и Command соответственно.
  • Mouse X и Mouse Y привязаны к перемещениям мыши.
  • Window Shake X и Window Shake Y привязаны к перемещению окна.

Добавление новых осей ввода

If you want to add new virtual axes go to the Edit > Project Settings menu, then select the Input category. Here you can also change the settings of each axis.

Вы привязываете каждую ось к двум кнопкам на джойстике, мыши или клавиатуре.

Свойство: Функция:
Name Имя, используемое для проверки этой оси из скрипта.
Descriptive Name Имя положительного значения, отображаемое на вкладке Input диалогового окна Configuration в автономных сборках.
Descriptive Negative Name Имя отрицательного значения, отображаемое на вкладке Input диалогового окна Configuration в автономных сборках.
Negative Button Кнопка, используемая для смещения значения оси в отрицательном направлении.
Positive Button Кнопка, используемая для смещения значения оси в положительном направлении.
Alt Negative Button Альтернативная кнопка, используемая для смещения значения оси в отрицательном направлении.
Alt Positive Button Альтернативная кнопка, используемая для смещения значения оси в положительном направлении.
Gravity Скорость в единицах в секунду, с которой ось возвращается в нейтральное положения, когда кнопки не нажаты.
Dead Размер аналоговой мертвой зоны. Все значения аналоговых устройств, попадающие в этот диапазон, считаются нейтральными.
Sensitivity Speed in units per second that the axis will move toward the target value. This is for digital devices only.
Snap Если включено, значение оси будет сбрасываться в ноль при нажатии кнопки в противоположном направлении.
Invert Если включено, Negative Buttons будут выдавать положительные значения, и наоборот.
Type Тип ввода, который будет управлять осью.
Axis Ось подключенного устройства, которая будет управлять этой осью.
Joy Num Подключенный джойстик, который будет управлять этой осью.

Используйте эти параметры для точной настройки внешнего вида ввода. Также, все они задокументированы во всплывающих подсказках в редакторе.

Использование осей ввода из скриптов

Вы можете запросить текущее состояние из скрипта так:

 value = Input.GetAxis ("Horizontal"); 

An axis has a value between –1 and 1. The neutral position is 0. This is the case for joystick input and keyboard input.

Однако изменения осей Mouse и Window Shake показывают, насколько мышь или окно сдвинулись по сравнению с последним кадром. Это значит, что они могут быть больше, чем 1 или меньше, чем –1, когда пользователь быстро двигает мышь.

Можно создавать несколько осей с одним именем. При получении ввода, будет возвращаться ось с наибольшим абсолютным значением. Это позволяет назначить больше одного устройства ввода на одно имя оси. Например, создайте одну ось для ввода с клавиатура и одну ось для ввода с джойстика с одинаковым именем. Если пользователь использует джойстик, ввод будет идти с джойстика, иначе ввод будет идти с клавиатуры. Таким образом, вам не нужно учитывать откуда приходит ввод при написании скриптов.

Названия кнопок

Чтобы назначить кнопку оси, вам необходимо ввести имя кнопки в свойстве Positive Button или Negative Button в окне Inspector.

Keys (Клавиши)

Названия кнопок следуют этому соглашению:

  • Обычные клавиши“: ”a“, ”b“, ”c» …
  • Цифровые клавиши: “1”, “2”, “3”, …
  • Клавиши стрелок: “up”, “down”, “left”, “right”
  • Клавиши цифровой клавиатуры: “[1]”, “[2]”, “[3]”, “[+]”, “[equals]”
  • Клавиши модификаторов: “right shift”, “left shift”, “right ctrl”, “left ctrl”, “right alt”, “left alt”, “right cmd”, “left cmd”
  • Клавиши мыши: “mouse 0”, “mouse 1”, “mouse 2”, …
  • Кнопки джойстика (от любого джойстика): “joystick button 0”, “joystick button 1”, “joystick button 2”, …
  • Кнопки джойстика (от заданного джойстика): “joystick 1 button 0”, “joystick 1 button 1”, “joystick 2 button 0”, …
  • Специальные клавиши: “backspace”, “tab”, “return”, “escape”, “space”, “delete”, “enter”, “insert”, “home”, “end”, “page up”, “page down”
  • Функциональные клавиши: “f1”, “f2”, “f3”, …

Названия, используемые для определения кнопок одни и те же при написании скриптов и в окне Inspector.

 value = Input.GetKey ("a"); 

Note also that the keys are accessible using the KeyCode enum parameter.

События Unity | C#

Как поймать событие Input.GetAxis в Unity? И, если можно, добавьте ссылку на документацию со всеми имеющимися событиями unity.

Отслеживать
задан 6 июл 2020 в 22:03
Sire IMPACTUS Sire IMPACTUS
97 1 1 серебряный знак 14 14 бронзовых знаков
Мне кажется, Input.GetAxis это не событие, а метод.
6 июл 2020 в 22:13
Это я знаю, но мне нужно событие именно этого метода.
6 июл 2020 в 22:23

Лучше просто скажите своими словами, что вы хотите сделать, потому что у методов не бывает событий. Событие это особый вид делегата, а делегат — особый вид метода. GetAxis() — обычный метод, и к делегатам никакого отношения не имеет.

6 июл 2020 в 22:38

Вангую! Хочет совместить работу Input.GetAxis() с другим UI аналогом для мобильника, что бы поддержывался и геймпад и тачскрин. И не смотря на то что мобильники стали основная платформа юнити, Input не обслуживает UI интерфейсы, только Touchs . Вот он и хочет понять, когда ловить инпуты с GetAxis , а когда с UI .

6 июл 2020 в 23:49

Нет, не то и не другое. Я хочу ловить нажатие AWSD и запускать соответствуещий метод. Это можно легко сделать в update или fixedUpdate, но я слышал, что есть способ с событиямия, поэтому хотелось его попробовать.

7 июл 2020 в 9:38

3 ответа 3

Сортировка: Сброс на вариант по умолчанию

Input.GetAxis возвращает число (текущая скорость на определенной оси), а чтобы это было событием нужно уже это реализовывать вручную. Но вообще все, что касается частого обновления, не очень то хорошо реализовывать через events, а input в особенности (проверено на собственном опыте).

Для кнопки задержка в .1s может и норм, но вот когда пытаешься удрать от врагов и управление работает с небольшой задержкой — это уже неприемлемо. Так что лучше тут воздержаться от использования событий.

Как работает input.getaxis и input.getbuttondown

Как работает input.getaxis и input.getbuttondown
Типа надо кнопке тег дать?
Типо перс при нажатии кнопки идёт влево, то беж надо
If (Input.getaxis(«left»))?
Или надо использовать Input.getbuttondown?
А кнопе «left» надо дать тег?
В unity новичек

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

В чем отличие Input.GetAxis(«Mouse X») и Input.GetAxis(«Horizontal»)?
Собственно, это весь вопрос.

Input.GetAxis(«Horizontal») Touch
Можно ли как-то значение с Input.GetAxis("Horizontal") получить при нажатии на сенсор? Просто.

Не работает онлайн справка или где находится описание класса Input
Во время написания скрипта в MonoDevelop при нажатии ctrl + ‘ должна открываться онлайн справка по.

295 / 217 / 85
Регистрация: 17.02.2016
Сообщений: 1,276
Записей в блоге: 1
Регистрация: 08.07.2019
Сообщений: 31
Нихуя не понятно да?
295 / 217 / 85
Регистрация: 17.02.2016
Сообщений: 1,276
Записей в блоге: 1

ЦитатаСообщение от Zalim_ Посмотреть сообщение

понятно да
40 / 23 / 19
Регистрация: 19.10.2019
Сообщений: 209

Существует Input.GetAxis(«Vertical») и Input.GetAxis(«Horizontal»), они возвращают значение типа float, которое зависит от нажатия на стрелки вверх(1) или в низ(-1)(в первом случе) или в лево(-1) и в право(1)(во втором), т.е. можно сделать

1 2 3 4
private void Update(){ float directionX = Input.GetAxis("Horizontal"); float directionY = Input.GetAxis("Vertical"); }

GetKeyDown проверяет не нажата ли кнопка, возвращает True или False можно сделать

1 2 3 4 5
private void Update(){ if(Input.GetKeyDown(KeyCode.A)){ //Действие } }

Регистрация: 08.07.2019
Сообщений: 31
Игра на Android, кнопки виртуальные
295 / 217 / 85
Регистрация: 17.02.2016
Сообщений: 1,276
Записей в блоге: 1

ЦитатаСообщение от Zalim_ Посмотреть сообщение

Игра на Android, кнопки виртуальные
всеравно нужно больше вводной и конкретной информации
Регистрация: 08.07.2019
Сообщений: 31

Игра на Android, кнопки виртуальные, сделал проверку что если нажата кнопка со стрелокой влево, то он идёт влево, но он не идёт
К кому нету доступа сделал примерно так
If (Input.getbuttondown(«left»))
Дальше все правильно написано я уверен, но ничего все ровно не получается, я что то не так делаю? Или кнопке надо тэг дать?

Регистрация: 07.02.2020
Сообщений: 93

Сверху тебе уже дали ответ на твой вопрос, просто нужно подумать головой совсем чуть чуть и понять как это работает.

29 / 19 / 10
Регистрация: 24.02.2015
Сообщений: 124
Кнопки или джойстик? Если кнопки — то ответ уже дан. Если джостик, до у него тоже оси
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Как вставить в input с маской от jQuery Masked Input
Здравствуйте. Создал такую маску для ввода карты $(‘#card’).mask("9999 9999 9999 9999");.

Как реализовать на месте input button просто input?
Приветствую всех. Есть кнопка. Помогите реализовать логику. По нажатию на кнопку , появляется.

Как поместить svg картинку в input которая будет менять цвет когда input получает фокус?
Хочу сверстать форму отправки сообщения (изображение прикрепил). Но не получается сделать так.

Как передать данные из input в другой input
как передать дание из input в другой input <form method="post" action="test3.php" target="_blank">.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *