KeyframeMarker
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
Seorang Marker Keyframe adalah instansi yang dimaksudkan untuk mewakili acara yang akhirnya akan diaktifkan saat sebuah Keyframe dihantam.
Menggunakan Pembuat Keyframe
Para pemasang Keyframe harus selalu dianggap sebagai anak untuk Keyframe dengan menetapkan orang tua langsung atau menggunakan fungsi Keyframe:AddMarker() dari Keyframe. KeyframeMarkers juga dapat dihapus secara langsung atau menggunakan fungsi Keyframe:RemoveMarker() , dan dipolling untuk memeriksa man
Saat Keyframe terdeteksi sebagai animasi berjalan, akan ada acara yang dibakar untuk setiap Keyframe Marker yang bermarkas di Keyframe. Acara ini dapat diidentifikasi dengan nama Keyframe Marker. Anda dapat mengambil dan mendengarkan acara ini menggunakan fungsi Class.AnimationTrack.GetKeyframeMarker
Ini mewarisi Keyframe.Name property dari Instance dan bersikap sama. Nama digunakan untuk identifikasi dan tidak perlu unik. Saat beberapa KeyFrameMarkers dengan nama yang sama diangkat ke KeyFrame, acara seperti yang dikembalikan oleh AnimationTrack:GetMarkerReachedSignal()
Lihat juga:
- Animation , menyimpan referensi data animasi yang dibutuhkan untuk memutar animasi khusus pada karakter atau model lain yang menggunakan sistem animasi Roblox
Contoh Kode
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)
Rangkuman
Properti
Nilai yang ditentukan untuk KeyframeMarker .
Properti
Value
Nilai yang ditentukan untuk KeyframeMarker . Setiap kali sinyal yang dibuat dari AnimationTrack:GetMarkerReachedSignal() diaktifkan, nilai ini akan ditransmisikan ke fungsi yang terhubung.
Lihat juga:
Contoh Kode
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