Class MotionTrackerFrameSource
- 네임스페이스
- easyar
- 어셈블리
- EasyAR.Sense.dll
씬에서 easyar.MotionTrackerCameraDevice를 제어하는 MonoBehaviour로, Unity 환경에서 기능 확장을 제공합니다.
이 프레임 소스는 모션 추적 장치로, ARSession에서 모션 데이터를 출력합니다.
public class MotionTrackerFrameSource : FrameSource
- 상속
-
MotionTrackerFrameSource
- 상속된 멤버
속성
Camera
새로운 프레임 소스를 생성할 때만 제공됩니다. 이는 Assemble() 과정에서만 접근됩니다.
데스크톱 기기나 휴대폰에서, 이 카메라는 현실 환경의 카메라 장치에 대응하는 가상 세계의 Camera를 나타내며, 프로젝션 매트릭스와 위치는 실제 카메라와 대응되어 EasyAR에 의해 제어됩니다. 헤드셋에서는, 이 카메라는 진단용 텍스트를 눈앞에 표시하는 데만 사용되며, 화면 렌더링에는 사용되지 않으며, 카메라도 EasyAR에 의해 제어되지 않습니다.
protected override Camera Camera { get; }
CameraCandidate
Camera의 대체 옵션으로, Unity XR Origin을 사용하지 않는 경우에만 유효하며, 설정되지 않으면 Camera.main을 사용합니다.
public Camera CameraCandidate { get; set; }
CameraFrameStarted
새로운 frame source를 생성할 때만 제공됩니다. ARSession의 전체 수명 주기 동안 액세스됩니다.
카메라 프레임 입력 시작 여부.
protected override bool CameraFrameStarted { get; }
DesiredFocusMode
기대하는 초점 모드, DeviceOpened 이벤트 또는 OnEnable 이전에 수정해야 유효합니다.
참고: 하드웨어 또는 시스템 제한으로 인해 일부 기기에서는 초점 스위치가 작동하지 않을 수 있습니다.
public Optional<MotionTrackerCameraDeviceFocusMode> DesiredFocusMode { get; set; }
DesiredFrameRate
기대되는 장치 프레임 속도는 DeviceOpened 이벤트 또는 OnEnable 전에 수정해야 유효합니다.
public Optional<MotionTrackerCameraDeviceFPS> DesiredFrameRate { get; set; }
DesiredMinQualityLevel
기대 최소 허용 품질 수준으로, Assemble() 전에 수정해야만 유효합니다.
public Optional<MotionTrackerCameraDeviceQualityLevel> DesiredMinQualityLevel { get; set; }
DesiredResolution
기대 해상도는 DeviceOpened 이벤트 또는 OnEnable 전에 수정해야만 적용됩니다.
FrameRecorder 녹화 중에 이미지 크기를 변경하면 녹화 데이터 업데이트가 중지되며, 종료 후 다시 녹화해야 합니다.
public Optional<MotionTrackerCameraDeviceResolution> DesiredResolution { get; set; }
DesiredTrackingMode
추적 모드 설정은 session 시작 전에 수정해야만 적용됩니다.
public Optional<MotionTrackerCameraDeviceTrackingMode> DesiredTrackingMode { get; set; }
DeviceCameras
새로운 프레임 소스를 생성할 때만 제공됩니다. CameraFrameStarted가 true일 때 액세스됩니다.
카메라 프레임 데이터를 제공하는 기기 카메라입니다. 카메라 프레임 데이터가 여러 카메라에서 제공되는 경우, 목록에 모든 카메라가 포함되어야 합니다.
CameraFrameStarted가 true일 때 값이 올바른지 확인하십시오.
protected override List<FrameSourceCamera> DeviceCameras { get; }
DeviceQualityLevel
기기에서 Motion Tracking의 품질을 확인하고, 애플리케이션 시나리오와 결합하여 이 값을 통해 Motion Tracking을 시작할지 여부를 판단할 수 있습니다.
public static MotionTrackerCameraDeviceQualityLevel DeviceQualityLevel { get; }
Display
새로운 프레임 소스를 생성할 때만 제공됩니다. Assemble() 과정에서만 접근됩니다.
디스플레이 시스템 정보를 제공합니다. 기본 디스플레이 정보를 얻기 위해 DefaultSystemDisplay 또는 DefaultHMDDisplay를 사용할 수 있습니다.
protected override IDisplay Display { get; }
FrameRateRange
프레임 속도 범위. Opened이 true인 경우에만 사용 가능합니다.
public Vector2 FrameRateRange { get; }
IsAvailable
새로운 frame source를 생성할 때만 제공됩니다. Assemble() 과정 중에만 액세스됩니다.
현재 frame source의 사용 가능 여부입니다.
값이 null인 경우, CheckAvailability()가 호출되며 값은 Coroutine 종료 후 획득됩니다.
protected override Optional<bool> IsAvailable { get; }
IsCameraUnderControl
새로운 프레임 소스를 생성할 때만 제공됩니다. Assemble() 과정에서만 액세스됩니다.
값이 ture일 경우, 세션은 카메라의 변환(transform)을 업데이트하고 카메라 이미지를 렌더링합니다.
헤드셋 확장을 생성할 때는 false여야 합니다. 장면 내 3D 카메라를 완전히 제어해야 합니다. 특히 VST 모드에서 카메라 렌더링을 처리해야 합니다.
protected override bool IsCameraUnderControl { get; }
IsHMD
새로운 프레임 소스를 생성할 때만 제공됩니다. Assemble() 과정에서만 액세스됩니다.
현재 프레임 소스가 헤드 마운트 디스플레이(HMD)인지 여부입니다. HMD인 경우, 진단 정보가 카메라 앞의 3D 보드에 표시됩니다.
일부 frame filter는 장치에서 다르게 작동합니다.
protected override bool IsHMD { get; }
LocalPointCloud
현재 포인트 클라우드 데이터 위치 정보. Opened이 true일 때만 사용 가능합니다.
public List<Vector3> LocalPointCloud { get; }
Opened
카메라가 켜져 있나요.
public bool Opened { get; }
Size
현재 이미지 크기. Opened 및 MonoBehaviour.enabled 모두 true일 때만 사용 가능합니다.
注意事項:
- HTML 태그(
<p>,<xref>) 및 속성(href,data-throw-if-not-resolved)은 완벽하게 보존되었습니다. - 기술 용어인 "Opened", "enabled", "true"는 그대로 유지되었습니다.
- 클래스 이름(
u:easyar.MotionTrackerFrameSource,u:UnityEngine.MonoBehaviour)은 그대로 유지되었습니다. %3a와 같은 URL 인코딩 값은 변경되지 않았습니다.- "当前图像大小" -> "현재 이미지 크기", "可用" -> "사용 가능"으로 번역했습니다.
- "仅在...时可用" 구조는 "...일 때만 사용 가능합니다."로 자연스럽게 번역했습니다.
- "和"은 문맥상 "및"으로 번역하는 것이 적절합니다.
- 마침표(.)는 그대로 유지되었습니다.
public Vector2Int Size { get; }
enabled
ARSession 런타임이 비디오 스트림 데이터 수집을 시작/중단합니다. 세션이 시작된 후, MonoBehaviour.enabled가 true일 때만 수집이 시작됩니다.
public bool enabled { get; set; }
메서드
Close()
기기 전원을 끕니다.
public void Close()
HitTestAgainstHorizontalPlane(Vector2)
현재 시야 내에서 실시간으로 감지된 수평면에 대해 히트 테스트를 수행합니다. 특정 수평면을 클릭하면 히트 테스트 레이에 가장 가까운 3D 점의 위치 좌표를 해당 평면에서 반환합니다. pointInView는 [0, 1]^2 범위로 정규화되어야 합니다.
public List<Vector3> HitTestAgainstHorizontalPlane(Vector2 pointInView)
매개 변수
pointInView
HitTestAgainstPointCloud(Vector2)
현재 포인트 클라우드에서 Hit Test를 수행하여 카메라로부터 가까운 순서로 먼 순서로의 광선 상에서 가장 가까운 3D 점 위치 좌표를 얻습니다. pointInView는 [0, 1]^2 범위로 정규화되어야 합니다.
public List<Vector3> HitTestAgainstPointCloud(Vector2 pointInView)
매개 변수
pointInView
OnSessionStart(ARSession)
새로운 프레임 소스를 생성할 때만 제공됩니다. 이는 StartSession() 과정 중에만 접근됩니다.
이 프레임 소스가 Assembly에 조립된 경우 세션 시작을 처리합니다. 이 메서드는 지연 초기화를 위해 설계되었으며, 여기에서 AR 고유의 초기화 작업을 수행할 수 있습니다.
protected override void OnSessionStart(ARSession session)
매개 변수
session
OnSessionStop()
새로운 프레임 소스를 생성할 때만 제공됩니다. 이는 StopSession(bool) 또는 다른 세션 중지/손상 과정에서 접근됩니다.
이 프레임 소스가 Assembly에 조립된 경우 세션 중지를 처리합니다. 이 메서드를 사용하여 StartSession() 및 세션 실행 중 생성된 리소스를 파괴하고 내부 상태를 복원할 수 있습니다. 세션 파괴 전에 이 메서드의 호출이 보장됩니다. 프레임 소스가 세션보다 먼저 파괴되면 호출되지 않으며 세션은 손상됩니다.
protected override void OnSessionStop()
Open()
public void Open()
이벤트
DeviceClosed
장치 종료 이벤트.
public event Action DeviceClosed
DeviceOpened
장치 열기 이벤트, bool 값은 성공 여부를 나타냅니다.
public event Action<bool, PermissionStatus, string> DeviceOpened