Aracılığıyla paylaş


Nesne Manipülatör — MRTK3

Nesne manipülatör

ObjectManipulator herhangi bir giriş cihazı veya modalite ile 3B alanda nesnelerin sezgisel olarak değiştirilmesini sağlar. XRI XRGrabInteractableile benzer bir görev gerçekleştirir, ancak ek özellikler ve karma gerçekliğe özgü etkileşimler sunar. XRGrabInteractable, etkileşimcilerimizle tam olarak uyumlu olsa da (ve tersi de geçerlidir), en iyi deneyim için uygulamamızı kullanmanızı öneririz.

Not

ObjectManipulator 3B nesneleri doğrudan ve sezgisel olarak işlemek için özel olarak tasarlanmıştır. Kaydırıcılar veya düğmeler gibi yaygın kullanıcı arabirimi etkileşimleri arıyorsanız bunun yerine kaydırıcılar ve düğmeler makalelerimize bakın. Mikro etkileşimleri yazmak için kullanmaktan ObjectManipulator kaçının.

Mimari

MRTK v2'de, farklı giriş türleri için karmaşık mantığın ve matematiğin çoğu tek başına ObjectManipulator işlenmiştir. Her etkileşim türü için ayrı bir kod yolu tutularak yeni etkileşim türleri kullanıma sunulurken daha az esneklik elde edilmesi gerekiyordu. MRTK3'te etkileşim sahibi , belirli bir giriş türünün işlemeye nasıl çevrildiğiyle ilgili ayrıntılardan sorumludur. ObjectManipulator yalnızca bu etkileşimcileri dinler ve nesneye ilgili dönüşümü uygular. Sonuç olarak, ObjectManipulator MRTK3'te kapsam önemli ölçüde daha basit ve daha küçüktür. Etkileşimcilerin ekleme dönüşümleri aracılığıyla nasıl iletişim kurdıklarına ilişkin açıklamalar için Interactor mimarisine bakın.

nelle yapılan işlemeler

ObjectManipulator bir, iki ve hatta nel ile yapılan işlemelerde genelleştirilebilir etkileşim davranışına olanak tanıyarak herhangi bir sayıda katılımcı etkileşimciyi destekler. Genel olarak, tüm katılımcı etkileşimcilerin attachTransforms geometrik merkezcilleri çok elle etkileşimler için kullanılır. Bir XRI ile etkileşime geçirilebilir olarak, iyi huylu bir ekleme dönüşümü gönderen her tür etkileşim sahibiyle uyumludur.

Çok elle yapılan işlemelere izin vermek istemiyorsanız, XRI'yi Selection Mode olarak Singleayarlayın. MrTK ile karışıklığı önlemek için denetçide bu özelliği diğer adla Multiselect Mode adlandırıyoruz. Etkileşim kurulabilir bir ayarın değiştirilip değiştirilemeyeceğini belirtmek için kullanılır (daha fazla açıklama için Düğme belgelerine bakın.)Selection Mode

Çoklu seçim modu

Kısıtlamalar

ObjectManipulator düzenlemelerini kısıtlamak için Kısıtlamalar API'sini kullanır. Daha fazla bilgi için Kısıtlamalar belgelerine bakın.

Manipülasyon mantığı ekleme

Geliştiriciler, komut dosyasının kendisini alt sınıfa veya başka bir şekilde değiştirmeye gerek kalmadan düzenleme davranışını ObjectManipulator özelleştirebilir. Yeni ManipulationLogic<T> bir yazmanız ve denetçide türünü özelliğiyle belirtmeniz yeterlidir ManipulationLogicTypes .

Benzer şekilde, geliştiriciler yeni bir uygulaması ITransformSmoothingLogic yazarak ve denetçide türünü özelliğiyle TransformSmoothingLogicType belirterek düzeltme davranışını özelleştirebilir.

Önemli

Kendinizi yeni bir etkileşim veya giriş cihazı türü için yeni işleme mantığı türleri yazarken bulursanız, büyük olasılıkla yanlış yola gidiyorsunuz demektir. Ekleme dönüştürmesi düzgün şekilde davranıldığı sürece, mevcut işleme mantığı rastgele giriş türleri için çalışmalıdır. Bunun yerine yeni bir etkileşim kurmayı veya yazmayı göz önünde bulundurun. İyi davranış gösteren etkileşim mantığı yazma hakkında daha fazla bilgi için Interactor mimarisi belgelerini ve Etkileşimli mimari belgelerini okuyun.