Możesz zdefiniować animację wydarzeń znaczników w całym okresie czasu i użyć GetMarkerReachedSignal() aby wykryć te znaczniki, gdy animacja biega.
Pokazywanie wydarzeń
Domyślnie nie jest widoczna ścieżka wydarzeń. Aby pokazać ścieżkę wydarzeń:
Przejdź do prawego kalendarza, a następnie kliknij na ikę ikona. Wyświetli się menu.
Wybierz Pokaż wydarzenia animacji . Otwiera to Animacje wydarzenia bar bezpośrednio pod wtyczkami mediów i sterowania elementy sterujące.
Możesz teraz tworzyć, wykrywać i duplikować wydarzenia.
Tworzenie wydarzeń
Markery wydarzeń są wizualnymi wskazówkami, w których pojawia się wydarzenie animacji. Po utworzeniu znaku wydarzenia możesz go przesunąć do dowolnej pozycji na pasku czasu.
Aby utworzyć nowy identyfikator wydarzenia:
Przejdź do linii czasowej, a następnie kliknij i przeciągnij ścieraczka do pozycji ramy, w której powinno się występowaćwydarzenie.
Przejdź do toru wydarzeń, a następnie kliknij przycisk Edytuj wydarzenia animacji. Wyświetlana jest Edytuj wydarzenia animacji okienko dialogowe.
W dialogu Edytuj wydarzenia animacji, kliknij + Dodaj wydarzenie, a następnie wpisz imię wydarzenia.
(Opcjonalne) W polu Parametr wpisz stronę parametru dla wydarzenia.
Kliknij przycisk Zapisz. W oknie wydarzeń w pozycji klatki ramowej wyświetla się nowy znak zapisu.
Wykrywanie wydarzeń
Aby wykryć wydarzenia animacji w LocalScript , połącz funkcję z funkcją GetMarkerReachedSignal() funkcji AnimationTrack . Na przykład:
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
-- Utwórz nową instancja"Animacji"
local walkAnim = Instance.new("Animation")
-- Ustaw "AnimationId" na odpowiadającym ID animacji
walkAnim.AnimationId = "rbxassetid://5432167890"
-- Załaduj animację na animatorze
local walkAnimTrack = animator:LoadAnimation(walkAnim)
-- Połącz wydarzenie "GetMarkerReachedSignal" z określonym, nazwanym kluczowym ramieniem
walkAnimTrack:GetMarkerReachedSignal("FootStep"):Connect(function(paramString)
print(paramString)
end)
Duplikowanie wydarzeń
Gdy tworzysz wydarzenia, stają się one dostępne do użycia przez całą animacja, nie tylko w pozycji klatki, w której pierwotnie je stworzyłeś. Na instancjamożesz utworzyć znacznik wydarzenia "FootStep" na pozycji, w której kiedykolwiek dotknie się noga postaci, a następnie użyć tego samego znacznika wydarzenia, gdy kiedykolwiek dotknie się noga postaci.
Aby duplikować wydarzenie:
Przejdź do linii czasowej, a następnie kliknij znacznik wydarzenia w szklepie wydarzeń.
Naciśnij CtrlC ( ⌘C na Mac).
Kliknij i przeciągnij ścieraczka do pozycji ramy, w której chcesz duplikować wydarzenie.
Naciśnij CtrlV ( ⌘V na Mac).
Jeśli oryginalne wydarzenie używa parametru, ale duplikowane wydarzenie używa zmodyfikowanego parametru, wykonaj następujące kroki:
- Kliknij prawym przyciskiem na duplikowanym znaczniku wydarzenia. Wyświetla się menu pop-up.
- Wybierz Edytuj Animację Event. The Edytuj Animację Event dialog displays.
- Zmierz swoje zmiany, a następnie kliknij przycisk Zapisz .