Menu
CoddyTech

Platform Bergerak

Termasuk bagian Membangun Game Sungguhan dalam perjalanan Unity di Coddy. Pelajaran 49 dari 56.

challenge icon

Tantangan

Sedang

Platform biru seharusnya bergerak bolak-balik melintasi celah. Pertahankan semua yang ada dari pelajaran sebelumnya.

Lengkapi MovingPlatform:

  • Dua field yang diatur Inspector, distance (3) dan speed (1.5), serta public Vector3 delta.
  • Platform bergerak dari titik awalnya sejauh distance unit ke arah +x dengan kecepatan speed unit per detik, lalu kembali ke titik awal, dan seterusnya tanpa henti.
  • Setiap frame, delta menunjukkan seberapa jauh platform bergerak pada frame tersebut: posisinya setelah bergerak dikurangi posisinya sebelum bergerak.

CharacterController tidak ikut terbawa oleh pijakan tempatnya berdiri: saat berada di platform bergerak, posisinya tetap, sementara platform bergeser di bawahnya. Menggeser transform.position juga tidak berhasil: pemanggilan Move berikutnya pada controller dimulai dari posisi yang terakhir diketahui fisika, lalu membatalkan perubahan tersebut. Buat Player ikut bergerak:

  • Tambahkan OnControllerColliderHit. Saat normal benturan mengarah ke atas (hit.normal.y lebih dari 0.5: pemain berdiri di atasnya) dan object memiliki MovingPlatform, simpan platform itu dalam sebuah field.
  • Di Update, tambahkan delta platform tersebut ke gerakan yang diberikan ke controller.Move, lalu lupakan platform itu (atur field menjadi null). Pemanggilan Move akan menemukannya lagi selama pemain berdiri di atasnya.

Tekan Play, lompat ke atas platform dan ikut bergerak bersamanya, lalu tekan Periksa.

Coba sendiri

using UnityEngine;

public class MovingPlatform : MonoBehaviour
{
    // Pelajaran berikutnya akan melengkapi ini: platform yang bergerak mulus bolak-balik.
}

Semua pelajaran di Membangun Game Sungguhan