Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Augmented Reality für iOS 11
ARKit ermöglicht eine Vielzahl von Augmented Reality-Anwendungen und -Spielen
Erste Schritte mit ARKit
Um mit Augmented Reality zu beginnen, gehen die folgenden Anweisungen durch eine einfache Anwendung: Positionierung eines 3D-Modells und ermöglichen ARKit, das Modell mit seiner Tracking-Funktionalität zu halten.

1. Hinzufügen eines 3D-Modells
Ressourcen sollten dem Projekt mit der SceneKitAsset-Buildaktion hinzugefügt werden.

2. Konfigurieren der Ansicht
Laden Sie in der Methode des Ansichtscontrollers ViewDidLoad die Szenenressource, und legen Sie die Scene Eigenschaft für die Ansicht fest:
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. Optional implementieren Sie einen Sitzungsdelegat
Obwohl für einfache Fälle nicht erforderlich, kann die Implementierung eines Sitzungsdelegats für das Debuggen des Zustands der ARKit-Sitzung (und in echten Anwendungen, die dem Benutzer Feedback geben) hilfreich sein. Erstellen Sie mit dem folgenden Code eine einfache Stellvertretung:
public class SessionDelegate : ARSessionDelegate
{
public SessionDelegate() {}
public override void CameraDidChangeTrackingState(ARSession session, ARCamera camera)
{
Console.WriteLine("{0} {1}", camera.TrackingState, camera.TrackingStateReason);
}
}
Weisen Sie den Delegaten in der Methode zu ViewDidLoad :
// Track changes to the session
SceneView.Session.Delegate = new SessionDelegate();
4. Positionieren des 3D-Modells in der Welt
Im ViewWillAppearfolgenden Code wird eine ARKit-Sitzung eingerichtet und die Position des 3D-Modells im Verhältnis zur Kamera des Geräts festgelegt:
// 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);
Jedes Mal, wenn die Anwendung ausgeführt oder fortgesetzt wird, wird das 3D-Modell vor der Kamera positioniert. Sobald das Modell positioniert ist, bewegen Sie die Kamera, und beobachten Sie, wie ARKit das Modell positioniert.
5. Anhalten der Augmented Reality-Sitzung
Es empfiehlt sich, die ARKit-Sitzung anzuhalten, wenn der Ansichtscontroller nicht sichtbar ist (in der ViewWillDisappear Methode:
SceneView.Session.Pause();
Zusammenfassung
Der obige Code führt zu einer einfachen ARKit-Anwendung. Komplexere Beispiele würden erwarten, dass der Ansichtscontroller, der die Augmented Reality-Sitzung hostet, implementiert IARSCNViewDelegatewird, und zusätzliche Methoden implementiert werden.
ARKit bietet viele komplexere Features, z. B. Surface Tracking und Benutzerinteraktion.