Unity AR Foundation, cross-platform AR uygulamaları geliştirmek için güçlü bir framework'tür. Tek kod tabanıyla hem ARKit (iOS) hem ARCore (Android) için uygulama oluşturun.
AR Foundation Nedir?
- Unity'nin AR abstraction layer'ı
- ARKit ve ARCore üzerinde çalışır
- Cross-platform deployment
- OpenXR desteği
Desteklenen Özellikler
- Plane Detection: Yüzey algılama
- Image Tracking: Marker tanıma
- Face Tracking: Yüz takibi
- Body Tracking: Vücut takibi
- Light Estimation: Işık analizi
- Occlusion: Nesne örtüşmesi
- Raycast: Yüzey etkileşimi
Kurulum
- Unity 2020.3+ kurulumu
- Package Manager > AR Foundation
- ARKit XR Plugin (iOS) veya ARCore XR Plugin (Android)
- Player Settings yapılandırması
Temel Bileşenler
// Scene setup - AR Session Origin - AR Camera - AR Session - AR Plane Manager - AR Raycast Manager
Plane Detection Script
using UnityEngine;
using UnityEngine.XR.ARFoundation;
public class PlaceObject : MonoBehaviour
{
public GameObject objectPrefab;
private ARRaycastManager raycastManager;
void Start()
{
raycastManager = GetComponent<ARRaycastManager>();
}
void Update()
{
if (Input.touchCount > 0)
{
Touch touch = Input.GetTouch(0);
if (touch.phase == TouchPhase.Began)
{
List<ARRaycastHit> hits = new List<ARRaycastHit>();
if (raycastManager.Raycast(touch.position, hits, TrackableType.PlaneWithinPolygon))
{
Pose hitPose = hits[0].pose;
Instantiate(objectPrefab, hitPose.position, hitPose.rotation);
}
}
}
}
}
Image Tracking
using UnityEngine.XR.ARFoundation;
public class ImageTracker : MonoBehaviour
{
public ARTrackedImageManager imageManager;
void OnEnable()
{
imageManager.trackedImagesChanged += OnImagesChanged;
}
void OnImagesChanged(ARTrackedImagesChangedEventArgs args)
{
foreach (ARTrackedImage image in args.added)
{
// Spawn content at image position
Debug.Log($"Detected: {image.referenceImage.name}");
}
}
}
Platform Gereksinimleri
- iOS: iPhone 6S+, iOS 11+
- Android: ARCore destekli cihazlar
Optimizasyon İpuçları
- Occlusion ihtiyaç yoksa kapatın
- Plane detection sınırlayın
- 3D model LOD kullanın
- Texture atlasing
AR Foundation, production-ready AR uygulamaları için ideal framework'tür.