KeyframeMarker
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Ein Keyframe-Marker ist eine Instanz, die ein Ereignis darstellt, das schließlich ausgelöst wird, wenn ein Keyframe getroffen wird.
Verwendung eines Keyframe-Markers
KeyframeMarkers sollten immer über einen Keyframe hinweggeordnet sein, indem der Elternteil direkt oder mit der Funktion Keyframe:AddMarker() des Keyframe festgelegt wird. KeyframeMarkers können auch direkt entfernt werden, indem der Elternteil mit der Funktion Keyframe:RemoveMarker() ausgewählt wird, und mit der Funktion Keyframe:GetMarkers() auf die
Wenn ein Keyframe als Animation ausgeführt wird, wird für jeden Keyframe-Marker, der mit dem Keyframe verbunden ist, ein Ereignis ausgelöst, für jeden Keyframe-Marker, der mit dem Keyframe verbunden ist, wird ein Ereignis ausgelöst, für jeden Keyframe-Marker, der mit dem Keyframe verbunden ist, wird ein Ereignis ausgelöst. Optionally, you may set the Class.Animation
Es erbt die Keyframe.Name Eigenschaft von Instance und verhält sich identisch. Namen werden für die Identifizierung verwendet und müssen nicht einzigartig sein. Wenn mehrere KeyFrameMarkers mit dem gleichen Namen an einem KeyFrame angehängt sind, werden Ereignisse wie diejenige, die von AnimationTrack:GetMarkerReachedSignal() zurückgegeben wird
Siehe auch:
- Animation , enthält eine Verweisung auf Animationendaten, die für die Wiedergabe benutzerdefinierter Animationen auf Charaktern oder anderen Modellen mit dem Roblox-Animationssystem erforderlich sind
Code-Beispiele
This example demonstrates the Keyframe:AddMarker() and Keyframe:GetMarkers() functions. After adding two markers, marker1 and marker2 to the keyframe, this example gets and prints the names of the added markers.
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
This LocalScript code waits for the local player's Humanoid object to load, then it creates a new Animation instance with the proper Animation.AnimationId. The animation is then loaded onto the humanoid, creating an AnimationTrack, and the track is played with AnimationTrack:Play(). Following that, the AnimationTrack:GetMarkerReachedSignal() function detects when the "KickEnd" marker is hit.
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)
Zusammenfassung
Eigenschaften
Ein Wert, der für einen KeyframeMarker festgelegt ist.
Eigenschaften
Value
Ein Wert, der für einen KeyframeMarker festgelegt ist. Wenn das Signal, das von AnimationTrack:GetMarkerReachedSignal() erstellt wird, getötet wird, wird dieser Wert an die verbundene Funktion übergeben.
Siehe auch:
Code-Beispiele
This example demonstrates the Keyframe:AddMarker() and Keyframe:GetMarkers() functions. After adding two markers, marker1 and marker2 to the keyframe, this example gets and prints the names of the added markers.
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
This example demonstrates the Keyframe:AddMarker() and Keyframe:RemoveMarker() functions. Note these are functionally equivalent to parenting and un-parenting the markers.
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