Menedżer ograniczeń — MRTK2
Menedżer ograniczeń umożliwia zastosowanie zestawu składników ograniczeń do przekształcenia. Można wziąć pod uwagę składniki typu TransformConstraint
dołączone do obiektu gry.
Domyślnie menedżer ograniczeń automatycznie zbiera 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 zestawu narzędzi MRTK obsługują menedżera ograniczeń:
Właściwości i pola inspektora
Menedżer ograniczeń można obsługiwać w dwóch trybach:
- Wybór ograniczeń automatycznych
- Wybór ograniczeń ręcznych
Wybór ograniczeń automatycznych
Domyślny tryb menedżera ograniczeń, wybór ograniczeń automatycznych będzie zawierać listę wszystkich dołączonych składników ograniczeń, a także przejść do przycisków 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. Aby uzyskać więcej informacji, zobacz ograniczenia przekształcania .
Przejdź do składnika
Wszystkie ograniczenia znalezione w obiekcie wil są wymienione tutaj za pomocą przycisku Przejdź do składnika . Ten przycisk spowoduje przewinięcie inspektora do wybranego składnika ograniczenia, aby można było je skonfigurować.
Wybór ograniczeń ręcznych
Jeśli menedżer ograniczeń jest ustawiony na tryb ręczny, tylko ograniczenia połączone na liście ograniczeń są przetwarzane i stosowane do przekształcenia. Wyświetlona lista będzie zawierać tylko wybrane ograniczenia użytkownika, a także przejść do przycisków lub opcji 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 punktu wyjścia do wybierania dołączonych składników ograniczeń.
Usuń wpis
Spowoduje to usunięcie wpisu z wybranej ręcznie listy. Należy pamiętać, że ta opcja nie spowoduje usunięcia składnika ograniczenia z obiektu gry. Składniki ograniczeń należy zawsze usuwać ręcznie, aby upewnić się, że żaden inny składnik odwołujący się do tego składnika nie jest przypadkowo przerywany.
Dodaj wpis
Dodanie wpisu spowoduje otwarcie listy rozwijanej zawierającej wszystkie dostępne składniki ograniczenia, które nie znajdują się jeszcze na liście ręcznej. Klikając dowolne wpisy, które składnik zostaną dodane do zaznaczenia ręcznego 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łcanie ograniczeń
Ograniczenia mogą służyć do ograniczania manipulacji w jakiś sposób. Na przykład niektóre aplikacje mogą wymagać rotacji, ale także wymagają, aby obiekt pozostał w poziomie. W takim przypadku RotationAxisConstraint
można dodać obiekt i użyć go do ograniczenia obrotu do obrotu osi y. Zestaw narzędzi MRTK zapewnia szereg ograniczeń, z których wszystkie zostały opisane poniżej.
Istnieje również możliwość zdefiniowania nowych ograniczeń i użycia ich do tworzenia unikatowych zachowań manipulowania, które mogą być potrzebne dla niektórych aplikacji. W tym celu utwórz skrypt dziedziczony z TransformConstraint
i implementujący właściwość abstrakcyjną ConstraintType
i metodę abstrakcyjną ApplyConstraint
. Po dodaniu nowego ograniczenia do obiektu powinno to ograniczać manipulowanie w sposób, w jaki został zdefiniowany. To nowe ograniczenie powinno również być wyświetlane w automatycznym zaznaczeniu menedżera ograniczeń lub dodaniu listy rozwijanej wpisu w trybie ręcznym.
Wszystkie ograniczenia udostępniane przez zestaw narzędzi MRTK mają następujące właściwości:
Typ dłoni
Określa, czy ograniczenie jest używane do jednej ręki, dwóch rękojmi lub obu rodzajów manipulacji. Ponieważ ta właściwość jest flagą, można wybrać obie opcje.
- Jedna ręka: Ograniczenie będzie używane podczas jednej manipulacji ręką, jeśli zostanie wybrane.
- Dwa wręczone: Ograniczenie będzie używane podczas dwóch wręczanych manipulacji w przypadku wybrania.
Typ zbliżenia
Określa, czy ograniczenie jest używane do manipulowania w pobliżu, daleko lub w obu rodzajach manipulacji. Ponieważ ta właściwość jest flagą, można wybrać obie opcje.
- Blisko: ograniczenie będzie używane podczas bliskiej manipulacji, jeśli zostanie wybrane.
- Daleko: Ograniczenie będzie używane podczas dalekiej manipulacji, jeśli wybrano.
FaceUserConstraint
Po dołączeniu tego ograniczenia do obiektu rotacja będzie ograniczona, dzięki czemu obiekt będzie zawsze musiał zmierzyć się z użytkownikiem. Jest to przydatne w przypadku slates lub paneli. Właściwości dla FaceUserConstraint
programu są następujące:
Twarz z dala
Obiekt stoi z dala od użytkownika, jeśli ma wartość true.
FixedDistanceConstraint
To ograniczenie naprawia odległość między manipulowanym obiektem a innym przekształceniem obiektu podczas manipulowania rozpoczęciem. Jest to przydatne w przypadku zachowania, takiego jak naprawianie odległości od manipulowanego obiektu do przekształcenia głowy. Właściwości dla FixedDistanceConstraint
programu są następujące:
Przekształcanie ograniczeń
Jest to druga transformacja, do którego manipulowany obiekt będzie miał stałą odległość. Domyślnie zmienia się aparat.
FixedRotationToUserConstraint
To ograniczenie naprawia względną rotację między użytkownikiem a manipulowanym obiektem podczas manipulowania nim. Jest to przydatne w przypadku slates lub paneli, ponieważ gwarantuje, że manipulowany obiekt zawsze pokazuje tę samą twarz użytkownikowi, jak to miało się na początku manipulacji. Element FixedRotationToUserConstraint
nie ma żadnych unikatowych właściwości.
FixedRotationToWorldConstraint
To ograniczenie naprawia globalną rotację manipulowanego obiektu podczas manipulowania nim. Może to być przydatne w przypadkach, gdy żadna rotacja nie powinna być przekazywana przez manipulowanie. Element FixedRotationToWorldConstraint
nie ma żadnych unikatowych właściwości:
MaintainApparentSizeConstraint
Gdy to ograniczenie jest dołączone do obiektu, niezależnie od tego, jak daleko obiekt pochodzi od użytkownika, zachowa ten sam widoczny rozmiar dla użytkownika (tj. zajmie to ten sam odsetek pola widoku użytkownika). Może to służyć do zapewnienia, że tablica lub panel tekstowy pozostaje czytelny podczas manipulowania. Element MaintainApparentSizeConstraint
nie ma żadnych unikatowych właściwości:
MoveAxisConstraint
To ograniczenie może służyć do naprawy osi, w 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
programu są następujące:
Ograniczenie ruchu
Określa osie, które mają zapobiegać ruchowi. 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: Ruch wzdłuż osi x jest ograniczony w przypadku wybrania.
- Oś Y: ruch wzdłuż osi y jest ograniczony w przypadku wybrania.
- Oś Z: Ruch wzdłuż osi z jest ograniczony w przypadku wybrania.
Używanie miejsca lokalnego do ograniczenia
Będzie ograniczać w stosunku do lokalnych osi transformacji obiektu, jeśli jest to prawda. Domyślnie fałsz.
RotationAxisConstraint
To ograniczenie może służyć do naprawiania osi, które można obracać za pomocą manipulowanego obiektu. Może to być przydatne do utrzymania manipulowanego obiektu w pozycji pionowej, ale nadal zezwala na rotacje osi y, na przykład. Właściwości dla RotationAxisConstraint
programu są następujące:
Ograniczenie rotacji
Określa osie, które mają zapobiegać rotacji. 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 osi y jest ograniczony w przypadku wybrania.
- Oś Z: Rotacja osi z jest ograniczona w przypadku wybrania.
- Oś X: Rotacja osi x jest ograniczona w przypadku wybrania.
Używanie miejsca lokalnego do ograniczenia
Będzie ograniczać w stosunku do lokalnych osi transformacji obiektu, jeśli jest to prawda. Domyślnie fałsz.
MinMaxScaleConstraint
To ograniczenie umożliwia ustawienie minimalnych i maksymalnych wartości dla skali manipulowanego obiektu. Jest to przydatne w przypadku uniemożliwiania użytkownikom skalowania obiektu za mały lub zbyt duży. Właściwości dla MinMaxScaleConstraint
programu są następujące:
Minimalna skala
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 zostaną zinterpretowane jako względem początkowej skali obiektów. W przeciwnym razie zostaną one zinterpretowane jako wartości skali bezwzględnej.