Tag & Layer
7 분
Unity의 태그 및 레이어 기능을 사용하여 월드를 개발할 수 있습니다.
태그
Unity에서 사용했던 것과 동일한 방식으로 태그 기능을 사용할 수 있습니다.
❗️ 주의 최대 64개의 태그를 사용할 수 있습니다.

아래는 ZEPETO 캐릭터에 태그를 설정하는 예제 코드입니다.
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 함수를 사용하는 예제 코드입니다.
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://docs.unity3d.com/Manual/Tags.html
레이어
Unity에서 사용했던 것과 같은 방식으로 Layer 기능을 사용할 수 있습니다.
❗️ 주의 Layers 번호 20에서 27을 사용할 수 있습니다.


다음은 ZEPETO 캐릭터의 레이어를 설정하는 예제 코드입니다.
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 함수를 사용하는 예제 코드입니다.
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://docs.unity3d.com/Manual/Layers.html