Xamarin. iOS içinde ARKit 'e giriş
İOS 11 için genişletilmiş gerçeklik
ARKit çok çeşitli genişletilmiş gerçeklik uygulamalarına ve oyunlarına izin verebilir
ARKit kullanmaya başlama
Genişletilmiş gerçeklik ile çalışmaya başlamak için aşağıdaki yönergelerde basit bir uygulama gösterilmektedir: 3B model konumlandırma ve ARKit modeli izleme işlevleriyle birlikte tutmaya izin verme.

1. bir 3B model ekleyin
Varlıklar, SceneKitAsset Build eylemiyle projeye eklenmelidir.

2. görünümü yapılandırma
Görünüm denetleyicisinin ViewDidLoad yönteminde, sahne varlığını yükleyin ve Scene görünümünde özelliği ayarlayın:
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. isteğe bağlı olarak bir oturum temsilcisi uygulayın
, Basit durumlar için gerekli olmamasına rağmen, bir oturum temsilcisini uygulamak, ARKit oturumunun (ve gerçek uygulamalarda, kullanıcıya geri bildirim sağlayan) durumunda hata ayıklama için yararlı olabilir. Aşağıdaki kodu kullanarak basit bir temsilci oluşturun:
public class SessionDelegate : ARSessionDelegate
{
public SessionDelegate() {}
public override void CameraDidChangeTrackingState(ARSession session, ARCamera camera)
{
Console.WriteLine("{0} {1}", camera.TrackingState, camera.TrackingStateReason);
}
}
İçindeki temsilciyi ViewDidLoad yöntemine atayın:
// Track changes to the session
SceneView.Session.Delegate = new SessionDelegate();
4. dünyanın 3B modelini konumlandırma
ViewWillAppear' De, aşağıdaki kod bir ARKit oturumu oluşturur ve 3B modelin konumunu cihaz kamerasına göre alan olarak ayarlar:
// 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);
Uygulama her çalıştırıldığında veya sürdürüldüğünde, 3B model kameranın önüne yerleştirilir. Model konumlandırıldıktan sonra kamerayı taşıyın ve ARKit olarak izleyin.
5. genişletmüş gerçeklik oturumunu duraklatın
Görünüm denetleyicisi görünür olmadığında (yönteminde, ARKit oturumunu duraklatmak iyi bir uygulamadır ViewWillDisappear .
SceneView.Session.Pause();
Özet
Yukarıdaki kod basit bir ARKit uygulaması ile sonuçlanır. Daha karmaşık örnekler, genişletilmiş gerçeklik oturumunun uygulanmasına neden olan görünüm denetleyicisini IARSCNViewDelegate ve ek yöntemler uygulanmasını bekler.
ARKit, yüzey izleme ve Kullanıcı etkileşimi gibi birçok gelişmiş özellik sağlar.