Skip to main content

Changelog

All notable changes to the ARFoundation Integration package will be documented in this file.

Latest Release

ARFoundation Integration [0.6.42] - 2024-04-29

Added

  • You can decide the minimum amount of time between one frame event and the next, via TimerMs property.
  • Two frame "providers" have been added:
    • CameraTextureProvider provides a texture from ARFoundation, via OnNewTextureReady event. Equivalent to previous FrameFeeder.
    • CameraFrameProvider is an extended version providing also additional Frame information, via OnNewFrameReady event. We strongly suggest to use this last method to obtain matrices, since on iOS it asks for such information directly at the native level to ARKit (which has been proven to be more correct than via ARFoundation).
  • When using CameraFrameProvider you can set your own SessionOriginTransform as base matrix transform, or set it to null to set it to identity.

Changed

  • FrameFeeder is now renamed as CameraTextureProvider. You can add it to the scene or simply do:
var textureProviderComp = CameraTextureProvider.GetOrCreateComponent();
textureProviderComp.TimerMs = 1000; // [optional] adds delay: get a new texture minimum every 1 sec (the first texture is returned immediately)
textureProviderComp.OnNewTextureReady += texture => _manna.ProcessVideoFrameTexture(..., ..., ...);
  • You can similarly use CameraFrameProvider:
var textureProviderComp = CameraFrameProvider.GetOrCreateComponent();
textureProviderComp.OnNewFrameReady += frame => _manna.ProcessVideoFrameTexture(frame.Texture, frame.ARProjectionMatrix, frame.ARWorldToCameraMatrix);

Fixed

  • Fixed a bug on iOS where matrices are not precise enough in time when getting from ARCamera. Use CameraFrameProvider for better results on iOS!

Removed

  • Dependency from Manna removed.
  • Method AttachMannaInstance(manna) has been removed, to remove dependency from Manna.

Previous Releases

ARFoundation Integration [0.6.34] - 2023-07-31

Added

This is a new package aimed at Unity developers using the Auki SDK with ARFoundation. This is the first released version, which provides easy integration starting from Manna 0.6.34, removing the need to write and keep updated the code needed to pass frames from the camera feed.

Example of usage (after instantiating Manna):

var frameFeeder = manna.GetOrCreateFrameFeederComponent();
frameFeeder.AttachMannaInstance(manna);

or alternatively, if you place the Packages/Auki Labs ARFoundation Integration/Runtime/Manna/FrameFeederGPU script yourself on ArCameraManager gameobject:

var frameFeeder = arCameraManager.gameobject.GetComponent<FrameFeederBase>();
frameFeeder.AttachMannaInstance(mannaInstance);

We also provide a property to limit the frequency of frames being fed to Manna. You can set the property FeedInterval and set it to the desired minimum interval (in seconds) between two subsequent frames being processed. By default (0), all frames from ARFoundation will be processed by Manna.

You are also free to implement your own CustomFeeder by inheriting from FrameFeederBase and simply calling:

var frameFeeder = manna.GetOrCreateFrameFeederComponent<CustomFeeder>();