Как переместить значения из InputFields в переменные в скрипте GameObject - PullRequest
0 голосов
/ 16 декабря 2018

Я создаю игру, которая имитирует движение снаряда по сфере, и все, что мне нужно, чтобы пользователь предоставил, это количество гравитации, угол запуска и скорость.

Для того, чтобы получить этот вводЯ сделал холст и прикрепил его к основной камере вместе с тремя различными полями ввода (переименованный угол, скорость и грав). Однако я не уверен, как получить данные из этих полей и перенести их в уже существующие переменные в сценарии сферы. Пока у меня есть:

public class SphereJump : MonoBehaviour{

public InputField Speed;
public InputField Grav;
public InputField Angle;

//The following are the three variables required to calculate trajectory in 
later calculations
public float gravity = float.Parse(Grav.text);
public float InitialSpeed = float.Parse(Speed.text);
public float LaunchAngle = float.Parse(Angle.text);

Если честно, яне думаю, что float.parse необходим, так как я изменил тип содержимого всех трех полей ввода на десятичное число, но, тем не менее, я получаю сообщение об ошибке "Инициализатор поля не может ссылаться на нестатическое поле, метод или свойство».

1 Ответ

0 голосов
/ 16 декабря 2018

Вы не можете использовать переменные для инициализации других переменных так, как вы хотите в вашей глобальной области видимости.Вы должны изменить гравитацию, InitialSpeed ​​и LaunchAngle на статическую.Обычно вы делаете инициализацию в конструкторах классов.В Unity3D с MonoBehaviour вы обычно делаете это в методе Start () или Awake ().

Сделайте это вместо:

public InputField Speed;
public InputField Grav;
public InputField Angle;
public float gravity;
public float InitialSpeed;
public float LaunchAngle;

private void Start()
{
    gravity = float.Parse(Grav.text);
    InitialSpeed = float.Parse(Speed.text);
    LaunchAngle = float.Parse(Angle.text);
}

Нет ничего плохого в использовании float.Parse ()Вот.Всегда лучше убедиться, что значение, переданное вашим переменным из текстового поля, имеет правильный тип.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...