Menu
CoddyTech

SerializeField

Termasuk bagian Dasar-Dasar Scripting Unity dalam perjalanan Unity di Coddy. Pelajaran 8 dari 67.

Field public melakukan dua hal sekaligus: field ini muncul di Inspector, dan semua script lain bisa membaca serta mengubahnya. Sering kali, kamu hanya menginginkan hal pertama. Field private (default di C#) hanya bisa diubah oleh class-nya sendiri, sehingga tidak ada script lain yang bisa merusaknya, tetapi Unity tidak menampilkannya di Inspector.

[SerializeField] meminta Unity untuk tetap menyimpan dan menampilkan field private. Jangkauan turret ini diatur untuk setiap turret di Inspector, dan tidak ada script lain yang bisa mengubahnya:

[SerializeField] private float range = 5f;

void Start()
{
    Debug.Log("Range: " + range);
}

Begitulah sebagian besar kode Unity menyimpan pengaturannya: private, dengan [SerializeField]. Waspadai kebalikannya: ubah field menjadi private dan lupa menambahkan atributnya, maka Unity diam-diam menghapus nilai yang tersimpan di scene. Field tersebut akan kembali ke angka yang ada di kode, tanpa error yang memberi tahu kamu.

challenge icon

Tantangan

Mudah

height lamp bersifat publik, sehingga skrip apa pun bisa memindahkannya. Jadikan height privat sambil tetap menampilkannya di Inspector, yang menetapkan nilainya menjadi 4. Lampu harus tetap tergantung pada ketinggian yang ditetapkan di Inspector.

Tekan Play dan lihat ketinggian lampu, lalu tekan Check.

Coba sendiri

using UnityEngine;

public class LampHeight : MonoBehaviour
{
    public float height = 1f;

    void Start()
    {
        transform.position = new Vector3(0, height, 0);
    }
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar Scripting Unity