Physics.Raycast
Termasuk bagian Fisika dan Gameplay dalam perjalanan Unity di Coddy. Pelajaran 35 dari 71.
Raycast menembakkan garis tak terlihat dari suatu titik ke satu arah dan melaporkan apakah garis itu mengenai collider. Physics.Raycast(origin, direction, maxDistance) mengembalikan true saat ada collider pada garis dalam jarak maxDistance unit, dan false jika tidak. Mobil ini mengerem saat ada apa pun yang berjarak kurang dari 2 unit di depan hidungnya:
public float brakeDistance = 2f;
void Update()
{
if (Physics.Raycast(transform.position, transform.forward, brakeDistance))
{
Debug.Log("Brake!");
}
}transform.forward berputar bersama mobil, jadi ray selalu mengarah keluar dari hidungnya. Vector3.forward akan selalu mengarah ke sumbu z dunia. Ray dimulai dari pusat mobil, di dalam collider-nya sendiri, dan ray tidak pernah melaporkan collider tempatnya dimulai, jadi mobil tidak melihat dirinya sendiri. Jika maxDistance tidak disertakan, ray terus berjalan tanpa batas: mobil akan mengerem karena dinding di seberang peta.
Ray mendeteksi collider, bukan objek yang digambar: objek dengan Renderer tanpa collider tidak terlihat oleh ray, dan collider pemicu dihitung sebagai benturan. Saat menguji, Debug.DrawRay(transform.position, transform.forward * brakeDistance, Color.red) menggambar ray di tampilan Scene Unity.
Tantangan
SedangBuat pintu toko terbuka saat seseorang berdiri di bawah sensor.
- Di
Update(), ujiPhysics.Raycast(transform.position, Vector3.down, reach): sinar lurus ke bawah sepanjangreachunit, yang berhenti di atas tanah. - Jika hasilnya true, panggil
door.SetActive(false);, lalu di bagianelse, panggildoor.SetActive(true);.
Tekan tombol “Main” dan arahkan Pengunjung berjalan ke bawah sensor: pintu terbuka, lalu tertutup di belakangnya. Kemudian tekan tombol “Periksa”.
Coba sendiri
using UnityEngine;
public class DoorSensor : MonoBehaviour
{
public GameObject door;
public float reach = 3f;
void Update()
{
// Buka pintu selama sinar yang mengarah ke bawah dari Sensor mengenai sesuatu.
}
}
Semua pelajaran di Fisika dan Gameplay
1Rigidbody
Gravitasi dan MassaDorong dengan AddForceMelompat dengan ImpulsFixedUpdate untuk FisikaKecepatanBenda KinematikRingkasan: Landasan Peluncur4Coroutine
InvokeInvokeRepeating, CancelInvokeCoroutine PertamamuPerulangan dalam CoroutineMenghentikan CoroutineRangkuman: Hitung Mundur10Proyek: Kabur dari Arena
ArenaPara Pemburu2Tabrakan
OnCollisionEnterApa yang Kutabrak?Pecah Saat BenturanBerdiri di Atas TanahPantulan dan GesekanBentuk ColliderRangkuman: Dinding yang Bisa HancurLatihan sendiri: Playground Unity