---
title: Tag & Layer
slug: world-sdk-guide-kr/tag-and-layer
docTags: 
createdAt: 2024-09-02T08:34:13.135Z
---

Unity의 태그 및 레이어 기능을 사용하여 월드를 개발할 수 있습니다.

## 태그

Unity에서 사용했던 것과 동일한 방식으로 태그 기능을 사용할 수 있습니다.

:::hint{type="danger"}
**❗️ 주의**
최대 64개의 태그를 사용할 수 있습니다.
:::

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-UcYNgGdxViCtyio6O_osG-20240904-102418.png)

아래는 ZEPETO 캐릭터에 태그를 설정하는 예제 코드입니다.

```typescript
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
import { ZepetoCharacter, ZepetoPlayer, ZepetoPlayers } from 'ZEPETO.Character.Controller';

export default class PlayerTag extends ZepetoScriptBehaviour
{
    private zepetoCharacter :ZepetoCharacter;
    
    Start() 
    {
        ZepetoPlayers.instance.OnAddedLocalPlayer.AddListener(() => {
            this.zepetoCharacter = ZepetoPlayers.instance.LocalPlayer.zepetoPlayer.character;
            // 플레이어 태그 설정
            this.zepetoCharacter.gameObject.tag = "Player";
        });
    }
}
```



아래는 Tag 함수를 사용하는 예제 코드입니다.

```typescript
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
import { GameObject } from 'UnityEngine';

export default class TagExample extends ZepetoScriptBehaviour {

    Start() {
        let findObj = GameObject.FindGameObjectWithTag("customTag");
        if (findObj != null) {
            console.log(`name : ${findObj.name}`);
        }
    }
}
```



![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-xqFip0HWudBQRqG0CfWgu-20240904-102418.png)

:::hint{type="info"}
**📘 유니티 태그 정보**
[https://docs.unity3d.com/Manual/Tags.html](https://docs.unity3d.com/Manual/Tags.html)
:::



## 레이어

Unity에서 사용했던 것과 같은 방식으로 Layer 기능을 사용할 수 있습니다.

:::hint{type="danger"}
**❗️ 주의**
Layers 번호 20에서 27을 사용할 수 있습니다.
:::

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-FubVEHRouvi-jK3sGjlGG-20240904-102418.png)

::Image[]{src="https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N--nX42yX9mgB405CF-nstW-20240904-102418.png" size="70" width="423" height="861" position="center" showCaption="false"}



다음은 ZEPETO 캐릭터의 레이어를 설정하는 예제 코드입니다.

```typescript
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
import { ZepetoCharacter, ZepetoPlayer, ZepetoPlayers } from 'ZEPETO.Character.Controller';

export default class PlayerLayer extends ZepetoScriptBehaviour
{
    private zepetoCharacter :ZepetoCharacter;

    Start()
    {
        ZepetoPlayers.instance.OnAddedLocalPlayer.AddListener(() => {
            this.zepetoCharacter = ZepetoPlayers.instance.LocalPlayer.zepetoPlayer.character;
            // 플레이어 레이어 설정
            this.zepetoCharacter.gameObject.layer = 20;
        });
    }
}
```



다음은 Layer 함수를 사용하는 예제 코드입니다.

```typescript
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
import { Camera, Input, Physics, RaycastHit } from 'UnityEngine';

export default class LayerExample extends ZepetoScriptBehaviour {

    Update() {
        if (Input.GetMouseButtonDown(0)) {
            let ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            let ref = $ref<RaycastHit>();

            let layerMask = 1 << 20;

            if (Physics.Raycast(ray, ref, 100, layerMask)) {
                let hitInfo = $unref(ref);
                console.log(`name : ${hitInfo.collider.gameObject.name}`);
            }
        }
    }
}
```



![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-oUuP5Nj4msspbZt8iTcfY-20240904-102418.png)

:::hint{type="info"}
**📘 유니티 레이어 정보**
[https://docs.unity3d.com/Manual/Layers.html](https://docs.unity3d.com/Manual/Layers.html)
:::

