Xamarin.iOS'ta ARKit'e giriş
iOS 11 için Artırılmış Gerçeklik
ARKit, çok çeşitli artırılmış gerçeklik uygulamaları ve oyunları sağlar
ARKit kullanmaya başlama
Artırılmış gerçeklik ile çalışmaya başlamak için aşağıdaki yönergeler basit bir uygulamada yol gösterir: 3B modeli konumlandırma ve ARKit'in izleme işleviyle modeli yerinde tutmasına izin verme.
1. 3B model ekleme
Varlıklar, SceneKitAsset derleme 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 görünümde Scene
özelliğini 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. İsteğe bağlı olarak oturum temsilcisi uygulama
Basit durumlar için gerekli olmasa da, oturum temsilcisi uygulamak ARKit oturumunun durumunda hata ayıklama (ve gerçek uygulamalarda kullanıcıya geri bildirim sağlama) 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);
}
}
yönteminde temsilcisini atayın ViewDidLoad
:
// Track changes to the session
SceneView.Session.Delegate = new SessionDelegate();
4. 3B modeli dünyada konumlandırma
içinde ViewWillAppear
, aşağıdaki kod bir ARKit oturumu oluşturur ve 3B modelin uzaydaki konumunu cihazın kamerasına göre 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 devam ettirildiğinde, 3B model kameranın önüne yerleştirilir. Model konumlandırıldıktan sonra kamerayı hareket ettirin ve ARKit modelin konumunu korurken izleyin.
5. Artırılmış gerçeklik oturumunu duraklatma
Görünüm denetleyicisi görünür olmadığında ARKit oturumunu duraklatmak iyi bir yöntemdir (yönteminde ViewWillDisappear
:
SceneView.Session.Pause();
Özet
Yukarıdaki kod basit bir ARKit uygulamasına neden olur. Daha karmaşık örnekler, artırılmış gerçeklik oturumunu barındıran görünüm denetleyicisinin uygulamasını IARSCNViewDelegate
ve ek yöntemlerin uygulanmasını bekler.
ARKit, yüzey izleme ve kullanıcı etkileşimi gibi birçok daha gelişmiş özellik sağlar.