Kısıtlama yöneticisi — MRTK2

Kısıtlama yöneticisi, bir dönüştürmeye bir dizi kısıtlama bileşeni uygulamaya izin verir. Oyun nesnesine bağlı türün TransformConstraint bileşenleri dikkate alınabilir. Varsayılan olarak, kısıtlama yöneticisi oyun nesnesine eklenen tüm kısıtlama bileşenlerini otomatik olarak toplar ve bunları işlenmiş dönüşümlere uygular. Ancak kullanıcılar, uygulanan kısıtlamaların listesini el ile yapılandırmayı ve ekli kısıtlamaların yalnızca bir alt kümesinin uygulanmasını tercih edebilir.

Şu anda aşağıdaki MRTK UX öğeleri kısıtlama yöneticisini destekliyor:

Denetçi özellikleri ve alanları

Kısıtlama yöneticisi iki modda çalıştırılabilir:

  • Otomatik kısıtlama seçimi
  • El ile kısıtlama seçimi

Otomatik kısıtlama seçimi

Otomatik Seçim

Kısıtlama yöneticisinin varsayılan modu olan otomatik kısıtlama seçimi, tüm ekli kısıtlama bileşenlerinin listesini sağlar, ayrıca düğmelere ve kısıtlama ekle düğmesine gider.

Oyun nesnesine kısıtlama ekleme

Bu düğme bir kısıtlama bileşeninin doğrudan kısıtlama yöneticisi denetçisinden eklenmesini sağlar. Projedeki tüm kısıtlama türleri burada görünür olmalıdır. Daha fazla bilgi için bkz . dönüştürme kısıtlamaları .

Bileşene git

Nesnede bulunan tüm kısıtlamalar burada bileşene git düğmesiyle listelenir. Bu düğme, denetçinin yapılandırılabilmesi için seçili kısıtlama bileşenine kaydırmasına neden olur.

El ile kısıtlama seçimi

El ile Seçim

Kısıtlama yöneticisi el ile moda ayarlanırsa, yalnızca kısıtlama listesinde bağlantılı kısıtlamalar işlenir ve dönüşüme uygulanır. Görüntülenen liste yalnızca kullanıcının seçtiği kısıtlamaları gösterir ve girişleri kaldırmak veya eklemek için düğmelere veya seçeneklere gider. El ile modu ilk kez etkinleştirirken, kısıtlama yöneticisi listeyi doldurur ve ekli kısıtlama bileşenlerini seçmek için bir başlangıç noktası olarak tüm kullanılabilir bileşenler olur.

Girdiyi kaldır

Bu, girişi el ile seçilen listeden kaldırır. Bu seçeneğin kısıtlama bileşenini oyun nesnesinden kaldırmayacağını unutmayın. Kısıtlama bileşenlerinin, bu bileşene başvuran diğer bileşenleri yanlışlıkla bozmadığından emin olmak için her zaman el ile kaldırılması gerekir.

Giriş ekle

Giriş ekle seçeneği, henüz el ile listede bulunmayan tüm kullanılabilir kısıtlama bileşenlerini gösteren bir açılan menü açar. Bileşenin el ile kısıtlama seçimine eklendiği girdilerden birine tıklayarak.

Yeni kısıtlama ekleme

Bu seçenek, seçilen türün bir bileşenini oyun nesnesine ekler ve yeni oluşturulan kısıtlama bileşenini el ile kısıtlama listesine ekler.

Dönüştürme kısıtlamaları

Kısıtlamalar, işlemeyi bir şekilde sınırlamak için kullanılabilir. Örneğin, bazı uygulamalar döndürme gerektirebilir, ancak nesnenin dik kalmasını da gerektirebilir. Bu durumda, nesnesine bir RotationAxisConstraint eklenebilir ve döndürmeyi y ekseni döndürmeyle sınırlamak için kullanılabilir. MRTK, tümü aşağıda açıklanan bir dizi kısıtlama sağlar.

Ayrıca yeni kısıtlamalar tanımlamak ve bunları bazı uygulamalar için gerekli olabilecek benzersiz işleme davranışı oluşturmak için kullanmak da mümkündür. Bunu yapmak için öğesini devralan TransformConstraint bir betik oluşturun ve soyut özelliği ile soyut ConstraintTypeApplyConstraint yöntemini uygulayın. Nesneye yeni bir kısıtlama eklendikten sonra, işlemeyi tanımlandığı şekilde kısıtlamalıdır. Bu yeni kısıtlama, kısıtlama yöneticisi otomatik seçiminde veya el ile modda giriş açılan listesinde de gösterilmelidir.

MRTK tarafından sağlanan kısıtlamaların tümü aşağıdaki özellikleri paylaşır:

El Türü

Kısıtlamanın tek elle mi, iki elle mi yoksa her iki tür işleme için mi kullanılacağını belirtir. Bu özellik bir bayrak olduğundan her iki seçenek de seçilebilir.

  • Tek elle: Kısıtlama, seçilirse tek elle işleme sırasında kullanılır.
  • İki elle: Kısıtlama, seçilirse iki elle işleme sırasında kullanılır.

Yakınlık Türü

Kısıtlamanın yakın, uzak veya her iki tür işleme için kullanılıp kullanılmayacağını belirtir. Bu özellik bir bayrak olduğundan her iki seçenek de seçilebilir.

  • Yakın: Kısıtlama, seçilirse yakın düzenleme sırasında kullanılır.
  • Uzak: Kısıtlama, seçilirse uzak düzenleme sırasında kullanılır.

FaceUserConstraint

Kısıtlama Yüz Tanıma Kullanıcısı

