BoundsControl — MRTK3
BoundsControl, döndürme ve ölçeklendirme için işleme olanaklarının yanı sıra otomatik olarak boyutlandırılmış bir sınırlayıcı kutu sağlar.
MRTK 2.x'te, BoundsControl çoğunlukla ScriptableObjects yapılandırması kullanılarak çalışma zamanı oluşturuldu. MRTK3'te, BoundsControl kurulumu ve özelleştirmesi önemli ölçüde basitleştirildi. Sınır görselleri ve tanıtıcıları, BoundsControl'un çalışma zamanında örnek oluşturduğu özelleştirilebilir bir ön kaynaktır. Geliştiriciler görselleri önceden ayarlayıp özelleştirebilir, hatta sıfırdan yeni sınırlar görselleri oluşturabilir. Yeni Karma Gerçeklik Tasarım Dili'ni izleyerek standart sınır görselleri uygulamaları sunuyoruz.
Yeni görseller, kullanıcının amacını ve nesnenin işlemesini en az müdahaleci görsel kirlilikle gösteren kolaylaştırılmış görsel geri bildirim sunar.
Kurulum
Var olan bir nesneye BoundsControl eklemeniz ve başvuruyu BoundsVisualsPrefab
kullanmak istediğiniz sınır görselleriyle doldurmanız yeterlidir. Kullanmanız için önceden oluşturulmuş birkaç farklı sınır görseli sunuyoruz.
Önemli
Kullanıcıların nesneyi mümkün olduğunca küçük veya büyük bir boyuta ölçeklendirmesini önlemek için geliştiricilerin MinMaxScaleConstraint eklemesini kesinlikle öneririz.
Sınır görsellerinin amacını ve odak efektlerini kullanmak için nesne üzerinde bir StatefulInteractable
değerinizin olması gerekir. Etkileşim otomatik olarak algılanmazsa, bağlantıyı BoundsControl denetçisinde belirtebilirsiniz.
Not
Geliştiricilerin, affordance tabanlı işlemeye ek olarak kullanıcılara doğrudan işleme sunmak için BoundsControl ile birlikte ObjectManipulator kullanmasını öneririz. ObjectManipulator, sınır görsellerinin yanıt verdiği vurgulama/odak durumları için olarak hizmet StatefulInteractable
verebilir.
Görsellerin sınırlarının ön öğeleri
BoundsControl ile kullanılmak üzere önceden oluşturulmuş birkaç sınır görseli sunuyoruz. Geliştiricilerin bu görsellerin prefabrik varyantlarını oluşturması ve bunları ihtiyaçlarına uyacak şekilde özelleştirmesi önerilir. Tanıtıcı animasyonları ve durumları StateVisualizer tarafından desteklenerek geliştiricilerin affordance'ların genel görünümünü daha fazla özelleştirmesine olanak sağlanır.
Oklusion stilini işleme
Bu sınır görselleri, kullanıcı için daha az dikkat dağıtıcı özellik sunan basitleştirilmiş bir görsel tasarım sunar. Yalnızca sınırların kenarları boyunca ilgili tutamaçlar görünür. Sınırlar görselleri, kullanıcı amacına ve seçim ilerlemesine bağlı olarak daraltma, genişletme ve renk/kalınlık değiştirme. Bu sınırların görsel stilini kullanmanızı kesinlikle öneririz.
Yalnızca amaç
Bazı bağlamlarda tanıtıcılar istenmeyen olabilir ve geliştiriciler sınır görsellerini kullanıcı amacının hoş bir göstergesi olarak tek başına kullanmak isteyebilir. Bu prefabrik işi yaparken, HandleType.None seçilerek diğer sınır görsellerinden herhangi birinde aynı etki elde edilebilir. Sıkıştırılabilir sınır görsellerinin, yalnızca tanıtıcı tabanlı işleme için değil, birçok farklı bağlam için tatmin edici ve hoş bir görsel geri bildirim öğesi olduğunu bulduk.
Eski stil
Bu sınır görselleri kutunun tüm tutamaçlarını ve kenarlarını gösterir. Bu, eski tasarım diliyle ve MRTK 2.x'te görülen önceki davranışla daha yakından eşleşir; ancak, bu tasarım gereksiz görsel gürültü nedeniyle kullanıcılar için daha dikkat dağıtıcı olabilir. Buna ek olarak, nesnenin önünde (ve arkasında) olan tutamaçların varlığı, dolaylı bakış-sıkıştırma manipülasyonunda sorunlara neden olabilir. Özellikle bakış hedeflemeden yararlanan yeni uygulamalar için bu stili kullanmanızı önermiyoruz.
Etkileşim tasarımı
Geçerli yinelemede basit bir etkinleştirme/devre dışı bırakma etkileşimi sunuyoruz. Sınırlar yerinde tıklanarak (başka bir deyişle nesneyi seçerek, taşımadan ve serbest bırakarak) tutamaçlar açılabilir ve kapatılabilir. Bu denetimin uzaklık toleransı ile DragToggleThreshold
ayarlanabilir ve bu etkinleştirme davranışının ToggleHandlesOnClick
kendisi özelliğiyle etkinleştirilebilir/devre dışı bırakılabilir.
tutamaçlar herhangi bir zamanda ayarıyla HandlesActive
el ile etkinleştirilebilir veya koddan devre dışı bırakılabilir.
Otomatik sınır hesaplaması
BoundsControl, ilişkili nesnenin sınırlarını otomatik olarak hesaplamayı dener. Belirli bir sınır şekli isteniyorsa seçeneği işaretleyin OverrideBounds
ve sınırlar nesnesini doğrudan belirtin. Sınır hesaplama sistemi yalnızca belirtilen geçersiz kılma nesnesi için sınırları hesaplar.
Algoritmanın BoundsCalculationMethod
sınırları hesaplama şeklini etkiler. Kapalı nesnenin görsel şekli mutlaka harmanlayıcıyla eşleşmiyorsa veya tersi doğruysa, geliştiriciler hesaplama yöntemini işleyici veya harmanlama sınırlarını ya da her ikisinin bir bileşimini kullanmayı tercih etmek üzere ayarlayabilir.
Hesaplama yöntemi ne olursa olsun, Padding
seçeneği sınırları dünya birimlerinde tekdüzen olarak doldurmaya devam eder. Sınırlar düzleştirilirken, düzleştirilmiş eksen sabitlenmez.
Düzleştirme
BoundsControl, 2B içeriği işlemek için de kullanılabilir. olarak ayarlanırsa FlattenMode
Auto
, nesne herhangi bir eksen boyunca yeterince düzse BoundsControl kendisini 2B dikdörtgen sınırlara düzleştirilir. Nesne yeterince düz değilse, ancak yine de dikdörtgen sınırların karşılarını istiyorsanız, FlattenMode.Always
BoundsControl her zaman en derin eksen boyunca düz olacaktır. Buna karşılık, FlattenMode.Never
nesne çok ince olsa bile BoundsControl'un düzleştirmesini engeller.
düzenleme seçenekleri
BoundsControl'un işleme davranışı çeşitli şekillerde ayarlanabilir. seçeneği, RotateAnchor
döndürme affordances kullanılırken BoundsControl'un döndürüldiği pivot noktasını denetler. Bazı nesnelerin özet noktaları görsel merkezinden çok uzaktır ve bu da döndürme tutamaçlarıyla işlerken rahatsızlık ve kararsızlığa neden olabilir. için RotateAnchor
belirtilmesiBoundsCenter
, BoundsControl'un her zaman nesnenin gerçek kaynağı yerine hesaplanan sınırların geometrik merkezi etrafında dönmesine neden olur.
Ölçeklendirme davranışı veya Non Uniform
olarak Uniform
ayarlanabilir. Tekdüzen modunda, nesnenin tüm eksenleri birlikte ölçeklendirilerek en boy oranı ve görünüm korunur. Tekdüzen olmayan ölçeklendirme, nesnenin her ekseninin bağımsız olarak ölçeklendirilmesini sağlar.