빌보드 관련
Please provide your development details as below;
1. SDK Version: 6.1.0
2. Development Environment: Unity-Android
3. Tracker/Scanner:
4. License Type(Free / Pro-One Time Fee / Pro-Subscription / Enterprise): Free
5. Target Device(Optional): android
We can assist better if you attach screenshots of issues.
카메라 회전에 따른 UI 빌보드를 구현하는 방법이 있나요?
MAXST AR SDK에 관심을 가져주셔서 감사합니다.
UI 빌보드를 구현하는 방법에 대해 설명드리겠습니다.
1. Trackable 하위에 GameObject를 생성합니다.
2. 생성한 GameObject 하위에 Canvas를 생성합니다.
3. Canvas를 선택하고 Inspector 창에서 Canvas > Render Mode 를 WorldSpace로 변경합니다.
4. Canvas를 적절한 위치로 설정합니다.
5. 카메라를 항상 바라보게 하기 위해 GameObject에 Billboard 스크립트를 추가합니다.
// Billboard.cs
using UnityEngine;
public class Billboard : MonoBehaviour
{
public Transform arCameraTransform;
void Update()
{
if (arCameraTransform != null)
{
var direction = transform.position - arCameraTransform.position;
transform.forward = direction;
}
}
}
6. GameObject를 선택하고 Inspector > Billboard(Script) > AR Camera Transform 에 ARCamera를 드래그합니다.
7. 이제 트래킹 중이 아닐 때는 Canvas를 숨기기 위해서 ImageTrackableBehaviour.cs > OnTrackSuccess, OnTrackFail 함수에 아래의 코드를 추가합니다.
// ImageTrackableBehaviour.cs
public override void OnTrackSuccess(string id, string name, Matrix4x4 poseMatrix)
{
...
Canvas[] canvasComponents = GetComponentsInChildren<Canvas>(true);
...
foreach (Canvas component in canvasComponents)
{
component.enabled = true;
}
}
public override void OnTrackFail()
{
...
Canvas[] canvasComponents = GetComponentsInChildren<Canvas>(true);
...
foreach (Canvas component in canvasComponents)
{
component.enabled = false;
}
}
8. 빌드하고 실행합니다.
감사합니다.
Best regards,
Shelden
MAXST Support Team