List
빌보드 관련
Posted Date: 2023-12-03 17:25     Edited Date: 2023-12-04 9:33     Writer: qqqq8692

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 빌보드를 구현하는 방법이 있나요?

Posted Date: 2023-12-04 9:33     Edited Date: 2023-12-04 9:33     Writer: sejin

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