Bu kısıtlama bir nesneye eklendiğinde, nesnenin her zaman kullanıcıyla karşılaşması için döndürme sınırlandırılır. Bu, kayraklar veya paneller için yararlıdır. için FaceUserConstraint özellikleri şunlardır:

Yüzünüzü uzağa dönük olarak

Nesne, doğruysa kullanıcıdan uzaklaşır.

FixedDistanceConstraint

Kısıtlama Sabit uzaklıklar

Bu kısıtlama, manipüle edilen nesne ile işleme başlangıcında başka bir nesne dönüştürmesi arasındaki uzaklığı düzeltir. Bu, manipüle edilen nesneden baş dönüşümüne olan uzaklığı düzeltme gibi davranışlar için yararlıdır. için FixedDistanceConstraint özellikleri şunlardır:

Kısıtlama dönüşümü

Bu, manipüle edilen nesnenin sabit uzaklığı olacak diğer dönüşümdür. Varsayılan olarak kamera dönüşümü kullanılır.

FixedRotationToUserConstraint

Sabit Döndürme

Bu kısıtlama, kullanıcı ve işlenirken manipüle edilen nesne arasındaki göreli döndürmeyi düzeltir. Bu, manipüle edilen nesnenin kullanıcıya her zaman işlemenin başında olduğu gibi aynı yüzü göstermesinin sağlanmasından emin olduğundan, sayfa veya paneller için yararlıdır. herhangi FixedRotationToUserConstraint bir benzersiz özelliğe sahip değildir.

FixedRotationToWorldConstraint

Dünyaya dönüş düzeltildi

Bu kısıtlama, işlenirken manipüle edilen nesnenin genel döndürmesini düzeltir. Bu, herhangi bir döndürmenin işleme tarafından kabul edilmemesi gereken durumlarda yararlı olabilir. FixedRotationToWorldConstraint herhangi bir benzersiz özelliğe sahip değildir:

MaintainApparentSizeConstraint

Görünür boyutu koru

Bu kısıtlama bir nesneye eklendiğinde, nesne kullanıcıdan ne kadar uzakta olursa olsun, kullanıcıya aynı görünen boyutu korur (örneğin, kullanıcının görüş alanının aynı oranını alır). Bu, düzenleme sırasında bir sayfa veya metin panelinin okunabilir kalmasını sağlamak için kullanılabilir. MaintainApparentSizeConstraint herhangi bir benzersiz özelliğe sahip değildir:

MoveAxisConstraint

Kısıtlama Taşıma Ekseni

Bu kısıtlama, manipüle edilmiş bir nesnenin hangi eksenlere taşınabileceğini düzeltmek için kullanılabilir. Bu, nesneleri düzlemin yüzeyinde veya çizgi boyunca işlemek için yararlı olabilir. için MoveAxisConstraint özellikleri şunlardır:

Hareket kısıtlaması

Hangi eksenlerde hareket edilmesinin engellenmesini belirtir. Varsayılan olarak, bu eksenler yerel değil genel olur, ancak bu değer aşağıda değiştirilebilir. Bu özellik bir bayrak olduğundan, herhangi bir sayıda seçenek seçilebilir.

  • X Ekseni: Seçiliyse x ekseni boyunca hareket kısıtlanır.
  • Y Ekseni: Seçiliyse y ekseni boyunca hareket kısıtlanır.
  • Z Ekseni: Seçiliyse z ekseni boyunca hareket kısıtlanır.

Kısıtlama için yerel alan kullanma

True ise, manipüle edilen nesnenin yerel dönüştürme eksenlerini kısıtlar. Varsayılan olarak false.

RotationAxisConstraint

Kısıtlama Döndürme Ekseni

Bu kısıtlama, yönlendirilen bir nesnenin döndürülebileceği eksenleri düzeltmek için kullanılabilir. Bu, manipüle edilmiş bir nesneyi dik tutmak, ancak yine de y ekseni döndürmelerine izin vermek için yararlı olabilir, örneğin. için RotationAxisConstraint özellikleri şunlardır:

Döndürme kısıtlaması

Döndürmeyi engelleyecek eksenleri belirtir. Varsayılan olarak, bu eksenler yerel değil genel olur, ancak bu değer aşağıda değiştirilebilir. Bu özellik bir bayrak olduğundan, herhangi bir sayıda seçenek seçilebilir.

  • Y Ekseni: Y ekseniyle ilgili döndürme seçiliyse kısıtlanır.
  • Z Ekseni: Seçiliyse z ekseniyle ilgili döndürme kısıtlanır.
  • X Ekseni: Seçiliyse x ekseniyle ilgili döndürme kısıtlanır.

Kısıtlama için yerel alan kullanma

True ise, manipüle edilen nesnenin yerel dönüştürme eksenlerini kısıtlar. Varsayılan olarak false.

MinMaxScaleConstraint

Min Max Constatint

Bu kısıtlama, işlenen nesnenin ölçeği için minimum ve maksimum değerlerin ayarlanmasına olanak tanır. Bu, kullanıcıların bir nesneyi çok küçük veya çok büyük ölçeklendirmesini engellemek için kullanışlıdır. için MinMaxScaleConstraint özellikleri şunlardır:

En düşük ölçek

Düzenleme sırasında en düşük ölçek değeri.

Ölçek üst sınırı

Düzenleme sırasındaki en büyük ölçek değeri.

İlk duruma göre

True ise, yukarıdaki değerler nesnelerin ilk ölçeğine göre yorumlanır. Aksi takdirde bunlar mutlak ölçek değerleri olarak yorumlanır.