Menu
CoddyTech

Biarkan Balok Jatuh

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

challenge icon

Tantangan

Sedang

Buat setiap block dalam list jatuh. Pertahankan semua yang sudah dibuat pada langkah sebelumnya.

  1. Tambahkan [SerializeField] private float fallSpeed = 5f;.
  2. Di akhir Update(), lakukan perulangan dengan foreach (GameObject block in blocks).
  3. Di dalamnya, tambahkan Vector3.down * fallSpeed * Time.deltaTime ke block.transform.position.

Tekan tombol “Main”: block berjatuhan melewati pelari. Lalu tekan tombol “Periksa”.

Coba sendiri

using System.Collections.Generic;
using UnityEngine;

public class Runner : MonoBehaviour
{
    [SerializeField] private float speed = 6f;
    [SerializeField] private float laneEdge = 4f;
    [SerializeField] private GameObject blockPrefab;
    [SerializeField] private float spawnEvery = 1f;

    private List<GameObject> blocks = new List<GameObject>();
    private float timer;

    void Update()
    {
        Vector3 p = transform.position;
        p.x += Input.GetAxisRaw("Horizontal") * speed * Time.deltaTime;
        p.x = Mathf.Clamp(p.x, -laneEdge, laneEdge);
        transform.position = p;

        timer += Time.deltaTime;
        if (timer >= spawnEvery)
        {
            timer -= spawnEvery;
            Vector3 spot = new Vector3(Random.Range(-laneEdge, laneEdge), 10f, 0f);
            blocks.Add(Instantiate(blockPrefab, spot, Quaternion.identity));
        }
    }
}

Semua pelajaran di Dasar-Dasar Scripting Unity

Latihan sendiri: Playground Unity