Dezimalzahlen brauchen ein f
Teil des Abschnitts Unity-Scripting: Grundlagen der Unity-Journey von Coddy. Lektion 3 von 85.
Ganze Zahlen reichen für ein Spiel nicht aus: Ein Ballon schwebt bei 3.5, ein Spieler läuft mit 4.2 Einheiten pro Sekunde. Zahlen mit einem Dezimalpunkt haben ihren eigenen Typ: float:
float speed = 4.2f;Achte auf das f am Ende. In C# ist ein einfaches 4.2 ein double, ein weiterer Dezimaltyp, und Unitys Positionen und Größen sind Floats. Das f teilt C# mit, dass die Zahl ein Float ist. Lässt du es weg, weigert sich Unity, das Spiel zu starten, und zeigt diesen Fehler in der Konsole an:
error CS0664: Literal of type double cannot be implicitly converted to type 'float'; use an 'F' suffix to create a literal of this typeDas sieht beängstigend aus, bedeutet aber nur: „Füge das f hinzu.“ Eine ganze Zahl wie 2 braucht kein f: Sie passt so, wie sie ist, in einen Float.
Eine weitere Überraschung: Wenn du zwei ints dividierst, bleibt nur der ganzzahlige Teil übrig, also ist 7 / 2 gleich 3. Schreibe 7 / 2f, um 3.5 zu erhalten.
Aufgabe
EinfachKorrigiere das Skript des Ballons und lass ihn dann höher und größer schweben.
- Drücke auf „Spielen“: In der Konsole wird in der Zeile mit
heightder Fehler CS0664 angezeigt. - Ändere diese Zeile zu
float height = 3.5f;. - Ändere die Zeile für die Größe zu
float size = 1.5f;. Jede Zahl mit einem Dezimalpunkt benötigt einf.
Drücke auf „Spielen“: Der Ballon schwebt auf 3.5, mit anderthalbfacher Größe. Klicke dann auf „Prüfen“.
Probier es selbst
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);
}
}
Alle Lektionen in Unity-Scripting: Grundlagen
1C#-Grundlagen in Unity
Hallo, UnityVariablenDezimalzahlen brauchen ein fText in der KonsoleVariablen, die sich etwas merkenIf und ElseZahlen vergleichenRückblick: Münzsammler7Schleifen und Methoden
Wiederholen mit forSchleifen in SchleifenEine Methode schreibenMethoden mit RückgabewertArraysRückblick: Treppe10Dinge finden
Nach Namen suchenTagsNach Typ suchenReferenzen schlagen SuchenUnitys NullRückblick: nächste Münze13Projekt: Weiche den Blöcken aus
Der LäuferBlöcke vom Himmel2Bring es in Bewegung
Platziere den WürfelBewege ihn in jedem FrameDrehe ihn jede SekundeSteuere mit den TastenRückblick: Fahre den Würfel5Vektoren
Vektoren addierenRichtungenLokaler und globaler RaumDiagonale GeschwindigkeitAbstand zwischen ObjektenVector3 ist eine StrukturRückblick: Drohnenpilot8GameObjects und Komponenten
Referenzen im InspectorEine Komponente abrufenFehlende KomponentenEine Komponente hinzufügenRequireComponentEin- und AusblendenRückblick: Lichtschalter11Prefabs und Erzeugen von Instanzen
Prefabs und InstantiateNach Zeitintervall erzeugenIn einem Raster erzeugenListen von ObjektenDas Neueste zurücknehmenZerstörenZufälliges ErzeugenRückblick: Feuerwerk14Abschließende Herausforderungen
MünzmagnetDie Straße überquerenStraßenverkehrTurmbauerLanden oder verfehlen3Der Inspector
Inspector-FelderSerializeFieldFließkommazahlen und MathfInspector-AttributeRückblick: Aufzug6Transformationen und Hierarchie
Eltern und KinderHisse die FlaggeSkalierungDinge anschauenAuf einen Punkt zubewegenRückblick: Mond in Umlaufbahn9Projekt: Fang den Stern
Der FängerEin fallender Stern12Der Lebenszyklus eines Skripts
Awake und StartUpdate und LateUpdateOnEnable und OnDisableDie Reihenfolge im LebenszyklusRückblick: Lifecycle LoggerÜbe selbstständig: Unity-Playground