---
title: Raycast
slug: world-sdk-guide-id/raycast
docTags: 
createdAt: 2024-09-02T08:34:13.135Z
---

Fungsi Raycast dapat digunakan untuk menemukan Objek dengan efisien dalam sebuah adegan di Unity.

Raycast dalam pemrograman Unity adalah semacam sinar laser, yang akan ditembakkan dari suatu lokasi dalam sebuah adegan dan menembak hingga mengenai Collider.

Ketika ia bertabrakan dengan Collider, informasi (RaycastHit) dari Objek yang bertabrakan dan posisinya dalam adegan akan dikembalikan.

Untuk detail lebih lanjut tentang Unity Raycast, silakan tinjau panduan Unity.

:::hint{type="info"}
**📘 Unity Raycast**
[https://docs.unity3d.com/Manual/CameraRays.html](https://docs.unity3d.com/Manual/CameraRays.html)
:::



Unity Raycast dapat digunakan dalam ZEPETO.Script dengan menyelesaikan langkah-langkah berikut:

Pertama, impor kelas yang terkait dengan Raycast.

```typescript
import { Physics, RaycastHit } from 'UnityEngine';
```

Berikut adalah contoh kode untuk fungsi Raycast:

:::CodeblockTabs
Raycast

```typescript
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
import { Physics, RaycastHit, Input, Camera } from 'UnityEngine';
 
export default class RaycastSample extends ZepetoScriptBehaviour {
 
    Update() {
        this.MouseControl();
    }
      
    MouseControl() {
        if (Input.GetMouseButtonDown(0)) {
            let ray = Camera.main.ScreenPointToRay(Input.mousePosition);
      
            // Harap dicatat bahwa untuk mempertahankan informasi RaycastHit sebagai parameter output, itu harus dibungkus dalam tag $ref.
            // Karena kita memerlukan qualifier out sebagai parameter, kita membuat referensi tanpa benar-benar membuat objek.        
            let ref = $ref<RaycastHit>();
      
            if (Physics.Raycast(ray, ref, 1000)) {
                // Untuk memeriksa data hit Raycast yang dikembalikan, harap ingat untuk membuka referensi dengan menggunakan $unref
                let hitInfo = $unref(ref);
      
                console.log(`Deteksi Hit!`);
                console.log(`hitInfo.collider.name : ${hitInfo.collider.name}`);
            } else {
                console.log(`Gagal Mendeteksi Tabrakan`);
            }
        }
    }
 
}
```
:::



:::hint{type="info"}
**📘&#x20;**&#x53;ilakan merujuk ke panduan berikut untuk penjelasan tentang $ref dan $unref yang digunakan dalam skrip. \[[$ref & $unref](docId\:TFHjNYZaRt0SsPqTjJQEV)]
:::



Melalui kode uji, Anda dapat memeriksa bahwa informasi objek dikeluarkan dengan mengklik Kubus dengan penunjuk mouse di Scene.

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-6UE5M-dKzdYQhrkgqHAG3-20240904-102419.png)



Temukan informasi lebih lanjut untuk API Raycast yang digunakan dalam ZEPETO.Script dengan mengunjungi tautan di bawah ini.

:::hint{type="info"}
**📘 Raycast**
[https://docs.unity3d.com/ScriptReference/Physics.Raycast.html](https://docs.unity3d.com/ScriptReference/Physics.Raycast.html)
:::

