KeyframeMarker
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
Um Marcador de Quadro-Chave é uma instância destinada a representar um evento que será eventualmente disparado quando um Keyframe for atingido.
Usando um Marcador de Quadro de Chave
Os marcadores de quadro de chave devem sempre ser associados a um Keyframe através da definição do pai diretamente ou usando a função do Keyframe.Os marcadores de quadro de chave também podem ser removidos diretamente ou usando a função Keyframe:RemoveMarker(), e solicitados para verificar quais marcadores estão anexados a um Keyframe específico usando Keyframe:GetMarkers().
Sempre que um Keyframe for detectado como uma animação está em andamento, haverá um evento disparado para cada KeyframeMarker que está ligado ao Keyframe.Esses eventos são identificáveis pelo nome do KeyframeMarker.Você pode recuperar e ouvir esses eventos usando a função AnimationTrack.GetKeyframeMarkerReached.Opcionalmente, você pode definir a propriedade KeyframeMarker.Value da Marca-Chave em ordem de passar um valor com o evento sendo disparado.
Ela herda a propriedade Keyframe.Name de Instance e se comporta de forma idêntica.Nomes são usados para identificação e não precisam ser únicos.Quando várias instâncias KeyframeMarker com o mesmo nome são anexadas a um Keyframe, eventos como o retornado por AnimationTrack:GetMarkerReachedSignal() serão disparados para cada marcador.
Veja também:
- Animation , contém uma referência a dados de animação necessários para reproduzir animações personalizadas em personagens ou outros modelos usando o sistema de animação do Roblox
Amostras de código
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)
Resumo
Propriedades
Um valor que é especificado para um KeyframeMarker .
Propriedades
Value
Um valor que é especificado para um KeyframeMarker .Sempre que o sinal criado a partir de AnimationTrack:GetMarkerReachedSignal() for disparado, esse valor será passado para a função conectada.
Veja também:
Amostras de código
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