Есть вот такой код:
using UnityEngine;
using System.Collections;
// Performs a mouse look.
public class FPSInput : MonoBehaviour
{
public float speed_run;
public float jumpPower;
private float gravity_character;
private Vector3 move_vector;
private CharacterController My_controller;
private void Start()
{
My_controller = GetComponent<CharacterController>();
}
private void Update()
{
PlayerMove();
Gravity();
}
private void PlayerMove()
{
move_vector = Vector3.zero;
if (Input.GetButtonDown("Up"))
{
move_vector.x = speed_run;
}
if (Vector3.Angle(Vector3.forward, move_vector) > 1f ||
Vector3.Angle(Vector3.forward, move_vector) == 0)
{
Vector3 direct =
Vector3.RotateTowards(transform.forward, move_vector, speed_run, 0.0f);
transform.rotation = Quaternion.LookRotation(direct);
}
move_vector.y = gravity_character;
My_controller.Move(move_vector * Time.deltaTime); // Move player
}
private void Gravity()
{
if (!My_controller.isGrounded) gravity_character -= 20f * Time.deltaTime;
else gravity_character = -1f;
if (Input.GetKeyDown(KeyCode.Space) && My_controller.isGrounded)
{
gravity_character = jumpPower;
}
}
}
он включён в игрока. Но при запуске выходит такая ошибка:
ArgumentException: Input Button Up is not setup.
To change the input settings use: Edit -> Project Settings -> Input
FPSInput.PlayerMove () (at Assets/FPSInput.cs:28)
FPSInput.Update () (at Assets/FPSInput.cs:21)
Подскажите новичку как настроить кнопку.
Проблема заключается в этой строке:
Input.GetButtonDown("Up")
А значит она следующее, Unity не понимает какую кнопку вы имеете в виду. Все возможные кнопки, на которые реагирует метод Input.GetButtonDown()
, указываются в настройках Input проекта. Как раз туда вас Unity и пытается отправить (Edit -> Project Settings -> Input).
В этом окне вы можете добавить соответствующую кнопку с названием "Up", по умолчанию такой кнопки в этом списке нет. По этому, когда Unity доходит до вызова метода Input.GetButtonDown()
, то ищет указанное значение "Up" именно в этих настройках. Вы можете добавить новую кнопку с таким названием в этих настройках или изменить параметр, с которым вызываете Input.GetButtonDown()
, что ваша ошибка больше не появлялась.
Все, указанные здесь кнопки не являются реальными клавишами на клавиатуре или кнопками мыши, это - виртуальные кнопки. Вы можете настроить эти виртуальные кнопки так, чтобы они соответствовали нужным клавишам клавиатуры или кнопкам мыши или кнопкам других контроллеров (например гейм-падов). Это сделано для того, чтобы унифицировать управление вашей игрой в независимости от того, каким устройством ввода вы пользуетесь.
Если остались вопросы по поводу Input, можете посмотреть официальный туториал по этой теме (на простом английском).
Если добавление кнопки - не то, что вам требуется, и вы хотите просто обрабатывать нажатие какой-либо клавиши клавиатуры, воспользуйтесь Input.GetKeyDown().
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
You are testing an applicationThe application includes methods named Calculatelnterest and LogLine
Как вызвать функцию при нажатии на раскрытие узла TreeView ?
нужно найти в строке # или 2, и если есть то записать в строку столбца н/у, а если нету то "у"
Что мне нужно? 1Выставить мою бесплатную программу на майкрасофт стор, с включающим внутренную оплату через майкрасофт