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
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)
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
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