AR Foundation 2.1 Now Available

Oh, god finally! Thank you.

This is awesome news, thanks Unity Team, great work!

One thing that would give it even more power is, youtube content. A lot more quick tips and short intro’s in video format from the Unity Team would be great please, then keep the videos updated please.

It’s great news! But I found one problem - when I use ARSession.Reset() method, then camera is frozen. It occurs not only in my project but in AR Foundation Samples too.

1 Like

Hi guys, How to create a prefab from «baked lights», exactly?!

I saw a lot of tutorials that they used realtime lights in their scenes and I know they have no idea how to solve this damn basic problem!!
(same question link)

Ya I can definitely imagine its a large undertaking ( I even began trying to write my own, but gave up as soon as I realized just how many layers of difficulty it woudl be :confused: )! I would say that for me ( and the large majority of other AR / XR developers I chat with ) a working, stable remote is by far the most important feature for Foundations, as it takes iteration cycles from minutes to seconds! If theres any way to move this up the list of priorities, I would love to know!

Anyways, great work / congrats to you and the team on all the ARFoundations stuff. I’m very excited to see whats next and thank you so much for your work and effort!

1 Like

So can we easily test in the editor now, like we could back in 2017 with ARInterface? Its frustrating to watch you guys pour so much energy into new features, while leaving core usability fixes to the way side… Maybe have someone on the team actually try and ship a game, so you can fix some of more realworld issues devs have (like not being able to quickly iterate in the editor). There’s no reason we should be deploying to device all the time when its just a camera in space, and some planes, that is all very easily simulatable in the editor.

2 Likes

Quick question
Should the Environment Probe demo have a black background? Or should we see the camera image in the background? Just the former for me right now.

2 related questions

  1. For the Camera should a Custom Material be enabled in the ARCameraBackground component?

and
2. Should the LWRPAdditionalData component be added to the Camera?

Where is the documentation about object tracking?
How do I generate object tracking models? (ARKitReferenceObjectEntry?)
Or should I install the ARKit Plugin from Bitbucket and then use the object scanner from there??

EDIT: I suppose I should use Apple’s XCode project to make a scanner: Scanning and detecting 3D objects | Apple Developer Documentation

Some feedback on the new object tracker

  • It seems like ARTrackedObjectManager.trackedObjectsChanged gets called every frame? it doesn’t respect if there actually has been any change?
  • ARTrackedObjectManager.trackedObjectsChanged → removed doesn’t get called when I remove the physical object?
  • Is there a way to set the tracked object as the scene’s root? I’m creating a multiplayer experience around an object, and syncing the location of user’s avatars would be much easier with the tracked object as root location… :slight_smile:
    I can’t just move ar session origin to the tracked object’s location can I?

Some docs links are broken, so I’ll provide direct links here:
ARFoundation: https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@2.1/manual/tracked-object-manager.html
ARSubsystems: https://docs.unity3d.com/Packages/com.unity.xr.arsubsystems@2.1/manual/object-tracking.html
ARKit: https://docs.unity3d.com/Packages/com.unity.xr.arkit@2.1/manual/arkit-object-tracking.html

No, the Bitbucket plugin is different and not compatible with ARFoundation.

That’s correct. This is documented in the ARKit link I mentioned above.

That’s true, though the lists of added, updated, and removed will be empty.

I believe this is ARKit’s behavior. It does not track moving objects and (I think) assumes they are persistent. The same is true for planes – ARKit doesn’t track moving surfaces.

1 Like

For those looking for a workaround for LWRP, I have put up this project GitHub - StigOlavsen/LightweightARFoundation: Bare bones Unity project with AR Foundation using the Lightweight Render Pipeline (LWRP) version 5.13 that works with the latest versions of the Lightweight render pipeline (project uses 5.13). Only tested with ARKit, but I see no reason it shouldn’t also work with ARCore.

4 Likes

Apolgies if I’m repeating my self but struggling to customize how the environment probes work
2 issues.

  1. I need to control when and where the probes are updated, it seems to happen at arbitrary intervals right now
    and
  2. I need to soften the transition between maps when using the LWRP.

The official Apple ARkit documentation suggests both options are possible. ie manually placing of probes and softening the transitions. see here

1 Like

@steego Thanks for sharing but AFAIK, no issues getting LWRP 5.6.1 working with ARFoundation 2.1. I find simply updating the manifest works if it loads with latest 5.71

The problem is that 5.6.1 is a bit outdated already, this project works with LWRP 5.13 (should work with 5.10+ I think). I did this because I needed some features in the newer versions of LWRP.

Random info.

I’ve found a lot of “UE4 only” artists are starting to get more acquainted with Unity.

Why? Because of the shadergraph.

That one thing, is driving a lot of artists to unity and they wield the shadergraph like Poseidon’s Trident.

praise be

On the other hand, it takes 2 seconds to transfer your 3d model and materials from a DCC app to UE4 via datasmith and everything gets converted for you for example from a 3ds Max scene with VRay materials.

Unity’s current solution for this is either to import fbx (and loose any lighting and materials), or use the Pixyz solution, (and loose any lighting and materials). I’m my line most people use V-Ray or Redshift in 3ds Max. Until Unity comes up with a solution to this, more UE4 guys will stick to it and even some Unity guys move over to UE4 sadly

Some Artist are also coders, and those may choose to stick to Unity since C# is like childsplay compared to C++

2 Likes

@steego Thanks. Misread as 5.1.3 Will look into what new features were added between 5.6.1

At the very least would like to dynamically stop the updating of the environment probe.
Wish someone from Unity would chime in…

Hi,

Is there a chance that raycast in 2.1 is missing the option to specify the filter angle when detecting feature points?
This was working in the previous version and now raycast has no overload for this.

I’ve got the same problem…any solution?

Further update.
So I’ve attempted to stop automatic updating of Environment Probes via a double tap gesture.
Tried 3 ways so far
By
1 setting automaticPlacement in AREnviromentProbeManager to false;
and by
2 calling Stop on XREnvironmentProbeSubsystem.
and
3 calling Stop on ARKitEnvironmentProbeSubsystem

All result in crashing my application with
System.UnhandledExceptionEventHandler:Invoke(Object, UnhandledExceptionEventArgs)
(Filename: currently not available on il2cpp Line: -1)

I’ve modified the Script Execution order to make sure that this script runs last.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.XR.ARSubsystems;
using UnityEngine.XR.ARFoundation;
using UnityEngine.UIElements;

public class DoubleTapDetect : MonoBehaviour
{

XREnvironmentProbeSubsystem probeSubsystem;
AREnvironmentProbeManager probeManager;
ARKitEnvironmentProbeSubsystem arKitSubSytem;
public GameObject Panel;

void Update()
{
for (var i = 0; i < Input.touchCount; ++i)
{
if (Input.GetTouch(i).phase == TouchPhase.Began)
{
if (Input.GetTouch(i).tapCount == 2)
{
// double tap :)
//stop env probes from updating;
probeManager.automaticPlacement = false;
// probeSubsystem.Stop();
//arKitSubSytem.Stop();
}
}
}

}
}