Skip to main content

Upgrade guides

Upgrading to Manna v0.6.89

LighthousePose[] was replaced with the StaticLighthouseData in the Manna v0.6.89. Please update your Manna.SetStaticLighthousePoseSelector to use the new class.

...
_manna.SetStaticLighthousePoseSelector(StaticLighthousePoseSelector);
}

private void StaticLighthousePoseSelector(StaticLighthouseData staticLighthouseData, Action<LighthousePose> onPoseSelected)
{
var lighthousePoses = staticLighthouseData.poses;
// Your logic for selecting the desired lighthouse pose
...

Upgrading from v0.5 to v0.6

The v0.6 family of ConjureKit and the additional packages is now released. It introduces new exciting features and breaking changes. Please follow this guide to upgrade the v0.5 packages to v0.6.

Upgrade the packages

Go to the Window->Package Manager, select the desired packages, and click the Upgrade to 0.6.x button.

note

Please restart Unity Editor after installing or upgrading to the new packages.

ConjureKit

The ConjureKit initialization process has changed. The constructor no longer requires a ConjureKitConfiguration. The default configuration will be loaded when calling Connect.

v0.5

_conjureKit = new ConjureKit(
ConjureKitConfiguration.Get(),
arCamera.transform,
"YOUR_APP_KEY",
"YOUR_APP_SECRET");

v0.6

_conjureKit = new ConjureKit(
arCamera.transform,
"YOUR_APP_KEY",
"YOUR_APP_SECRET");

The new Init method can be used if you want to use the non-default configuration.

_conjureKit.Init(ConjureKitConfiguration.Get()); // Optional

We moved all Entity, Component, and Participant-related functions away from IConjureKit to Session.

v0.5

_conjureKit.AddEntity(
entityPos,
onComplete: entity => CreateCube(entity),
onError: error => Debug.Log(error));

v0.6

_conjureKit.GetSession().AddEntity(
entityPos,
onComplete: entity => CreateCube(entity),
onError: error => Debug.Log(error));

Manna

We removed mandatory dependency from ARFoundation. Now developers should provide the texture to scan via a new method, ProcessVideoFrameTexture from any capture source (including ARFoundation). Here's an example code of how to do that with ARFoundation

v0.6

private void Update()
{
FeedMannaWithVideoFrames();
}

private void FeedMannaWithVideoFrames()
{
var imageAcquired = arCameraManager.TryAcquireLatestCpuImage(out var cpuImage);
if (!imageAcquired)
{
AukiDebug.LogInfo("Couldn't acquire CPU image");
return;
}

if (_videoTexture == null) _videoTexture = new Texture2D(cpuImage.width, cpuImage.height, TextureFormat.R8, false);

var conversionParams = new XRCpuImage.ConversionParams(cpuImage, TextureFormat.R8);
cpuImage.ConvertAsync(
conversionParams,
(status, @params, buffer) =>
{
_videoTexture.SetPixelData(buffer, 0, 0);
_videoTexture.Apply();
cpuImage.Dispose();

_manna.ProcessVideoFrameTexture(
_videoTexture,
arCamera.projectionMatrix,
arCamera.worldToCameraMatrix
);
}
);
}