Aracılığıyla paylaş


Unity'de odak noktası

Ad Alanı: UnityEngine.XR.WSA
Tür: HolographicSettings

HoloLens'e şu anda görüntülenen hologramların en iyi şekilde nasıl dengeleneceği hakkında bir ipucu sağlamak için odak noktasını kullanın.

Unity'de Odak Noktasını ayarlamak istiyorsanız, HolographicSettings.SetFocusPointForFrame() kullanılarak her karenin ayarlanması gerekir. Odak Noktası bir çerçeve için ayarlı olmadığında varsayılan sabitleme düzlemi kullanılır.

Not

Varsayılan olarak, yeni Unity projelerinin "Derinlik Arabellek Paylaşımını Etkinleştir" seçeneği ayarlanmıştır. Bu seçenekle, çevreleyici bir masaüstü kulaklığında veya Windows 10 Nisan 2018 Güncelleştirmesi (RS4) veya üzerini çalıştıran bir HoloLens'te çalışan bir Unity uygulaması, uygulamanızın odak noktası belirtmeden hologram kararlılığını otomatik olarak iyileştirmek için derinlik arabelleğinizi Windows'a gönderir:

  • Çevreleyici bir masaüstü kulaklığında bu, piksel başına derinlik tabanlı yeniden üretmeyi etkinleştirir.
  • Windows 10 Nisan 2018 Güncelleştirmesi veya üzerini çalıştıran bir HoloLens'te bu, en uygun sabitleme düzlemini otomatik olarak seçmek için derinlik arabelleği analiz eder.

Her iki yaklaşım da uygulamanızın her kare için bir odak noktası seçmeye yönelik açık çalışması olmadan daha da iyi görüntü kalitesi sağlamalıdır. Bir odak noktasını el ile sağlarsanız, bunun yukarıda açıklanan otomatik davranışı geçersiz kılacağını ve genellikle hologram kararlılığını azaltacağını unutmayın. Genel olarak, yalnızca uygulamanız Henüz Windows 10 Nisan 2018 Güncelleştirmesi'ne güncelleştirilmemiş bir HoloLens üzerinde çalışırken el ile bir odak noktası belirtmeniz gerekir.

Örnek

SetFocusPointForFrame statik işlevinde kullanılabilir aşırı yüklemeler tarafından önerilen Odak Noktasını ayarlamanın birçok yolu vardır. Aşağıda, odak düzlemini her çerçeve için sağlanan nesneye ayarlamaya yönelik basit bir örnek verilmiştir:

public GameObject focusedObject;
void Update()
{
    // Normally the normal is best set to be the opposite of the main camera's
    // forward vector.
    // If the content is actually all on a plane (like text), set the normal to
    // the normal of the plane and ensure the user does not pass through the
    // plane.
    var normal = -Camera.main.transform.forward;     
    var position = focusedObject.transform.position;
    UnityEngine.XR.WSA.HolographicSettings.SetFocusPointForFrame(position, normal);
}

Not

Yukarıdaki basit kod, odaklanmış nesne kullanıcının arkasında kalırsa hologram kararlılığını azaltabilir. Odak noktasını el ile belirtmek yerine Genellikle Derinlik AraBelleği Paylaşımını Etkinleştir ayarının ayarlanması önerilir.

Sonraki Geliştirme Denetim Noktası

Sunduğumuz Unity geliştirme yolculuğunu takip ediyorsanız, Karma Gerçeklik platformu özelliklerini ve API'lerini keşfetmenin ortasındasınız demektir. Buradan sonraki konuya devam edebilirsiniz:

Veya doğrudan uygulamanızı bir cihaza veya öykünücüye dağıtmaya atlayabilirsiniz:

İstediğiniz zaman Unity geliştirme denetim noktalarına geri dönebilirsiniz.

Ayrıca bkz.