KeyframeMarker
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
Bir Anahtar Çerçeve İşaretleyici, bir Keyframe vurulduğunda sonunda ateşlenecek bir olayı temsil etmek üzere tasarlanmış bir örnektir.
Bir Anahtar Çerçeve İşaretleyicisi Kullanma
Anahtar çerçeve işaretleyicileri daima doğrudan ebeveyn atayarak bir Anahtar çerçevesine veya Keyframe'in Keyframe:AddMarker() işlevini kullanarak ebeveyn olmalıdır.Anahtar çerçeve işaretleyicileri doğrudan kaldırılabilir veya Keyframe:RemoveMarker() işlevini kullanarak ve belirli bir anahtar çerçevesine hangi işaretçilerin bağlandığını kontrol etmek için Keyframe:GetMarkers() işlevini kullanarak da kaldırılabilir.
Bir Animasyon olarak bir Anahtar çerçevesi tespit edildiğinde, Anahtar çerçevesine bağlı her bir Anahtar işaretleyici için bir olay ateşlenecektir.Bu olaylar, Anahtar Çerçeve İşaretleyici adıyla tanımlanabilir.Bu olayları AnimationTrack.GetKeyframeMarkerReached işlevini kullanarak alabilir ve dinleyebilirsiniz.Opsiyonel olarak, Ateşlenen Etkinlik değeri ile birlikte geçmek için Anahtar Çerçeve İşaretleyicisinin KeyframeMarker.Value özelliğini ayarlayabilirsiniz.
Miras alır Keyframe.Name özellikten Instance ve aynı davranır.İsimler tanımlama için kullanılır ve eşsiz olmak zorunda değildir.Aynı ada sahip birden fazla Anahtar Çerçeve İşaretleyicisi bir Anahtar Çerçevesine bağlandığında, AnimationTrack:GetMarkerReachedSignal() tarafından döndürülen gibi olaylar her işaret için ateşlenecektir.
Ayrıca bakın:
- Animation , Roblox animasyon sistemi kullanılarak karakterler veya diğer modeller üzerinde özel animasyonlar oynatmak için gerekli olan animasyon verilerine referans tutar
Kod Örnekleri
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)
Özet
Özellikler
Bir KeyframeMarker için belirtilen bir değer.
Özellikler
Value
Bir KeyframeMarker için belirtilen bir değer.Sinyal AnimationTrack:GetMarkerReachedSignal() 'den yaratıldığında herhangi bir zaman, bu değer bağlı işleve geçecektir.
Ayrıca bakın:
Kod Örnekleri
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