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 benzersiz olmak zorunda değildir.Aynı adı taşıyan çok sayıda KeyframeMarker örneği bir Keyframe 'a bağlandığında, AnimationTrack:GetMarkerReachedSignal() tarafından geri gönderilen 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
Bu örnek Keyframe:AddMarker() ve Keyframe:GetMarkers() fonksiyonlarını gösterir.İki işaret ekledikten sonra, işaret1 ve işaret2 anahtara eklenen işaretlerin isimlerini alır ve basar bu örnek.
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) --işaretleyici.Parent = anahtar kare
keyframe:AddMarker(marker2) --işaretleyici.Parent = anahtar kare
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
Bu örnek Keyframe:AddMarker() ve Keyframe:GetMarkers() fonksiyonlarını gösterir.İki işaret ekledikten sonra, işaret1 ve işaret2 anahtara eklenen işaretlerin isimlerini alır ve basar bu örnek.
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) --işaretleyici.Parent = anahtar kare
keyframe:AddMarker(marker2) --işaretleyici.Parent = anahtar kare
local markers = keyframe:GetMarkers()
for _, marker in pairs(markers) do
print(marker.Name)
end
Bu örnek Keyframe:AddMarker() ve Keyframe:RemoveMarker() fonksiyonlarını gösterir.Bunların işlevsel olarak parenting ile eşdeğer olduğunu ve işaretlerin ebeveyn olmadığını unutmayın.
local keyframe = Instance.new("Keyframe")
keyframe.Parent = workspace
local marker = Instance.new("KeyframeMarker")
marker.Name = "FootStep"
marker.Value = 100
keyframe:AddMarker(marker) --işaretleyici.Parent = anahtar kare
task.wait(2)
keyframe:RemoveMarker(marker) --marker.Parent = nil