---
title: レイキャスト
slug: world-sdk-guide-ja/urrg6IdR3Ed_5wdwS5H2x
docTags: 
createdAt: 2024-09-02T08:34:13.135Z
---

Raycast関数は、Unityのシーン内でオブジェクトを効率的に見つけるために使用できます。

UnityプログラミングにおけるRaycastは、シーン内の位置から発射され、コライダーに衝突するまで飛ぶレーザービームの一種です。

コライダーに衝突すると、衝突したオブジェクトの情報（RaycastHit）とシーン内の位置が返されます。

Unity Raycastの詳細については、Unityガイドを確認してください。

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



Unity Raycastは、次の手順を完了することでZEPETO.Scriptで使用できます：

まず、Raycast関連のクラスをインポートします。

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

以下は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);
      
            // RaycastHit情報を出力パラメータとして保持するためには、$refタグでラップする必要があります。
            // out修飾子をパラメータとして必要とするため、オブジェクトを実際に作成せずに参照を作成します。        
            let ref = $ref<RaycastHit>();
      
            if (Physics.Raycast(ray, ref, 1000)) {
                // 返されたRaycastヒットデータを確認するには、$unrefを使用して参照をアンラップすることを忘れないでください。
                let hitInfo = $unref(ref);
      
                console.log(`ヒットを検出！`);
                console.log(`hitInfo.collider.name : ${hitInfo.collider.name}`);
            } else {
                console.log(`衝突の検出に失敗しました`);
            }
        }
    }
 
}
```
:::



:::hint{type="info"}
**📘&#x20;**&#x30B9;クリプトで使用されている$refと$unrefの説明については、以下のガイドを参照してください。 \[[$ref と $unref](docId\:OGPM67-6T1J1cJe5_wrGF)]
:::



テストコードを通じて、シーン内のキューブをマウスポインタでクリックすることでオブジェクトの情報が出力されることを確認できます。

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



ZEPETO.Scriptで使用されているRaycast APIに関する詳細情報は、以下のリンクにアクセスしてください。

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

