DragDetector
*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.
Instancja DragDetector ułatwia i zachęca do interakcji z obiektami 3D w doświadczeniu, takimi jak otwieranie drzwi i szuflad, przesuwanie części wokół i wiele więcej. Key cechy to:
Umieść DragDetector pod dowolnym BasePart lub Model, aby uczynić go przeciągniętym za pośrednictwem wszystkich wejść (mysz, dotykanie, gamepad i VR), wszystko bez pojedynczej linii kodu.
Wybierz z kilku opcji DragStyle, zdefiniuj, jak reaguje obiekt na ruch poprzez ResponseStyle i opcjonalnie zastosuj ograniczenia lub ograniczenia ruchu.
Skrypty mogą reagować na manipulację przeciąganymi obiektami, aby zwiększyć poziom światła w pokoju lub podjąć logiczne decyzje, takie jak dostosowanie poziomu światła w pokoju w zależności od przełącznika świetlnego.
Gracze mogą manipulować zaczepionymi częściami lub modelami, a zostaną dokładnie tam, gdzie je umieścili po uwolnieniu.
Class.DragDetector|DragDetectors pracy w Studio tak długo, jak jesteś nie używając narzędzi Wybierz , 0>Przenieś0>, 3>Skala3> lub DragDetectors6>, aby ułatwić testowanie i dostosowywanie przeciąganych obiektów podczas edytowania.
Zobacz przewodnik 3D Drag Detectors dla szczegółów i przykładów użycia.
Podsumowanie
Właściwości
Ustawia ikonę kursora do wyświetlenia, gdy myszka jest aktywna nad rodzicem tego DragDetector .
Czy siła ograniczenia jest stosowana do centrum masy obiektu.
Główny wymiar ruchu, wyrażony w odniesieniu do ramy odniesienia.
Datatype.CFrame pivotu, w zależności od wskaźnika przeciągania ReferenceInstance .
Paradigma używana do generowania proponowanych ruchów.
Czy DragDetector reaguje na wejście użytkownika.
Podczas wpisu na gamepad modyfikator Enum.KeyCode dla trybu ruchu wtórnego.
Podczas wpisu klawiaturowego modyfikator Enum.KeyCode dla trybu ruchu drugorzędnego.
Wraz z MinDragAngle , zapobiega próbom wykrywacza przesuwania generowania ruchu.
Wraz z MinDragTranslation , zapobiega próbom wykrywaczy ruchu.
Maksymalna siła zastosowana, aby osiągnąć cel obiektu.
Maksymalny moment obrotowy zastosowany dla obiektu, aby osiągnąć jego cel.
Wraz z MaxDragAngle , zapobiega próbom wykrywaczy ruchu.
Wraz z MaxDragTranslation , zapobiega próbom wykrywaczy ruchu.
Określa YXZ rotację osi ruchu w stosunku do referencyjnej ramy.
Kontroluje poziom uprawnień, z którego gracze mogą wchodzić w interakcję z DragDetector.
Instancja, która ma CFrame za referencyjną ramę dla wykrywacza przeciągnięcia.
Paradigma używana do przesuwania lub nie przesuwania obiektów zainteresowanych przez wykrywacz przeciągnięcia.
Wyższe wartości sprawiają, że obiekt szybciej osiągnie swój cel.
Czy użytkownik wpisuje na DragDetector replikat na serwer lub pozostaje lokalnie dla określonego klienta.
Druga osi ruchu.
Jeśli DragStyle jest Enum.DragDetectorDragStyle.RotateTrackball , to mnożnik dla dodania radialnej rotacji rzucania jako wkładu do całkowitego.
Jeśli DragStyle jest Enum.DragDetectorDragStyle.RotateTrackball , to mnożnik do dodawania do ról rotacji do całkowitego.
Podczas wpisu VR modyfikator Enum.KeyCode dla trybu ruchu wtórnego.
Axis wyrażony w przestrzeni świata.
Class.DragDetector.SecondaryAxis|SecondaryAxis wyrażony w przestrzeni świata.
Ustawia ikonę kursora do wyświetlenia, gdy myszka jest położona nad ClickDetector lub DragDetector .
Maksymalna odległość między postacią a ClickDetector lub DragDetector dla gracza, aby mógł z nim interagować.
Metody
Dodaje funkcję do modyfikacji lub ograniczenia proponowanego ruchu.
Zwraca referencję CFrame w której wyrażono ruch.
Można go wywołać z skryptu, aby ponownie uruchomić przeciąganie używając nowych parametrów.
Przekazuje funkcję do użycia, jeśli i tylko jeśli DragStyle jest ustawiony na Enum.DragDetectorDragStyle.Scriptable.
Przekazuje funkcję do użycia, jeśli i tylko jeśli PermissionPolicy jest ustawiony na Enum.DragDetectorPermissionPolicy.Scriptable.
Zdarzenia
- DragContinue(playerWhoDragged : Player,cursorRay : Ray,viewFrame : CFrame,vrInputFrame : OptionalCoordinateFrame,isModeSwitchKeyDown : bool):RBXScriptSignal
Wyst?puje, gdy u?ytywaczka przedmiotu nadal przeciąga po nim po DragStart została uruchomiona.
Wystąpi, gdy użytkownik przestanie przeciągać obiekt.
Wystąpi, gdy użytkownik zacznie przeciągać obiekt.
Występuje, gdy gracz interaguje z rodzicem ClickDetector lub DragDetector.
Wystąpi, gdy ClickDetector lub DragDetector jest położony na pasku przez gracza.
Wystąpi, gdy kursor gracza położony jest poza ClickDetector lub DragDetector.
Wystąpi, gdy gracz right klikuje swojego kursora na ClickDetector lub DragDetector.
Właściwości
ActivatedCursorIcon
Ustawia ikonę kursora do wyświetlenia, gdy myszka jest aktywna nad rodzicem tego DragDetector . Jeśli ta właściwość pozostanie pusta, wykryjnik użyje domyślnej ikona.
Aby zmienić aktywowany ikona, ustaw ten właściwość na ID zasobu obrazu, którego chcesz użyć.
ApplyAtCenterOfMass
Gdy fałszywy (domyślny), siła ograniczenia jest zastosowany w momencie, w którym użytkownik kliknie. Gdy prawdziwy, siła jest zastosowana w centrum masy obiektu. Tylko istotne, jeśli ResponseStyle jest Enum.DragDetectorResponseStyle.Physical i obiekt rodzic nie jest przyczepiony.
Axis
Główną osią ruchu, wyrażoną w odniesieniu do referencyjnej ramy, dla DragStyle z Enum.DragDetectorDragStyle.TranslateLine , kier
DragFrame
Jeśli ReferenceInstance jest ustawiać, CFrame pivot w odniesieniu do ramy odniesienia; w przeciwnym wypadku CFrame pivot w odniesieniu do ramy odniesienia w początkowej fazie przeciągania.
DragStyle
Paradigma używana do generowania proponowanego ruchu, z danej serii promieni kursołu. Zobacz Enum.DragDetectorDragStyle dla opcji.
GamepadModeSwitchKeyCode
Podczas wpisywania gamepad, Enum.KeyCode dla ustawienia trybu ruchu drugorzędnego. Ma zastosowanie tylko w przypadku, gdy wykrywacz przeciwdziałania DragStyle ma tryb ruchu pierwotnego i wtórnego.
KeyboardModeSwitchKeyCode
Podczas wpisywania klawiatury, Enum.KeyCode dla włączania trybu ruchu drugorzędnego. Ma to zastosowanie tylko w przypadku, gdy wykrywacz przeciwkości ruchu ma tryb ruchu głównego i tryb ruchu drugorzędnego.
MaxDragAngle
Jeśli jest to większe niż MinDragAngle, tłumaczenie zostanie ucięte w tej zasięgu.
To nie jest ograniczeniem; po prostu zapobiega próbom wykrywaczy ruchu w celu pozostania w ramach. Zobacz AddConstraintFunction(), aby dodać niestandardowe ograniczenie do wykrywacza.
Tylko istotne, jeśli DragStyle jest Enum.DragDetectorDragStyle.RotateAxis .
MaxDragTranslation
W każdym wymiarze, jeśli jest to większe niż MinDragTranslation , tłumaczenie zostanie ucięte w tej gamie.
To nie jest ograniczeniem; po prostu zapobiega próbom wykrywaczy ruchu w celu pozostania w ramach. Zobacz AddConstraintFunction(), aby dodać niestandardowe ograniczenie do wykrywacza.
MaxForce
Maksymalna siła zastosowana dla obiektu, aby osiągnąć jego cel. Skorzystać tylko jeśli ResponseStyle jest Enum.DragDetectorResponseStyle.Physical i obiekt rodzic nie jest związany.
MaxTorque
Maksymalny moment obrotowy zastosowany dla obiektu, aby osiągnąć jego cel. Skorzystać tylko wtedy, gdy ResponseStyle jest Enum.DragDetectorResponseStyle.Physical i obiekt rodzic nie jest związany.
MinDragAngle
Jeśli jest to mniej niż MaxDragAngle , tłumaczenie zostanie sklejone w tej zasięgu.
To nie jest ograniczeniem; po prostu zapobiega próbom wykrywaczy ruchu w celu pozostania w ramach. Zobacz AddConstraintFunction(), aby dodać niestandardowe ograniczenie do wykrywacza.
Tylko istotne, jeśli DragStyle jest Enum.DragDetectorDragStyle.RotateAxis .
MinDragTranslation
W każdym wymiarze, jeśli jest to mniejsze niż MaxDragTranslation , tłumaczenie zostanie ucięte w tej gamie.
To nie jest ograniczeniem; po prostu zapobiega próbom wykrywaczy ruchu w celu pozostania w ramach. Zobacz AddConstraintFunction(), aby dodać niestandardowe ograniczenie do wykrywacza.
Orientation
Określa rotację YXZ w przestrzeniach ruchu w stosunku do referencji (nie zmienia orientacji samej referencji). Linearne tłumienie i obroty osiowe będą na tej osi Y i planary tłumienie w przestrzeniach X . zmiany tej wartości automatycznie aktualizuje 1> Class
PermissionPolicy
Kontroluje poziom uprawnień, z którego gracze mogą wchodzić w interakcję z DragDetector. Domyślny jest Enum.DragDetectorPermissionPolicy.Everybody.
ReferenceInstance
Instancja, która ma CFrame na ramę odniesienia dla wykrywacza przeciągnięcia. DragFrame jest wyrażony w odniesieniu do tej CFrame, która może być odzyskana za pomocą metody 1> Class.DragDetector:GetReferenceFrame()|Get Reference Frame1>.
Jeśli ta instancia jest PVInstance , to rama referencyjna będzie jej pivot; jeśli Attachment , to świat CFrame będzie oparty na pivotu detekтора przeciągnięcia 2> Class.BasePart
ResponseStyle
Gdy proponowany ruch zostanie obliczony i potencjalnie ograniczony, to jest to paradigma używana do przesuwania lub nie przesuwania obiektów zainteresowanych przez DragDetector. Zobacz Enum.DragDetectorResponseStyle dla opcji.
Responsiveness
Wyższe wartości sprawiają, że obiekt szybciej osiągnie cel. Tylko istotne, jeśli ResponseStyle jest Enum.DragDetectorResponseStyle.Physical i obiekt rodziczy jest niezakorzeniony.
RunLocally
Jeśli fałszywy (domyślny), klient wysyłuje zeskanowane sygnały ( DragStart , DragContinue , DragEnd ) na serwer, który przetwarza sygnały kursoра i dokonuje zmian w modelu danych, a następnie
Jeśli tak, to kliент przetwarza te sygnały sam i nie replikuje ich na serwer. Kliент LocalScripts może być używany do odpowiadania na te wydarzenia i RemoteEvents może być używany do wysyłania dowolnych zmian, które należy skopiować na serwer.
SecondaryAxis
Drugowy osi ruchu. Odnosi się do orientacji używając tego samego paradygmatu co Attachments .
TrackballRadialPullFactor
Gdy kurser jest poza trackball, DragDetector może zastosować rotację kulową, która zmienia kulę tak, jakby próbowała się zrolować w kierunku kursera. Ta właściwość jest mnożnikiem 0 do 1, aby dodać tę rotację jako wkład do całkowego. Tylko istotne, jeśli
TrackballRollFactor
Gdy kurser jest poza trackball, DragDetector może zastosować rotację kulową, która zmienia kulę tak, jakby była montowana na winylowej płycie obliczającej widok widownika. Ta właściwość jest mnożnikiem 0 do 1 dla dodania tej rotacji kulowej do całkowitego. Tylko istotne, je
VRSwitchKeyCode
Podczas wpisu VR, Enum.KeyCode dla ustawienia trybu ruchu drugorzędnego. Ma to zastosowanie tylko w przypadku, gdy wykrywacz przeciwdziałania DragStyle ma tryb ruchu pierwotnego i wtórnego.
WorldAxis
Wyrażony w przestrzeni świata Axis odnosi się do orientacji używając tej samej paradigmy co Attachments.
WorldSecondaryAxis
Wyrażony w przestrzeni świata SecondaryAxis odnosi się do orientacji używając tej samej paradigmy co Attachments.
Metody
AddConstraintFunction
Dodaje funkcję do modyfikacji lub ograniczenia proponowanej animacji. Funkcja odbiera wejście CFrame z proponowanej animacji i zwraca Datatype.CFrame z modyfikowanej lub niemodyfikowanej animacji. Zarównaj obie funkcje, które będą
Aby usunąć dodaną funkcję ograniczenia, wezwij Disconnect() na powracającym obiekcie połączenia.
Parametry
Zamówienie priorytetu dla funkcji dodanych za pomocą tego metody. Wyższe wartości mają pierwszeństwo nad niższymi wartościami.
Zwroty
Użyj tego obiektu połączenia, aby usunąć funkcję ograniczenia.
GetReferenceFrame
Zwraca referencję CFrame w której wyrażono ruch; zobacz właściwość ReferenceInstance po więcej szczegółów.
Zwroty
RestartDrag
Można to zrobić z kodu, aby ponownie uruchomić przeciąganie używając nowych parametrów, jeśli parametry takie jak DragStyle , Axis lub SecondaryAxis zmieniają.
Zwroty
SetDragStyleFunction
Przekazuje funkcję do użycia, jeśli i tylko jeśli DragStyle jest ustawiony na Enum.DragDetectorDragStyle.Scriptable . Funkcja ta jest wzywana w odpow
Jeśli funkcja zwraca nil , obiekt nie zostanie przesunięty. To jest użyteczne, jeśli skrypt jeszcze nie zebrał wszystkich informacji, które są niezbędne, aby dać poprawną odpowiedź, lub w przypadkach tymczasowych, w których chcesz, aby obiekt pozostał gdzie jest.
Parametry
Funkcja do monitorowania DragContinue sygnałów. Ta funkcja otrzymuje promień kursora świata sygnału i wyświetla CFrame zawierający pożądane położenie i orientację pivot w przestrzeni świata. Jeśli funkcja zwraca nil, obiekt nie zostanie przesunięty.
Zwroty
SetPermissionPolicyFunction
local dragDetector = script.Parent.DragDetector
dragDetector.PermissionPolicy = Enum.DragDetectorPermissionPolicy.Scriptable
dragDetector:SetPermissionPolicyFunction(function(player, part)
if player and player:GetAttribute("IsInTurn") then
return true
elseif part and not part:GetAttribute("IsDraggable") then
return false
else
return true
end
end)
Parametry
Zwroty
Zdarzenia
DragContinue
Wyst?puje, gdy u?ytywaczka przedmiotu nadal przeciąga po nim po DragStart została uruchomiona.
Parametry
Class.Player, który inicjował przeciągnięcie poprzez DragStart i teraz kontynuuje przeciągnięcie.
Jeśli używać urządzenieVR, CFrame ręki trzymającej kursor/wskaźnik/sterownik.
Jeśli wykrywacz przeciągnięcia ma zarówno tryb ruchu głównego, jak i tryb ruchu wtórnego, ten parametr wskazuje, czy użytkownik nacisnął klawisz modyfikatora zdefiniowany poprzez Class.DragDetector.KeyboardModeSwitchKeyCode|KeyboardMode
DragEnd
Wystąpi, gdy użytkownik przestanie przeciągać obiekt.
Parametry
DragStart
Wystąpi, gdy użytkownik zacznie przeciągać obiekt.
Parametry
Rama trafienia kursora raycast, która inicjowała przeciągnięcie.
Część, która została uderzona przez promień rzutu, który zainicjował przeciągnięcie.
Jeśli używać urządzenieVR, CFrame ręki trzymającej kursor/wskaźnik/sterownik.
Jeśli wykrywacz przeciągnięcia ma zarówno tryb ruchu głównego, jak i tryb ruchu wtórnego, ten parametr wskazuje, czy użytkownik nacisnął klawisz modyfikatora zdefiniowany poprzez Class.DragDetector.KeyboardModeSwitchKeyCode|KeyboardMode