Menu
CoddyTech

Для дробных чисел нужна f

Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 3 из 85.

Для игры целых чисел недостаточно: воздушный шар парит на высоте 3.5, игрок бежит со скоростью 4.2 единицы в секунду. Числа с десятичной точкой имеют собственный тип — float:

float speed = 4.2f;

Обрати внимание на f в конце. В C# обычное 4.2 имеет тип double — это ещё один десятичный тип, а координаты и размеры в Unity имеют тип float. Буква f сообщает C#, что число имеет тип float. Если её пропустить, Unity откажется запускать игру и выведет эту ошибку в Console:

error CS0664: Literal of type double cannot be implicitly converted to type 'float'; use an 'F' suffix to create a literal of this type

Ошибка выглядит пугающе, но означает только: «добавь f». Для целого числа, например 2, буква f не нужна: оно и так помещается во float.

Ещё один сюрприз: при делении двух значений типа int сохраняется только целая часть, поэтому 7 / 2 — это 3. Напиши 7 / 2f, чтобы получить 3.5.

challenge icon

Задание

Легко

Исправь скрипт воздушного шара, затем сделай его выше и больше.

  1. Нажми «Играть»: в консоли отображается ошибка CS0664 в строке с height.
  2. Измени эту строку на float height = 3.5f;.
  3. Измени строку с размером на float size = 1.5f;. После каждого числа с десятичной точкой нужна f.

Нажми «Играть»: воздушный шар поднимается на высоту 3.5, увеличившись в полтора раза. Затем нажми «Проверить».

Попробуйте сами

using UnityEngine;

public class Balloon : MonoBehaviour
{
    void Start()
    {
        float height = 2.5;
        float size = 1;

        transform.position = new Vector3(0, height, 0);
        transform.localScale = new Vector3(size, size, size);
    }
}

Все уроки раздела Основы скриптинга в Unity

Потренируйтесь самостоятельно: Песочница Unity