Menu
CoddyTech

Objek Induk dan Anak

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

Di Hierarchy, object yang diseret ke atas object lain menjadi child dan ditampilkan dengan indentasi di bawah parent-nya. Child bergerak, berputar, dan berubah skala bersama parent-nya: gerakkan parent, maka semua child ikut bergerak, tanpa perlu kode pada child.

Unity menyimpan posisi child relatif terhadap parent-nya. transform.localPosition adalah offset itu, diukur dari parent; transform.position adalah posisi di dunia. Rider ini adalah child dari Horse, dan skripnya menempatkannya 1 unit di atas bagian tengah kuda dan setengah unit ke belakang, di mana pun kuda berada:

void Start()
{
    transform.localPosition = new Vector3(0, 1, -0.5f);
}

Saat kuda berada di (4, 0.5, 2), position Rider bernilai (4, 1.5, 1.5), sementara localPosition-nya tetap (0, 1, -0.5). Saat kuda berjalan, position berubah dan localPosition tidak berubah. Offset diukur sepanjang sumbu milik parent, jadi saat parent berputar atau berubah skala, offset ikut berputar dan berubah skala. Untuk object tanpa parent, localPosition dan position sama.

challenge icon

Tantangan

Sedang

Flag adalah child dari Ship, dan ship tidak berada di pusat dunia. Start() milik Flag seharusnya menempatkannya di kaki tiang, 0.6 ke kanan dan 1 ke atas diukur dari ship, tetapi fungsi itu menuliskan angka-angka tersebut ke position, sehingga Flag berada jauh dari ship.

  • Perbaiki Start() agar Flag mulai di kaki tiang.
  • Saat tombol panah atas ditekan, naikkan Flag: Flag bergerak naik dengan kecepatan climb unit per detik sampai ketinggiannya, diukur dari ship, mencapai 4, yaitu puncak tiang, lalu berhenti di sana.

Tekan Play, tahan tombol panah atas, lalu tekan Check.

Coba sendiri

using UnityEngine;

public class Hoist : MonoBehaviour
{
    public float climb = 1f;

    void Start()
    {
        // Kaki tiang: 0.6 ke kanan dan 1 ke atas, diukur dari Ship
        transform.position = new Vector3(0.6f, 1, 0);
    }

    void Update()
    {
        // Selama tombol panah atas ditekan, naik hingga ketinggian dari Ship mencapai 4
    }
}
quiz iconUji dirimu

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

Semua pelajaran di Dasar-Dasar Scripting Unity