Introducción a ARKit en Xamarin.iOS
Realidad aumentada para iOS 11
ARKit habilita una amplia variedad de aplicaciones y juegos de realidad aumentada
Tareas iniciales con ARKit
Para empezar a trabajar con la realidad aumentada, las instrucciones siguientes le ayudarán a recorrer una aplicación sencilla: colocar un modelo 3D y permitir que ARKit mantenga el modelo en su lugar con su funcionalidad de seguimiento.

1. Agregar un modelo 3D
Los recursos se deben agregar al proyecto con la acción de compilación SceneKitAsset.

2. Configuración de la vista
En el método del controlador de ViewDidLoad vista, cargue el recurso de escena y establezca la Scene propiedad en la vista:
ARSCNView SceneView = (View as ARSCNView);
// Create a new scene
var scene = SCNScene.FromFile("art.scnassets/ship");
// Set the scene to the view
SceneView.Scene = scene;
3. Opcionalmente, implemente un delegado de sesión.
Aunque no es necesario para casos sencillos, la implementación de un delegado de sesión puede ser útil para depurar el estado de la sesión de ARKit (y en aplicaciones reales, proporcionando comentarios al usuario). Cree un delegado simple con el código siguiente:
public class SessionDelegate : ARSessionDelegate
{
public SessionDelegate() {}
public override void CameraDidChangeTrackingState(ARSession session, ARCamera camera)
{
Console.WriteLine("{0} {1}", camera.TrackingState, camera.TrackingStateReason);
}
}
Asigne el delegado en en el ViewDidLoad método :
// Track changes to the session
SceneView.Session.Delegate = new SessionDelegate();
4. Posición del modelo 3D en el mundo
En , el código siguiente establece una sesión de ARKit y establece la posición del modelo 3D en el espacio con respecto a la cámara ViewWillAppear del dispositivo:
// Create a session configuration
var configuration = new ARWorldTrackingConfiguration {
PlaneDetection = ARPlaneDetection.Horizontal,
LightEstimationEnabled = true
};
// Run the view's session
SceneView.Session.Run(configuration, ARSessionRunOptions.ResetTracking);
// Find the ship and position it just in front of the camera
var ship = SceneView.Scene.RootNode.FindChildNode("ship", true);
ship.Position = new SCNVector3(2f, -2f, -9f);
Cada vez que se ejecute o reanude la aplicación, el modelo 3D se colocará delante de la cámara. Una vez que se coloca el modelo, mueva la cámara y observe cómo ARKit mantiene el modelo posicionado.
5. Pausar la sesión de realidad aumentada
Es una buena práctica pausar la sesión de ARKit cuando el controlador de vista no está visible (en el ViewWillDisappear método :
SceneView.Session.Pause();
Resumen
El código anterior da como resultado una aplicación ARKit sencilla. Los ejemplos más complejos esperarían que el controlador de vista que hospeda la sesión de realidad aumentada implementara y se IARSCNViewDelegate implementarían métodos adicionales.
ARKit proporciona muchas características más sofisticadas, como el seguimiento de la superficie y la interacción del usuario.