}

유니티 Meta SDK - TagSet 컴포넌트 사용방법에 대해서

해당 컴포넌트는 많은 곳에서 응용할 수 있습니다.

이번 포스팅에서는 Snap Interactor에서 사용하는 방법에 대해 알아보겠습니다.

 

유니티 Snap Interactor을 이용해서 원하는 위치에 오브젝트 놓기 #Socket

Snap Interactor 컴포넌트와 Snap Interactable을 활용하면 원하는 위치에 원하는 오브젝트를 놓을 수 있습니다. 이때 어느정도 간격이 떨어져 있어도 Smooth하게 해당 위치로 날아가면서 딱 Snap되듯 위치

wlsdn629.tistory.com


TagSet 컴포넌트란?

(좌) Tag Set / (우) Tag Set Filter

Meta SDK에서 TagSet 컴포넌트는 "(문자열)Tag"를 이용해 인터랙터(Interactor)와 인터랙터블(Interactable) 간의 상호작용 대상을 손쉽게 필터링할 수 있도록 돕습니다. 

 

역할: 게임오브젝트에 태그(예: "Pickable", "NPC", "Door" 등)를 지정하고, 이를 이용해 어떤 인터랙터가 어느 인터랙터블과 상호작용할지 필터링할 수 있게 해줍니다.

왜 이렇게 하냐?

Too much tags..

Tag가 너무 많이 생성되면 관리하기 어려우니, 컴포넌트로 관리하자는 것입니다.

 

Interactor 스크립트를 살펴보면 아래와 같이 CanSelect라는 함수를 보실 수 있습니다.

public virtual bool CanSelect(TInteractable interactable)
{
        if (InteractableFilters == null)
        {
            return true;
        }

        foreach (IGameObjectFilter interactableFilter in InteractableFilters)
        {
            if (!interactableFilter.Filter(interactable.gameObject))
            {
                return false;
            }
        }

        return true;
}

 

CanSelect → TagSetFilter → TagSet으로 이어지는 선택 제어 흐름을 볼 수 있습니다.