Menedżer ograniczeń

Menedżer ograniczeń umożliwia zastosowanie zestawu składników ograniczeń do przekształcenia. Składniki TransformConstraint typu, które są dołączone do obiektu gry, można wziąć pod uwagę. Domyślnie menedżer ograniczeń automatycznie zbierze wszystkie składniki ograniczenia dołączone do obiektu gry i zastosuje je do przetworzonych przekształceń. Jednak użytkownicy mogą zdecydować się na ręczne skonfigurowanie listy zastosowanych ograniczeń i zezwolenie na zastosowanie tylko podzestawu dołączonych ograniczeń.

Obecnie następujące elementy środowiska użytkownika mrTK obsługują menedżera ograniczeń:

Właściwości i pola inspektora

Menedżer ograniczeń może być obsługiwany w dwóch trybach:

  • Wybór automatycznego ograniczenia
  • Ręczne zaznaczanie ograniczeń

Wybór automatycznego ograniczenia

Auto Selection

Domyślny tryb menedżera ograniczeń, wybór automatycznego ograniczenia, zapewnia listę wszystkich dołączonych składników ograniczeń, a także przyciski i przycisk dodawania ograniczenia.

Dodawanie ograniczenia do obiektu gry

Ten przycisk umożliwia dodanie składnika ograniczenia bezpośrednio z inspektora menedżera ograniczeń. Wszystkie typy ograniczeń w projekcie powinny być widoczne tutaj. Zobacz ograniczenia przekształcania, aby uzyskać więcej informacji.

Przejdź do składnika

Wszystkie ograniczenia znalezione w obiekcie można znaleźć tutaj za pomocą przycisku Przejdź do składnika. Ten przycisk spowoduje przewinięcie inspektora do wybranego składnika ograniczenia, aby można go było skonfigurować.

Ręczne zaznaczanie ograniczeń

Manual Selection

Jeśli menedżer ograniczeń jest ustawiony na tryb ręczny, tylko ograniczenia, które są połączone na liście ograniczeń, są przetwarzane i stosowane do przekształcenia. Na wyświetlonej liście będą wyświetlane tylko ograniczenia wybrane przez użytkownika, a także przyciski lub opcje usuwania lub dodawania wpisów. Podczas włączania trybu ręcznego po raz pierwszy Menedżer ograniczeń wypełni listę wszystkich dostępnych składników jako punkt wyjścia do wybierania dołączonych składników ograniczeń.

Usuń wpis

Spowoduje to usunięcie wpisu z ręcznie wybranej listy. Pamiętaj, że ta opcja nie spowoduje usunięcia składnika ograniczenia z obiektu gry. Składniki ograniczenia zawsze należy usuwać ręcznie, aby zapewnić, że nie zostaną przypadkowo złamane żadne inne składniki odwołujące się do tego składnika.

Dodawanie wpisu

Pozycja Dodaj spowoduje otwarcie listy rozwijanej przedstawiającej wszystkie dostępne składniki ograniczenia, które nie znajdują się jeszcze na liście ręcznej. Klikając dowolny wpis, który składnik zostanie dodany do ręcznego wyboru ograniczenia.

Dodawanie nowego ograniczenia

Ta opcja spowoduje dodanie składnika wybranego typu do obiektu gry i dodanie nowo utworzonego składnika ograniczenia do listy ograniczeń ręcznych.

Przekształć ograniczenia

Ograniczenia mogą służyć do ograniczenia manipulowania w jakiś sposób. Na przykład niektóre aplikacje mogą wymagać rotacji, ale również wymagają, aby obiekt pozostał w pozycji pionowej. W takim przypadku można dodać obiekt i użyć go do ograniczenia obrotu do obrotu RotationAxisConstraint osi y. MrTK zawiera wiele ograniczeń, z których wszystkie zostały opisane poniżej.

Istnieje również możliwość zdefiniowania nowych ograniczeń i użycia ich do utworzenia unikatowych zachowań manipulowania, które mogą być potrzebne w przypadku niektórych aplikacji. W tym celu utwórz skrypt, który dziedziczy z właściwości abstract i metody abstract oraz TransformConstraint ConstraintType implementuje ApplyConstraint tę metodę. Po dodaniu nowego ograniczenia do obiektu powinien on ograniczać manipulowanie w sposób, który został zdefiniowany. To nowe ograniczenie powinno być również wyświetlane w menedżerze ograniczeń autowybór lub dodaj wpis listy rozwijanej w trybie ręcznym.

Wszystkie ograniczenia udostępniane przez mrTK mają następujące właściwości:

Typ dłoni

Określa, czy ograniczenie jest używane do manipulowania jednym, dwoma lub dwoma rodzajami manipulacji. Ponieważ ta właściwość jest flagą, można wybrać obie opcje.

  • Jednorętowe: ograniczenie będzie używane podczas jednej ręcznej manipulacji, jeśli wybrano.
  • Dwie strony: ograniczenie będzie używane podczas dwóch ręcznego manipulowania, jeśli wybrano.

Typ zbliżeniowy

Określa, czy ograniczenie jest używane do niemal, daleko lub obu rodzajów manipulacji. Ponieważ ta właściwość jest flagą, można wybrać obie opcje.

  • Near: Ograniczenie będzie używane podczas najbliższego manipulowania, jeśli zostanie wybrane.
  • Far: Ograniczenie będzie używane podczas manipulowania daleko, jeśli wybrano.

