KeyframeMarker
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
Seorang Penanda Frame Kunci adalah instansi yang dimaksudkan untuk mewakili peristiwa yang akhirnya akan ditembak ketika sebuah Keyframe dipukul.
Menggunakan KeyframeMarker
Penanda Frame Kunci harus selalu diberi kepada Keyframe melalui pengaturan langsung orang tua atau menggunakan fungsi Keyframe:AddMarker() Keyframe.Penanda Frame Kunci juga dapat dihapus secara langsung atau menggunakan fungsi Keyframe:RemoveMarker() , dan diperiksa untuk memeriksa penanda mana yang terpasang ke Keyframe tertentu menggunakan Keyframe:GetMarkers() .
Setiap kali Keyframe terdeteksi sebagai animasi sedang berjalan, akan ada peristiwa yang ditembak untuk setiap KeyframeMarker yang diberikan ke Keyframe.Peristiwa ini dapat diidentifikasi dengan nama KeyframeMarker.Anda dapat memulihkan dan mendengarkan peristiwa ini menggunakan fungsi AnimationTrack.GetKeyframeMarkerReached.Opsi, Anda dapat mengatur properti KeyframeMarker.Value dari KeyframeMarker untuk melewati nilai dengan peristiwa yang ditembak.
Ia mewarisi properti Keyframe.Name dari Instance dan berperilaku sama.Nama digunakan untuk identifikasi dan tidak perlu unik.Ketika beberapa instansi KeyframeMarker dengan nama yang sama dilampirkan ke Keyframe , acara seperti yang dikembalikan oleh AnimationTrack:GetMarkerReachedSignal() akan ditembak untuk setiap penanda.
Lihat juga:
- , menyimpan yang diterapkan pada persambungan di suatu titik waktu dalam animasi
- Animation , menyimpan referensi ke data animasi yang diperlukan untuk memainkan animasi khusus pada karakter atau model lain 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() ditembak, nilai ini akan disampaikan ke fungsi terhubung.
Lihat juga:
- , menyimpan yang diterapkan pada persambungan di suatu titik waktu dalam animasi
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