Unity'de odak noktası

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

HoloLens'e görüntülemekte olan 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 Arabelleği Paylaşımını Etkinleştir" seçeneği ayarlanmıştır. Bu seçenekle, çevreleyici masaüstü mikrofonlu kulaklığında veya Windows 10 Nisan 2018 Güncelleştirmesi (RS4) veya sonraki bir sürümünü çalıştıran holoLens'te çalışan bir Unity uygulaması, hologram kararlılığını iyileştirmek için derinlik arabelleğinizi uygulamanız bir odak noktası belirtmeden otomatik olarak Windows'a gönderir:

  • Çevreleyici bir masaüstü kulaklığında bu, piksel başına derinlik tabanlı yeniden derlemeyi etkinleştirir.
  • Windows 10 Nisan 2018 Güncelleştirmesi veya sonraki bir sürümünü ç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 tarafından her çerçeve için bir odak noktası seçmeye yönelik açık çalışma olmadan daha da iyi görüntü kalitesi sağlamalıdır. El ile bir odak noktası 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 Windows 10 Nisan 2018 Güncelleştirmesi'ne henüz 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 şekilde 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ış nesnenin kullanıcının arkasında olması durumunda hologram kararlılığını azaltabilir. Genellikle bir odak noktasını el ile belirtmek yerine 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 tam ortasındasınız demektir. Buradan bir sonraki konuya devam edebilirsiniz:

İsterseniz 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.