Target 및 Origin을 위한 Active 제어 전략
아래 내용을 통해 target 및 origin 하위 오브젝트의 기본 표시 및 숨김 전략과 필요에 따라 조정하는 방법을 알 수 있습니다.
시작하기 전에
Active 제어 및 제어 전략 유형
세션이 실행되는 동안 target과 origin은 추적 및 손실과 같은 상태 변화를 겪습니다. Active 제어 전략을 통해 target 및 origin 하위 오브젝트의 표시 및 숨김 동작을 자동으로 관리할 수 있습니다.
Unity에서 ActiveController 컴포넌트는 target 및 origin 오브젝트의 GameObject.activeSelf 상태를 자동으로 관리하여 target이 추적되거나 모션 추적이 추적을 시작한 후 콘텐츠를 표시하고, target이 손실되거나 모션 추적이 성공적으로 초기화되기 전에 콘텐츠를 숨깁니다.
ActiveController는 두 가지 서로 다른 active 제어 전략을 제공합니다:
- ActiveWhileTracked: 추적 중일 때 GameObject가 활성화됩니다(GameObject.activeSelf가
true로 설정됨). 추적이 손실되면 GameObject가 비활성화됩니다(GameObject.activeSelf가false로 설정됨). - ActiveAfterFirstTracked: 첫 번째 추적 전까지 GameObject가 비활성화됩니다(GameObject.activeSelf가
false로 설정됨). 일단 성공적으로 추적되면 GameObject가 지속적으로 활성화됩니다(GameObject.activeSelf가true로 설정됨).
기본적으로 TargetController는 ActiveWhileTracked 전략을 사용합니다. 이는 target이 추적될 때 target 및 그 하위 콘텐츠가 활성화되고, 추적이 손실되면 target 및 그 콘텐츠가 비활성화됨을 의미합니다.
기본적으로 XROriginChildController는 ActiveAfterFirstTracked 전략을 사용합니다. 이는 모션 추적이 성공적으로 초기화되기 전까지 origin 및 그 하위 콘텐츠가 비활성화되고, 일단 모션 추적이 성공적으로 초기화되면 origin 및 그 하위 콘텐츠가 지속적으로 활성화됨을 의미합니다.
다른 Active 제어 전략 선택하기
Inspector 패널을 열고 Strategy 드롭다운 메뉴에서 Input을 선택합니다.

그런 다음 오른쪽에서 기본 전략을 재정의할 원하는 active 제어 전략을 선택합니다.

스크립트에서는 OverrideStrategy 속성을 통해 기본 active 제어 전략을 재정의할 수 있습니다.
예를 들어, 아래 코드는 target의 active 제어 전략을 ActiveAfterFirstTracked로 설정하는 방법을 보여줍니다:
target.ActiveController.OverrideStrategy = ActiveController.Strategy.ActiveAfterFirstTracked;
Active 전략에 대한 변경 사항은 즉시 적용되며, 현재 추적 상태에 따라 GameObject.activeSelf가 업데이트됩니다.
Active 제어 비활성화
Active 제어를 완전히 비활성화해야 하는 경우(예: 필요에 따라 수동으로 제어해야 할 때), ActiveController 컴포넌트를 비활성화하여 active 제어를 끌 수 있습니다.

스크립트에서는 ActiveController.enabled 속성을 설정하여 active 제어를 끌 수 있습니다.
target.ActiveController.enabled = false;
ActiveController.enabled 속성 변경은 즉시 적용되며, 더 이상 추적 상태에 따라 GameObject.activeSelf가 업데이트되지 않습니다. 다시 ActiveController 컴포넌트를 활성화하면, GameObject.activeSelf가 현재 추적 상태에 따라 업데이트됩니다.