Menu
CoddyTech

Liczby dziesiętne wymagają f

Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 3 z 85.

Liczby całkowite nie wystarczą w grze: balon unosi się na wysokości 3.5, a gracz biegnie z prędkością 4.2 jednostki na sekundę. Liczby z częścią dziesiętną mają własny typ — float:

float speed = 4.2f;

Zwróć uwagę na f na końcu. W C# zwykłe 4.2 jest typu double, czyli innego typu liczby dziesiętnej, a pozycje i rozmiary w Unity są typu float. f informuje C#, że liczba jest typu float. Jeśli je pominiesz, Unity odmówi uruchomienia gry i wyświetli taki błąd w konsoli:

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

Wygląda groźnie, ale oznacza tylko „dodaj f”. Liczba całkowita, taka jak 2, nie wymaga f: sama mieści się w typie float.

Jeszcze jedna niespodzianka: dzielenie dwóch wartości typu int zachowuje tylko część całkowitą, więc 7 / 2 daje 3. Zapisz 7 / 2f, aby otrzymać 3.5.

challenge icon

Wyzwanie

Łatwy

Napraw skrypt balonu, a następnie spraw, by unosił się wyżej i był większy.

  1. Naciśnij „Graj”: w konsoli pojawi się błąd CS0664 przy wierszu height.
  2. Zmień ten wiersz na float height = 3.5f;.
  3. Zmień wiersz z rozmiarem na float size = 1.5f;. Każda liczba z przecinkiem dziesiętnym wymaga f.

Naciśnij „Graj”: balon unosi się na wysokość 3.5, mając półtora raza większy rozmiar. Następnie naciśnij „Sprawdź”.

Spróbuj swoich sił

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);
    }
}

Wszystkie lekcje w sekcji Podstawy skryptów w Unity

Poćwicz samodzielnie: Edytor online Unity