Float dan Mathf
Termasuk bagian Dasar-Dasar Scripting Unity dalam perjalanan Unity di Coddy. Pelajaran 9 dari 67.
Unity menghitung menggunakan float: posisi, kecepatan, sudut, dan Time.deltaTime semuanya bertipe float. C# membaca 0.5 sebagai double dan tidak akan mengubah double menjadi float tanpa instruksi, karena presisinya bisa berkurang. Dua error kompilasi akibat hal ini muncul di hampir semua skrip pertama pemula:
float half = 0.5;menghasilkanCS0664: Literal of type double cannot be implicitly converted to type 'float'; use an 'F' suffix.float s = Math.Sin(x);menghasilkanCS0266: Cannot implicitly convert type 'double' to 'float', karenaSystem.Mathbekerja dengan double.
Solusinya: tulis literal float dengan f, dan gunakan Mathf, versi float dari Math milik Unity (Mathf.Sin, Mathf.Abs, Mathf.Sqrt, Mathf.PI). Pelampung yang bergerak naik turun ini mengalami kedua error tersebut, lalu berhasil dikompilasi setelah diperbaiki:
// sebelumnya: float y = 1 + Math.Sin(Time.time * 2) * 0.5;
float y = 1 + Mathf.Sin(Time.time * 2) * 0.5f;
transform.position = new Vector3(0, y, 0);Bilangan bulat seperti 1 dan 2 tidak memerlukan akhiran: int berubah menjadi float tanpa kehilangan nilai.
Tantangan
MudahJantungnya harus berdenyut: ukurannya berubah dari 1 hingga 1.5 lalu kembali, tiga kali per detik, sama pada setiap sumbu. Skrip tidak dapat dikompilasi. Perbaiki error dengan operasi matematika float Unity, dan pertahankan rumusnya.
Tekan Mainkan untuk melihat error di Console, perbaiki, lalu tekan Periksa.
Coba sendiri
using System;
using UnityEngine;
public class Pulse : MonoBehaviour
{
void Update()
{
float size = 1 + Math.Abs(Math.Sin(Time.time * 3)) * 0.5;
transform.localScale = new Vector3(size, size, size);
}
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar Scripting Unity
1Skrip Pertamamu
Halo, UnityLetakkan KubusBergerak di Setiap FrameBerputar Setiap DetikKendalikan dengan TombolRingkasan: Kendarai Kubus4Vektor
Menjumlahkan VektorArahRuang Lokal dan DuniaKecepatan DiagonalJarak antara BendaVector3 adalah StructRingkasan: Pilot Drone7Proyek: Tangkap Bintang
Si PenangkapBintang Jatuh5Transformasi dan Hierarki
Objek Induk dan AnakSkalaMenghadap ke ObjekBergerak Menuju TitikRangkuman: Bulan yang Mengorbit6GameObject dan Komponen
Referensi di InspectorMendapatkan KomponenKomponen yang HilangMenambahkan KomponenRequireComponentTampilkan dan SembunyikanRangkuman: Sakelar Lampu