I'm using ARFoundation with tracking images(Image Library has only one image to find).
When the image is found I'm subscribing on that event with
[SerializeField]
ARTrackedImageManager _arTrackedImageManager;
void Awake()
{
_arTrackedImageManager.trackedImagesChanged += ImageChangedHandle;
}
void ImageChangedHandle(ARTrackedImagesChangedEventArgs imgChangedArgs)
{
foreach (var item in imgChangedArgs.added)
{
var go = item.gameObject;
_arkitChecker.DisplayFoundTrackedImage(item);
}
}
_arkitChecker is instance of my class with DisplayFoundTrackedImage method :
internal void DisplayFoundTrackedImage(ARTrackedImage targetImageGameObject)
{
var arOrig = GameObject.FindObjectOfType<ARSessionOrigin>();
arOrig.transform.Translate(-targetImageGameObject.transform.position, Space.World);
float babyAngle;
Vector3 babyAxis;
targetImageGameObject.transform.rotation.ToAngleAxis(out babyAngle, out babyAxis);
arOrig.transform.RotateAround(Vector3.zero, babyAxis, -babyAngle);
}
As a result I want to make transformation when created ARTrackedImage becomes Unity space Vector3.zero with Quaternion.identity, but on the device image nothink changes.
I've also tried ARSessionOrigin.MakeContentAppearAt, but didnt work as I want :
arOrig.MakeContentAppearAt(targetImageGameObject.transform, Vector3.zero, Quaternion.identity);