Chwytanie, trzymanie i rzucanie za pomocą funkcji Interakcji
Omówienie
Mesh Interactables to system służący do konfigurowania obiektów za pomocą skryptów aparatu Unity, które definiują interakcję z zachowaniem obiektu lub awatara w czasie wykonywania. Skrypty definiują właściwości obiektu, z którymi można korzystać przy użyciu funkcji interakcji XRI. Zestaw narzędzi mesh zawiera skrypty różnych typów obiektów, które można zdefiniować. Po uruchomieniu projektu konfiguruje wszystkie niezbędne prefab i ustawienia wymagane dla obiektów lub awatara do zachowania się zgodnie z definicją. Jeśli chcesz zobaczyć przybliżony podgląd wyglądu i działania obiektów, które można wchodzić w interakcje, gdy będą uruchamiane w aplikacji Mesh, pamiętaj, aby skonfigurować tryb odtwarzania z emulacją siatki. Należy pamiętać, że funkcja IK widoczna w aplikacji Mesh nie jest dostępna w trybie odtwarzania z emulacją siatki.
Składnik Konfiguracji z możliwością interakcji z usługą Mesh
Aby umożliwić interakcję z obiektem, należy dodać składnik Konfiguracja z możliwością interakcji z usługą Mesh.
W hierarchii wybierz obiekt .
W inspektorze kliknij przycisk Dodaj składnik, a następnie wybierz pozycję Konfiguracja z możliwością interakcji z siatką.
Składnik jest dodawany z domyślną właściwością Typ, w której interakcja jest ustawiona na Wartość Podstawowa. (Typy obiektów zostaną wyjaśnione w następnej sekcji).
Właściwości grupy obiektów, które zachowują się tak samo, można skonfigurować za pomocą nadrzędnego składnika Konfiguracji z możliwością interakcji z usługą Mesh. Właściwości zostaną zastosowane do wszystkich elementów podrzędnych ze sztywnymi elementami podrzędnymi w czasie wykonywania, automatycznie dodając składnik Treść interakcji siatki do każdego obiektu podrzędnego. Możesz ręcznie dodać treść współdziałającą z usługą Mesh, aby używać funkcji Mesh współdziałających ze skryptami wizualnymi, takich jak zdarzenia interakcji lub zmodyfikować manipulowalny element docelowy za pomocą skryptu wizualizacji.
Uwagi:
Treść z możliwością interakcji z siatką pozwoli każdemu interakcjom zachowywać się niezależnie.
Jeśli chcesz, aby można było włączyć fizykę, należy dodać do obiektu sztywny obiekt.
Uzyskiwanie pomocy
W składnikach Mesh Interactables Setup i Mesh Interactable Body można kliknąć przycisk "?", aby przejść do strony w dokumentacji usługi Mesh, która zawiera pomoc dotyczącą funkcji, z którą jest połączony przycisk.
Typy obiektów z możliwością interakcji
Istnieją cztery typy obiektów:
- Podstawowy
- Manipulable
- Wyposażenie
- Możliwość zgłaszania
Aby wybrać typ obiektu:
- W składniku Konfiguracja z możliwością interakcji z siatką kliknij listę rozwijaną Typ interakcji , a następnie wybierz jedną z czterech opcji.
Podstawowy
Jak wspomniano powyżej, jest to typ domyślny. Gdy użytkownik umieści kursor na obiekcie lub wybierze go, może wywołać wywołania zwrotne, a inne skrypty mogą reagować. Jeśli na przykład masz przycisk, którego chcesz użyć do włączenia innego obiektu, dodaj ten typ z możliwością interakcji do przycisku z wywołaniem zwrotnym OnSelected , aby włączyć ten inny obiekt. Przycisk będzie w pełni współdziałać, dodając ten typ i zderzak; nie trzeba robić nic innego.
Uwaga: Pozostałe trzy typy z możliwością interakcji — manipulowalne, wyposażone i throwable (wyjaśnione poniżej) mają te same atrybuty co typ podstawowy, ale z dodatkowymi funkcjami.
Dowiedz się więcej o ustawieniach podstawowego typu obiektu
Manipulable
Obiekt tego typu można przenieść z odległości; w szczególności manipulujesz jego transformacją w czasie wykonywania i przenosisz ją przez przestrzeń na końcu promienia interakcji. Dostępne są kontrolki skrótów do obracania lub tłumaczenia obiektu. Aby manipulować obiektami w aplikacji Mesh, możesz włączyć ustawienia IK dla strony awatara, aby obserwować obiekt. Obiekty manipulowalne nie wymagają sztywnego obiektu, ale należy je dodać, jeśli chcesz, aby obiekty miały możliwości fizyki.
Dowiedz się więcej o ustawieniach typu obiektu manipulable
Wyposażenie
Możesz chwycić obiekt tego typu. Mówiąc pod względem siatki, mówimy, że "wyposażysz" obiekt w rękę awatara. Aby wyposażyć obiekt na komputerze, kliknij obiekt lub naciśnij F , gdy obiekt jest zaznaczony. Aby wyposażyć obiekt w quest, naciśnij przycisk "Grip", gdy obiekt jest zaznaczony. Wyposażone obiekty zawierają ustawienia obiektów IK dla ramienia awatara, gdy obiekt jest wyposażony. Cele IK są przesunięciem od klatki piersiowej awatara; określa miejsce, w którym przechodzi ręka, gdy obiekt jest przechowywany lub aktywowany.
Dowiedz się więcej na temat ustawień typu obiektu, które można wyposażyć
Możliwość zgłaszania
Jak wskazuje nazwa, można chwycić i zgłosić obiekt tego typu. Po chwyceniu możesz wejść w tryb celowania, naciskając i trzymając lewy przycisk myszy. Pozwoli to twojemu awatarowi ramię podążać za celem myszy; aby zgłosić obiekt, zwolnij lewy przycisk myszy.
Dowiedz się więcej o ustawieniach typu obiektu zgłaszanego
Umożliwianie interakcji obiektów ze skryptami wizualnymi
Wszystkie składniki Interakcji mają właściwości interakcji i metody dostępne dla skryptów wizualnych, dzięki czemu masz nieograniczoną ilość sposobów, aby umożliwić im współpracę. Aby skorzystać z tego celu, użyj składnika Mesh Interactable Body wewnątrz wykresu skryptu z węzłem do dostępnej właściwości, takiej jak OnHovered lub OnSelected, podłączone do węzła OnStateChanged . Na przykład poniższy graf skryptu włączy cylindra, gdy przycisk jest naciśnięty i wyłącza go po zwolnieniu przycisku. Przycisk jest w pełni współdziałalny tylko przez dodanie skryptu i zderzaka; nie musisz robić nic innego.
Właściwości skryptów wizualizacji
Dla wszystkich treści, które można wchodzić w interakcje:
- IsHovered (tylko do odczytu) — czy lokalny awatar unosi się na obiekcie.
- IsSelected (tylko do odczytu) — czy żaden awatar wybiera obiekt. Podczas uruchamiania w meshBrowser będzie to sieć.
- IsSelectedLocally — określa, czy lokalny awatar wybiera obiekt.
- IsMine (tylko do odczytu) — prawda dla ostatniego awatara do wybrania lub wyposażenia obiektu.
W przypadku urządzeń:
- EquippedAt (tylko do odczytu) — gdzie ten obiekt jest wyposażony — Brak, DefaultHand, RightHand, LeftHand. Podczas uruchamiania w meshBrowser będzie to sieć.
- EquipTime (tylko do odczytu) — kiedy ten obiekt został wyposażony. Podczas uruchamiania w meshBrowser będzie to sieć.
- IsActivated (tylko do odczytu) — jeśli ten obiekt jest w stanie aktywowanym. Tylko prawidłowe dla obiektów, które nie można zgłaszać. Podczas uruchamiania w meshBrowser będzie to sieć.
- Celowanie (tylko do odczytu) — jeśli lokalny awatar znajduje się w stanie celowania przy zachowaniu tego obiektu. Tylko prawidłowe w przypadku rzutów.
- IsThrowing (tylko do odczytu) — jeśli lokalny awatar aktywnie zgłasza obiekt. Tylko prawidłowe w przypadku rzutów.
- IsEquipped (tylko do odczytu) (tylko do odczytu) — jeśli ten obiekt jest obecnie wyposażony przez awatar. Podczas uruchamiania w meshBrowser będzie to sieć.
- IsThrowable — jeśli ten obiekt jest zgłaszany.
- ThrowVelocity — szybkość rzutowania obiektu po jego zwolnieniu.
Dla manipulables zmodyfikować pozycję docelową:
- Pozycja docelowa (tylko do odczytu): pozycja docelowa treści w przypadku korzystania z trybu siły domyślnej we właściwościach z możliwością interakcji z siatką
- Rotacja docelowa (tylko do odczytu): Obrót docelowy treści w przypadku korzystania z trybu siły domyślnej we właściwościach z możliwością interakcji z siatką
- Ray Hit Position (tylko do odczytu): Położenie uderzenia rzutowania promienia interakcji na ciele
- Obrót uderzeń promienia (tylko do odczytu): obrót interakcjnika wokół kierunku promienia
- Zmodyfikowana pozycja docelowa (odczyt i zapis): służy do ustawiania nowej pozycji docelowej przez skrypt wizualizacji. Spowoduje to zastąpienie domyślnej pozycji docelowej. Najlepszym rozwiązaniem jest zastąpienie tej właściwości:
- Używanie opcji W stanie zmienionym położenia docelowego. W takim przypadku skrypt wizualizacji będzie uruchamiał przepływ tylko wtedy, gdy interakcja i nowa pozycja uległa zmianie.
- Używanie funkcji w późnej aktualizacji. Jeśli chcesz zmienić transformację docelową w każdej ramce, zrób to w późnej aktualizacji, aby nowa transformacja docelowa była dostępna natychmiast w następnej ramce.
- Zmodyfikowana rotacja docelowa (odczyt i zapis): służy do ustawiania nowej rotacji docelowej przez skrypt wizualizacji. Spowoduje to zastąpienie domyślnej pozycji docelowej.