Çekirdek sistem — MRTK2

Giriş sisteminin merkezinde, MRTK ile ilişkili girişle ilgili tüm işlevlerin başlatılmasından ve çalıştırılmasından sorumlu olan bir hizmet olan InputSystem yer alır.

Not

Okuyucuların terminoloji bölümünü zaten okuduğu ve temel bir anlayışa sahip olduğu varsayılır.

Bu hizmet aşağıdakilerin sorumluluğundadır:

  • Giriş sistemi profilini okuma
  • Yapılandırılan veri sağlayıcılarını başlatma (örneğin, Windows Mixed Reality Device Manager ve OpenVR Device Manager).
  • HoloLens (1. nesil) tarzı göz bakışı bilgilerinin yanı sıra HoloLens 2 stil göz bakışı bilgileri sağlamakla sorumlu bir bileşen olan GazeProvider'ın örneklenmesi.
  • Odağı olan nesneleri belirlemekle sorumlu olan bir bileşen olan FocusProvider örneği. Bu, belgelerin işaretçiler ve odak bölümünde daha ayrıntılı olarak açıklanmıştır.
  • Tüm giriş olayları için kayıt noktaları sağlama ( genel dinleyiciler olarak).
  • Bu giriş olayları için olay dağıtma özellikleri sağlama.

Giriş olayları

Giriş olayları genellikle iki farklı kanalda tetiklenir:

Odaktaki nesneler

Olaylar doğrudan odağı olan bir GameObject'e gönderilebilir. Örneğin, bir nesnenin uygulayan IMixedRealityTouchHandlerbir betiği olabilir. Bu nesne, yakınındaki bir el tarafından odaklandığında dokunma olaylarını alır. Bu tür olaylar, olayı işleyebilen bir GameObject bulana kadar GameObject hiyerarşisinde "yukarı" gider.

Bu, varsayılan giriş sistemi uygulamasından ExecuteHierarchy kullanılarak yapılır.

Genel dinleyiciler

Olaylar genel dinleyicilere gönderilebilir. Giriş sisteminin arabirimini kullanarak tüm giriş olaylarına kaydolmak IMixedRealityEventSystem mümkündür. Genel olaylara kaydolmak için RegisterHandler yönteminin kullanılması önerilir. Kullanım dışı bırakılan Register işlev, dinleyicilerin yalnızca belirli bir türdeki giriş olayları (burada türü olay arabirimi tarafından tanımlanır) yerine TÜM giriş olayları hakkında bildirim almasına neden olur.

Geri dönüş dinleyicilerinin, sahnenin başka bir yerinde işlenmemiş her giriş olayını alacakları için önerilmez.

Olay gönderim sırası

Genellikle olaylar dinleyicilere aşağıdaki şekilde gönderilir. Aşağıdaki adımlardan herhangi birinin olayı işlenmiş olarak işaretlemesi durumunda olay dağıtma işleminin durdurulduğunu unutmayın.

  1. Olay genel dinleyicilere gönderilir.
  2. Olay, odaklanmış nesnenin kalıcı iletişim kutularına gönderilir.
  3. Olay odaklanmış nesneye gönderilir.
  4. Olay geri dönüş dinleyicilerine gönderilir.

Cihaz yöneticileri ve veri sağlayıcıları

Bu varlıklar, alt düzey API'lerle (Windows Mixed Reality API'leri veya OpenVR API'leri gibi) birlikte çalışmaktan ve bu sistemlerden verileri MRTK'nın üst düzey giriş soyutlamalarına uyanlara çevirmekten sorumludur. Denetleyiciler, denetleyicilerin kullanım ömrünü algılamaktan, oluşturmak ve yönetmekle sorumludur.

Cihaz yöneticisinin temel akışı şunları içerir:

  1. Cihaz yöneticisinin örneği giriş sistemi hizmeti tarafından oluşturulur.
  2. Cihaz yöneticisi, temel aldığı sisteme kaydolmaktadır (örneğin, Windows Mixed Reality cihaz yöneticisi giriş ve hareket olaylarına kaydolacaktır.
  3. Temel alınan sistemden keşfettiği denetleyiciler oluşturur (örneğin sağlayıcı, ifade edilmiş ellerin varlığını algılayabilir)
  4. Update() döngüsünde, temel alınan sistemin yeni durumunu yoklamak ve denetleyici gösterimini güncelleştirmek için UpdateController() öğesini çağırın.