KeyframeMarker
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
Un Marker Keyframe è un'istanza pensata per rappresentare un evento che verrà eventualmente attivato quando un Keyframe sarà colpito.
Uso di un marcatore keyframe
I segnaposto Keyframe devono sempre essere parented a Keyframe tramite impostazione diretta del padre o utilizzando la funzione Keyframe:AddMarker() di Keyframe. I segnaposto Keyframe possono anche essere rimossi direttamente o utilizzando la funzione Keyframe:RemoveMarker() , e polled to check which segnaposto sono attaccati a un segnaposto specifico Keyframe utilizzando Class.
Quando viene rilevato un Keyframe come un'animazione in esecuzione, verrà visualizzato un evento per ciascun Keyframe Marker che è parented al Keyframe. Questi eventi sono identificabili dal nome del Keyframe Marker. Puoi recuperare e ascoltare questi eventi usando la funzione AnimationTrack.GetKeyframeMarkerReached. In opzione, puoi impostare la
Eriereda la proprietà Keyframe.Name da Class.Instance e si comporta identificativamente. I nomi vengono utilizzati per l'identificazione e non devono essere unici. Quando più KeyFrameMarkers con lo stesso nome vengono attaccati a un KeyFrame, gli eventi come quello riportato da Instance vengono attivati per ogni marchio.
Vedi anche:
- Animation , contiene un riferimento ai dati di animazione richiesti per giocare animazioni personalizzate sui personaggi o altri modelli usando il sistema di animazione Roblox
Campioni di codice
local keyframe = Instance.new("Keyframe")
keyframe.Parent = workspace
local marker1 = Instance.new("KeyframeMarker")
marker1.Name = "FootStep"
marker1.Value = 100
local marker2 = Instance.new("KeyframeMarker")
marker2.Name = "Wave"
marker2.Value = 100
keyframe:AddMarker(marker1) --marker.Parent = keyframe
keyframe:AddMarker(marker2) --marker.Parent = keyframe
local markers = keyframe:GetMarkers()
for _, marker in pairs(markers) do
print(marker.Name)
end
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.Character:Wait()
local humanoid = character:WaitForChild("Humanoid")
-- Create new "Animation" instance
local kickAnimation = Instance.new("Animation")
-- Set its "AnimationId" to the corresponding animation asset ID
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Load animation onto the humanoid
local kickAnimationTrack = humanoid:LoadAnimation(kickAnimation)
-- Play animation track
kickAnimationTrack:Play()
-- If a named event was defined for the animation, connect it to "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
Proprietà
Value
Un valore che viene specificato per un Class.KeyframeMarker . Quando il segnale creato da Class.AnimationTrack:GetMarkerReachedSignal() viene attivato, questo valore viene passato nella funzione connessa.
Vedi anche:
Campioni di codice
local keyframe = Instance.new("Keyframe")
keyframe.Parent = workspace
local marker1 = Instance.new("KeyframeMarker")
marker1.Name = "FootStep"
marker1.Value = 100
local marker2 = Instance.new("KeyframeMarker")
marker2.Name = "Wave"
marker2.Value = 100
keyframe:AddMarker(marker1) --marker.Parent = keyframe
keyframe:AddMarker(marker2) --marker.Parent = keyframe
local markers = keyframe:GetMarkers()
for _, marker in pairs(markers) do
print(marker.Name)
end
local keyframe = Instance.new("Keyframe")
keyframe.Parent = workspace
local marker = Instance.new("KeyframeMarker")
marker.Name = "FootStep"
marker.Value = 100
keyframe:AddMarker(marker) --marker.Parent = keyframe
task.wait(2)
keyframe:RemoveMarker(marker) --marker.Parent = nil