안녕하세요. TrackerManager.GetInstance().IsTrackerDataLoadCompleted() 가 디바이스에서 먹히지않습니다.
Please provide your development details as below;
1. SDK Version: 401
2. Development Environment: (eg. Unity-Android, Unity-iOS, Native Android, Native iOS) AndroidOS, iOS
3. Tracker/Scanner: ImageTracker
4. License Type(Free / Pro-One Time Fee / Pro-Subscription / Enterprise): Pro-Subscription
5. Target Device(Optional):
안녕하세요. 100개가넘는 이미지타겟을 순차적으로 30개씩 로드하는 문장을 만들어서 관리하고있습니다.
유니티에디터에서는 위 함수가 잘먹혀, 모든 마커가 로딩될때까지 인디케이터가돌도록 관리되고있는데, 유독 디바이스에서 동작을 하지않습니다.
해결책이있을까요?
내부적으로 어떻게 돌아가는지는 Maxst측에서 답변해주시겠지만,
제가 경험했던 부분이라 도움이 될까싶어 적어봅니다.
1. AddTracker 루틴이 동기방식으로 수행되어야 합니다.
코루틴 내에서 수행될 때 새로운 루틴으로 Start하면 안되고 yield return 으로 기다려줘야 정상작동 했던거 같습니다.
2. AddTracker, StartTracker, StartCamera 까지 호출된 이후에 IsTrackerDataLoadCompleted()가 정상 작동합니다.
4.1.1 버전 SDK에는 안드로이드 obb에서 StreamingAsset 뽑아내는 코루틴이 들어있으니 유의하세요.
현재 이미지 트래커에서 타겟이미지를 로드하는 시간이 50장 기준으로 약 5초정도 소요됩니다.
그러나 50장 이상부터 로드되는 시간이 비선형적으로 증가하며,
그 이상의 이미지를 로드할 때 더욱 많은 시간이 소요됩니다.
시간이 소요됨에 따라 2dmap이 미처 로드되지 못한 상태에서 인식을 시도하여 동작하지 않았나 생각됩니다.
안드로이드 스튜디오의 로그캣에 MaxstAR-Native라고 검색하시면
Start to load 2d maps 라는 로고가 보이며, 로드된 2dmap의 경로와 파일명이 보입니다.
그 아래로 AR2D Map Count : n 이렇게 몇개의 맵이 로드되었는지 로그가 뜨는데,
위 사항을 확인하시고 순차적으로 30개씩 로드하는 함수를 실행하였을 때
원하는 맵의 개수만큼 로드되었는지 확인해보시기 바랍니다.
감사합니다.
Leo
Maxst Support Team
@Leo님
제가 테스트해본 바로, 같은 디바이스 환경에서는 선형적으로 증가합니다.
50장에 15초, 100장에 30초, 200장에 1분입니다.
https://developer.maxst.com/BoardQuestions/Details/517
갤럭시 노트8에서 테스트했을 때가 50장에 5초 정도 걸렸던 것 같네요.
직접 테스트해보셨군요. 좋은결과 알려주셔서 감사합니다.
그럼 테스트하신 결과에 따라 해당 시간이 지난 후에 컨텐츠 인식을 시도하신 건가요?
원 질문에서 로딩될때까지 인디케이터가 돌때 디바이스에서 동작을 하지 않는다면
작성자님이 측정하신 맵 로딩시간이 경과한 이후 제가 안내해드린 로그를 찍어보시면
맵이 로드되었는지 혹은 다른 문제가 있는지 파악할 수 있을 것 같습니다.
감사합니다.
Leo
Maxst Support Team
감사합니다.
Leo
Maxst Support Team