FaceUserConstraint

Constraint Face User

Gdy to ograniczenie jest dołączone do obiektu, obrót będzie ograniczony, tak aby obiekt zawsze był twarzą użytkownika. Jest to przydatne w przypadku plansz lub paneli. Właściwości dla FaceUserConstraint są następujące:

Twarz na twarzy

Obiekt jest twarzą poza użytkownikiem, jeśli ma wartość true.

FixedDistanceConstraint

Constraint Fixed distances

To ograniczenie eliminuje odległość między obiektem zmanipulowanych i innym przekształceniem obiektu podczas uruchamiania manipulowania. Jest to przydatne w przypadku zachowań, takich jak naprawianie odległości od zmanipulowanych obiektów do przekształcenia głowy. Właściwości dla FixedDistanceConstraint są następujące:

Przekształcenie ograniczenia

Jest to druga transformacja, do których zmanipulowany obiekt będzie miał stałą odległość. Wartość domyślna to przekształcenie aparatu.

FixedRotationToUserConstraint

Fixed Rotation

To ograniczenie naprawia względną rotację między użytkownikiem a obiektem, na który manipulowany jest manipulowany. Jest to przydatne w przypadku plansz lub paneli, ponieważ gwarantuje, że manipulowany obiekt zawsze wyświetla użytkownikowi tę samą twarz, co na początku manipulacji. Nie FixedRotationToUserConstraint ma żadnych unikatowych właściwości.

FixedRotationToWorldConstraint

Fixed rotation to the world

To ograniczenie naprawia globalny obrót obiektu manipulowany podczas manipulowania nim. Może to być przydatne w przypadkach, gdy żaden obrót nie powinien być przytłaniany przez manipulację. Nie FixedRotationToWorldConstraint ma żadnych unikatowych właściwości:

MaintainApparentSizeConstraint

Maintain Apparent size

Gdy to ograniczenie jest dołączone do obiektu, niezależnie od tego, jak daleko obiekt znajduje się od użytkownika, utrzymuje ten sam widoczny rozmiar dla użytkownika (tj. zajmie to tę samą część pola widzenia użytkownika). Dzięki temu można zagwarantować, że tablica lub panel tekstowy będą nadal czytelne podczas manipulowania nimi. Nie MaintainApparentSizeConstraint ma żadnych unikatowych właściwości:

MoveAxisConstraint

Constraint Move Axis

Tego ograniczenia można użyć do naprawienia osi, na których można przenieść manipulowany obiekt. Może to być przydatne do manipulowania obiektami na powierzchni płaszczyzny lub wzdłuż linii. Właściwości dla MoveAxisConstraint są następujące:

Ograniczenie dotyczące ruchu

Określa osie, na których ma być uniemożliwiane poruszanie się. Domyślnie te osie będą globalne, a nie lokalne, ale można je zmienić poniżej. Ponieważ ta właściwość jest flagą, można wybrać dowolną liczbę opcji.

  • Oś X: jeśli ta opcja jest zaznaczona, ruch wzdłuż osi X jest ograniczony.
  • Oś Y: jeśli ta opcja jest zaznaczona, ruch wzdłuż osi y jest ograniczony.
  • Oś Z: jeśli ta opcja jest zaznaczona, ruch wzdłuż osi Z jest ograniczony.

Używanie miejsca lokalnego dla ograniczenia

Ograniczy względne osie przekształceń lokalnych obiektu manipulowanych, jeśli ma wartość true. Wartość false jest domyślnie fałszem.

RotationAxisConstraint

Constraint Rotation Axis

Tego ograniczenia można użyć do naprawienia osi, na których można obracać manipulowany obiekt. Może to być przydatne do utrzymania zmanipulowanych obiektów w górę, ale nadal umożliwia na przykład obracanie osi y. Właściwości dla RotationAxisConstraint są następujące:

Ograniczenie obrotu

Określa osie, których nie można obracać. Domyślnie te osie będą globalne, a nie lokalne, ale można je zmienić poniżej. Ponieważ ta właściwość jest flagą, można wybrać dowolną liczbę opcji.

  • Oś Y: obrót wokół osi y jest ograniczony, jeśli wybrano.
  • Oś Z: obrót osi Z jest ograniczony, jeśli wybrano.
  • Oś X: obrót osi X jest ograniczony, jeśli wybrano.

Używanie miejsca lokalnego dla ograniczenia

Ograniczy względne osie przekształcania lokalnego obiektu manipulowanych, jeśli ma wartość true. Wartość false jest domyślnie fałszem.

MinMaxScaleConstraint

Min Max Constatint

To ograniczenie umożliwia ustawienie wartości minimalnych i maksymalnych dla skali obiektu, na który manipulowany jest manipulowany obiekt. Jest to przydatne w przypadku uniemożliwiania użytkownikom skalowania obiektu za małego lub zbyt dużego. Właściwości dla MinMaxScaleConstraint są następujące:

Skalowanie minimalne

Minimalna wartość skalowania podczas manipulowania.

Skalowanie maksymalne

Maksymalna wartość skalowania podczas manipulowania.

Względem stanu początkowego

Jeśli wartość true, powyższe wartości będą interpretowane jako względne względem początkowej skali obiektów. W przeciwnym razie zostaną one zinterpretowane jako bezwzględne wartości skali.