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

Raycast 함수는 Unity의 장면 내에서 객체를 효율적으로 찾는 데 사용할 수 있습니다.

Unity 프로그래밍에서 Raycast는 장면의 위치에서 발사되어 Collider에 부딪힐 때까지 쏘는 일종의 레이저 빔입니다.

Collider에 충돌할 때, 충돌한 객체의 정보(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 hit 데이터를 확인하려면 $unref를 사용하여 참조를 풀어야 합니다.
                let hitInfo = $unref(ref);
      
                console.log(`Hit 감지!`);
                console.log(`hitInfo.collider.name : ${hitInfo.collider.name}`);
            } else {
                console.log(`충돌 감지 실패`);
            }
        }
    }
 
}
```
:::



:::hint{type="info"}
**📘&#x20;**&#xC2A4;크립트에서 사용된 $ref 및 $unref에 대한 설명은 다음 가이드를 참조하십시오. \[[$ref & $unref](docId\:mn4di18aRiAP-MmaZK5eb)]
:::



테스트 코드를 통해 장면에서 마우스 포인터로 큐브를 클릭하여 객체의 정보가 출력되는지 확인할 수 있습니다.

![](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)
:::

