Golf Kelereng
Termasuk bagian Fisika dan Gameplay dalam perjalanan Unity di Coddy. Pelajaran 62 dari 63.
Bermain golf dengan sebuah kelereng di lapangan hijau kecil. Kelereng mulai dari tee: kamu mengarahkannya dengan tombol panah, tahan Space untuk menambah tenaga, lalu lepaskan untuk memukul. Kelereng menggelinding, memantul dari bantalan dan balok di tengah, lalu melambat. Setelah cukup lambat, kelereng berhenti total. Hanya setelah itu kamu bisa memukul lagi. Kelereng yang menggelinding ke lubang dengan pelan akan masuk. Kelereng yang tiba terlalu cepat akan menggelinding melewatinya. Semakin sedikit pukulan, semakin baik.
Tulis dua skrip: Golf pada kelereng dan Hole pada lubang.
Tantangan
SulitInspector memberikan Golf pointer (bola kecil berwarna kuning), aimSpeed (90), chargeRate (4), maxPower (6), dan stopSpeed (0.3). Massa kelereng adalah 0.5.
- Arah bidikan adalah sudut pada sumbu y, dengan nilai awal 0 (lurus ke depan, +z). Panah kanan memutarnya ke kanan dan panah kiri ke kiri, dengan kecepatan
aimSpeedderajat per detik. Setiap frame, tempatkan pointer 1 unit dari kelereng ke arah bidikan. - Kelereng dalam keadaan diam saat kecepatannya di bawah
stopSpeed. Pada setiap langkah fisika, kelereng yang diam dihentikan sepenuhnya: kecepatan dan kecepatan sudutnya menjadi nol. - Hanya saat kelereng dalam keadaan diam: menahan Space akan menambah kekuatan sebesar
chargeRateper detik, tidak pernah melebihimaxPower, dan melepas Space akan menendang kelereng dengan Impulse sebesar kekuatan tersebut ke arah bidikan. Kekuatan kemudian kembali ke 0, laluint strokespublik bertambah 1 dan dicatat sebagaiStroke 1.
Inspector memberikan Hole sinkSpeed (3).
- Saat kelereng (object dengan skrip
Golf) memasuki lubang dengan kecepatan di bawahsinkSpeed, catat jumlah pukulannya sebagaiIn the cup in 2 strokes!, lalu nonaktifkan kelereng. Kelereng yang lebih cepat akan terus menggelinding melewati lubang.
Tekan Play dan masukkan kelereng ke lubang dengan pukulan sesedikit mungkin, lalu tekan Check.
Coba sendiri
using UnityEngine;
public class Golf : MonoBehaviour
{
public int strokes = 0;
[SerializeField] private Transform pointer;
[SerializeField] private float aimSpeed = 90f;
[SerializeField] private float chargeRate = 4f;
[SerializeField] private float maxPower = 6f;
[SerializeField] private float stopSpeed = 0.3f;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
// Arahkan dengan tombol panah, isi tenaga dengan Space, pukul saat dilepas, berhenti saat melambat
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Fisika dan Gameplay
1Rigidbody
Gravitasi dan MassaDorong dengan AddForceMelompat dengan ImpulsFixedUpdate untuk FisikaKecepatanBenda KinematikRingkasan: Landasan Peluncur2Tabrakan
OnCollisionEnterApa yang Kutabrak?Pecah Saat BenturanBerdiri di Atas TanahPantulan dan GesekanBentuk ColliderRangkuman: Dinding yang Bisa Hancur