Giriş sistemi terminolojisi — MRTK2

Giriş sistemi, MRTK tarafından sunulan tüm özelliklerden en büyük sistemlerden biridir. Araç setinin içindeki birçok şey bunun üzerine inşa eder (işaretçiler, odak, prefablar). Giriş sistemindeki kod, platformlar arasında alma ve döndürme gibi doğal etkileşimlere olanak tanıyan koddur.

Giriş sisteminin tanımlamaya değer kendi terminolojisi vardır:

  • Veri sağlayıcılar

    Giriş profilindeki giriş ayarları, veri sağlayıcıları olarak bilinen varlıklara başvurular içerir; bunları açıklayan bir diğer sözcük de cihaz yöneticileridir. Bunlar, mrtk giriş sistemini belirli bir temel sistemle birlikte kullanarak genişletmek olan bileşenlerdir. Sağlayıcıya örnek olarak, temel Windows Mixed Reality API'leriyle konuşmak ve ardından bu API'lerden alınan verileri aşağıdaki MRTK'ya özgü giriş kavramlarına çevirmek olan Windows Mixed Reality sağlayıcısı örnek olarak verilmiştir. Bir diğer örnek de OpenVR sağlayıcısıdır (işi OpenVR API'lerinin Unity soyut sürümüyle konuşmak ve ardından bu verileri MRTK giriş kavramlarına çevirmektir).

  • Denetleyici

    Fiziksel denetleyicinin bir gösterimi (ister 6 derecelik serbestlik denetleyicisi, hareket desteğine sahip HoloLens 1 stili bir el, tam olarak ifade edilmiş bir el, bir artık hareket denetleyicisi vb.). Denetleyiciler cihaz yöneticileri tarafından oluşturulur (örneğin, WMR cihaz yöneticisi bir denetleyici oluşturur ve mafsalı bir elin var olduğunu gördüğünde kullanım ömrünü yönetir).

  • Işaretçi

    Denetleyiciler, oyun nesneleriyle etkileşime geçmek için işaretçileri kullanır. Örneğin, yakın etkileşim işaretçisi elin (denetleyici olan) kendilerini 'yakın etkileşim' olarak tanıtan nesnelere ne zaman yakın olduğunu algılamaktan sorumludur. İşaretçiler için diğer örnekler, kullanıcıdan kol uzunluğundan daha uzun içerikle etkileşim kurmak için uzak ışınları kullanan ışınlama veya uzak işaretçilerdir (kabuk el ışın işaretçisi).

    İşaretçiler cihaz yöneticisi tarafından oluşturulur ve bir giriş kaynağına eklenir. Bir denetleyicinin tüm işaretçilerini almak için şunları yapın: controller.InputSource.Pointers

    Bir denetleyicinin aynı anda birçok farklı işaretçiyle ilişkilendirilebileceğini unutmayın. Bunun karışıklığa yol açmadığından emin olmak için, hangi işaretçilerin etkin olmasına izin verileceğini denetleyen bir işaretçi ara aracı vardır (örneğin, ara aracı yakın etkileşim algılandığında uzak etkileşim işaretçilerini devre dışı bırakır).

  • Odaklanma

    İşaretçi olayları odaktaki nesnelere gönderilir. Odak seçimi işaretçi türüne göre değişir; bir el ışın işaretçisi ışın yayınlarını kullanırken, dürtme işaretçisi küre yayınlarını kullanır. Bir nesnenin odağı almak için IMixedRealityFocusHandler uygulaması gerekir. Filtrelenmemiş işaretçi olaylarını almak için bir nesneyi genel olarak kaydetmek mümkündür, ancak bu yaklaşım önerilmez.

    Odaktaki nesneleri güncelleştiren bileşen FocusProvider'dır

  • Imleç

    İşaretçi etkileşimiyle ilgili ek görsel ipuçları veren bir işaretçiyle ilişkili varlık. Örneğin FingerCursor parmağınızın etrafında bir halka oluşturur ve parmağınız 'etkileşime yakın' nesnelere yaklaştığında bu halkayı döndürebilir. İşaretçi, aynı anda tek bir imleçle ilişkilendirilebilir.

  • Etkileşim ve Düzenleme

    Nesneler bir etkileşim veya işleme betiğiyle etiketlenebilir. Bu bir aracılığıyla veya gibi NearInteractionGrabbable/ManipulationHandlerbir Interactableşey olabilir.

    Örneğin, NearInteractionGrabbable ve NearInteractionTouchable, belirli işaretçilerin (özellikle etkileşim işaretçilerine yakın) hangi nesnelere odaklanabileceğini bilmesini sağlar.

    Etkileşimli ve ManipulationHandler, kullanıcı arabirimi görsellerini değiştirmek veya oyun nesnelerini taşımak/ölçeklendirmek/döndürmek için işaretçi olaylarını dinleyen bileşenlere örnek olarak verilebilir.

Aşağıdaki görüntü, MRTK giriş yığınının üst düzey derlemesini (aşağıdan yukarıya) yakalar:

Giriş Sistemi Diyagramı