Menu
CoddyTech

SerializeField

Termasuk bagian Dasar-Dasar Scripting Unity dalam perjalanan Unity di Coddy. Pelajaran 15 dari 85.

Field public melakukan dua hal sekaligus: field ini muncul di Inspector, dan setiap skrip lain dapat membaca serta mengubahnya. Sering kali kamu hanya menginginkan hal pertama. Field private (default di C#) hanya dapat diubah oleh class-nya sendiri, jadi skrip lain tidak dapat 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 skrip lain yang dapat mengaksesnya:

[SerializeField] private float range = 5f;

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

Begini cara sebagian besar kode Unity menyimpan pengaturannya: private, dengan [SerializeField]. Waspadai kebalikannya: jadikan field private dan lupa menambahkan atribut, maka Unity diam-diam menghapus nilai yang tersimpan di scene. Field akan kembali ke angka dalam kode, tanpa error yang memberi tahu kamu.

challenge icon

Tantangan

Mudah

Sembunyikan tinggi lampu dari skrip lain, tetapi tetap tampilkan di Inspector.

  1. Ubah field menjadi [SerializeField] private float height = 1f;.
  2. Biarkan Start() seperti semula: Inspector mengatur height menjadi 4.

Tekan tombol “Main”: lampu tetap tergantung pada ketinggian 4. Lalu tekan tombol “Periksa”.

Coba sendiri

using UnityEngine;

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

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

Semua pelajaran di Dasar-Dasar Scripting Unity

Latihan sendiri: Playground Unity