Humanoid

Artık kullanılmayanları göster

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Humanoid, bir modelin bir karakterin işlevselliğini sağlayan özel bir nesnedir. Roblox

R6

  • 6 bölge için kullanan temel bir karakter oluğu.
  • Head kısmı bir Torso parçasına bağlanmalıdır veya insanoid hemen ölecektir.
  • BodyPart görünümleri CharacterMesh nesneleri kullanılarak uygulanır.
  • Bazı özellikler, örneğin Humanoid.LeftLeg ve Humanoid.RightLeg gibi, sadece R6 ile çalışır.

R15

  • R6'dan daha karmaşık, ancak ayrıca çok daha esnek ve güçlü.
  • Gerçekleştirme için 15 parça kullanır.
  • Head kısmı, UpperTorso adındaki bir parçaya bağlanmalıdır veya Humanoid anında ölecektir.
  • BodyPart görünümleri doğrudan montaj edilmelidir.
  • Humanoid'in içindeki özel NumberValue nesneleri kullanarak dinamik olarak yeniden boyutlandırılabilir.
  • Humanoid, her bir kolun içindeki Vector3Value adında şeyler otomatik olarak oluşturur.
  • Humanoid'in içinde bir NumberValue varsa ve takip edilenbiri olarak adlandırılırsa, ölçekleme işlevini kontrol etmek için kullanılır:
    • Beden Derinliği Ölçeği
    • Beden Yüksekliği Ölçeği
    • Beden Genişliği Ölçeği
    • Kafa Ölçeği

Kod Örnekleri

Walking Camera Bobble Effect

local RunService = game:GetService("RunService")
local playerModel = script.Parent
local humanoid = playerModel:WaitForChild("Humanoid")
local function updateBobbleEffect()
local now = tick()
if humanoid.MoveDirection.Magnitude > 0 then -- Is the character walking?
local velocity = humanoid.RootPart.Velocity
local bobble_X = math.cos(now * 9) / 5
local bobble_Y = math.abs(math.sin(now * 12)) / 5
local bobble = Vector3.new(bobble_X, bobble_Y, 0) * math.min(1, velocity.Magnitude / humanoid.WalkSpeed)
humanoid.CameraOffset = humanoid.CameraOffset:lerp(bobble, 0.25)
else
-- Scale down the CameraOffset so that it shifts back to its regular position.
humanoid.CameraOffset = humanoid.CameraOffset * 0.75
end
end
RunService.RenderStepped:Connect(updateBobbleEffect)

Özet

Özellikler

Yöntemler

Etkinlikler

Özellikler

AutoJumpEnabled

Paralel oku

AutoJumpEnabled, Humanoid 'in yürüdüğü engelden otomatik olarak atlamaya çalışıp çalışmayacağını ayarlar.

Şu anda, bu özellik sadece aşağıdaki koşullardan biri doğru olduğunda çalışır:

  • Humanoid'in karakter modeli bir Player.Character 'in Player modelidir.
  • Sorulan Oyuncu dokunmatik denetimlerkullanıyor.

Bir oyuncunun karakteri oluşturulduğunda, özelliğin değeri oyuncunun Player.AutoJumpEnabled özelliğine eşittir - bu da StarterPlayer.AutoJumpEnabled özelliğine eşittir.

Kod Örnekleri

Auto-Jump Toggle

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local button = script.Parent
local function update()
-- Update button text
if player.AutoJumpEnabled then
button.Text = "Auto-Jump is ON"
else
button.Text = "Auto-Jump is OFF"
end
-- Reflect the property in the player's character, if they have one
if player.Character then
local human = player.Character:FindFirstChild("Humanoid")
if human then
human.AutoJumpEnabled = player.AutoJumpEnabled
end
end
end
local function onActivated()
-- Toggle auto-jump
player.AutoJumpEnabled = not player.AutoJumpEnabled
-- Update everything else
update()
end
button.Activated:Connect(onActivated)
update()

AutoRotate

Paralel oku

Otomatik Döndürme özelliği, Humanoid'in hareket yönünde otomatik olarak döndüğünü veya döndürmediğini açıklar. Döndürme eğilimi yönünde hareket eden Humanoid'in yanında karakter modeli otomatik olarak döndürme eğilimi yönünde hareket eder. Döndürme eğilimi yönünde hareket edilmezse, karakter modeli hala yerine get

Karakter modeli bir oyuncunun karakteri olursa, Humanoid'in dönmezorunun davranışı, UserGameSettings'in RotateType özelliği tarafından etkilenir.

Otomatik Döndürme özelliği "Açık" olarak ayarlandığında, Döndürme Türü özelliğinin Humanoid'in dönüşümündeki şu etkileri vardır:


<tbody>
<tr>
<td>HareketYeri</td>
<td />
<td />
</tr>
<tr>
<td>KameraOrtası</td>
<td>Karakter kameranın yönünü işaret etmek için dönecek.</td>
<td>Oyuncunun kamerası ilk kişiye yakınlaştırıldı veya shift-lock modunda.</td>
</tr>
</tbody>
DöndürmeTürüDavranışKontext

Kod Örnekleri

AutoRotate Button

local button = script.Parent
local enabled = true
local ON_COLOR = BrickColor.Green()
local OFF_COLOR = BrickColor.Red()
local function touchButton(humanoid)
if enabled then
enabled = false
button.BrickColor = OFF_COLOR
if humanoid.AutoRotate then
print(humanoid:GetFullName() .. " can no longer auto-rotate!")
humanoid.AutoRotate = false
else
print(humanoid:GetFullName() .. " can now auto-rotate!")
humanoid.AutoRotate = true
end
task.wait(1)
button.BrickColor = ON_COLOR
enabled = true
end
end
local function onTouched(hit)
local char = hit:FindFirstAncestorWhichIsA("Model")
if char then
local humanoid = char:FindFirstChildOfClass("Humanoid")
if humanoid then
touchButton(humanoid)
end
end
end
button.Touched:Connect(onTouched)
button.BrickColor = ON_COLOR

AutomaticScalingEnabled

Paralel oku

The Humanoid'ın çeşitli öğeleri, BodyDepthScale, BodyHeightScale, BodyProportionScale, 2> BodyTypeScale2>, 5> HeadScale5> dahil olmak üzere altı çocuk ölçek değer

BreakJointsOnDeath

Paralel oku

enum.humanoidstate type.dead devletinde humanoid'in bileşikleri kırılıp kırılmadığını belirler.Varsayılan doğru.

CameraOffset

Paralel oku

CameraOffset özelliği, Camera.CameraSubject olarak ayarlanmış bu Humanoid ile ilgili kamera pozisyonuna bir ofset belirtir.

Ofset, Humanoid'inVector3 nın yönüne göre uygulanır. Örneğin, bir ofset Datatype.Vector3 değeri ile 0> (0, 10, 0)0> ofsetleri oyuncunun kamerasını 10 santimetre üzerinde oyuncunun insanoid'ine uygulanır.

Kod Örnekleri

Walking Camera Bobble Effect

local RunService = game:GetService("RunService")
local playerModel = script.Parent
local humanoid = playerModel:WaitForChild("Humanoid")
local function updateBobbleEffect()
local now = tick()
if humanoid.MoveDirection.Magnitude > 0 then -- Is the character walking?
local velocity = humanoid.RootPart.Velocity
local bobble_X = math.cos(now * 9) / 5
local bobble_Y = math.abs(math.sin(now * 12)) / 5
local bobble = Vector3.new(bobble_X, bobble_Y, 0) * math.min(1, velocity.Magnitude / humanoid.WalkSpeed)
humanoid.CameraOffset = humanoid.CameraOffset:lerp(bobble, 0.25)
else
-- Scale down the CameraOffset so that it shifts back to its regular position.
humanoid.CameraOffset = humanoid.CameraOffset * 0.75
end
end
RunService.RenderStepped:Connect(updateBobbleEffect)
Paralel oku

Görüntü mesafesi tipi özelliği, insanoid'in ismi ve sağlık gösteriminin mesafe davranışını kontrol eder. Bu özellik üç mevcut değerle belirlenir, her biri kendi seti of kuralları vardır:

  • Enuyum.HumanoidDisplayDistanceType|Viewer ile ayarlandığında, insanoid, kendi NameDisplayDistance ve HealthDisplayDistance iletişim menzili içindeki diğer insanoidlerin isimlerini/sağlıklarını görür.
  • Amount.HumanoidDisplayDistanceType|Subject ile ayarlandığında, insanoid kendi ismi ve sağlık gösterimindeki kendi NameDisplayDistance ve HealthDisplayDistance değerleri aracılığıyla tam kontrolü ele geçirir.
  • Ensayar.HumanoidDisplayDistanceType|None olarak ayarlandığında, insanoid'in ismi ve sağlık çubuğu herhangi bir durumda görünmez.

Karakter isimleri ve sağlık çubuklarının görünümünü kontrol etmek için Karakter İsmi/Sağlık Görüntüsü bakın.

Kod Örnekleri

Displaying a Humanoid's Health and Name

local humanoid = script.Parent
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.Viewer
humanoid.HealthDisplayDistance = 0
humanoid.NameDisplayDistance = 100

DisplayName

Paralel oku

DisplayName bir özelliktir, Humanoid'in görünürdeki isim gösterimini belirleyen bir özelliktir.Varsayılan olarak, yeni bir Humanoid'in boş bir yuva değeri olacaktır. Eğer DisplayName boş bir yuva diziise, Humanoid'in ismi görüntüsü, Humanoid'in ebeveyn ismi özelliğine bağlı olarak görüntülenir

Oyuncu Karakter Yüklenmesi

Oyuncular karakterlerini yüklediğinde, otomatik olarak veya LoadCharacter() ile kullanılan, oluşturulan Humanoid'in DisplayName özelliği oyuncunun DisplayName özelliğine ayarlanır.

Başlangıç Karakteri ve Başlangıç Humanoid

Bir Humanoid ile ismi StarterHumanoid olan bir Humanoid, Class.

EvaluateStateMachine

Paralel oku

FloorMaterial

Salt Okunur
Çoğaltılmamış
Paralel oku

Bu, Enum.Material ın üstünde duran Humanoid ı tanımlayan yalnızca okunur bir özelliktir. Bu, normal Parts ile ve 2> Class.Terrain2> voxelleri ile çalışır.

Aşağıdaki kod örneği, Object:GetPropertyChangedSignal() kullanarak bu özellik değiştirildiğinde nasıl dinleyeceğinizi gösteriyor. Materyalin üzerinde duran malzeme değiştirildiğinde, yeni malzeme üzerinde durduğunu gösteren bir mesaj yazacaktır.


local Humanoid = route.to.humanoid
Humanoid:GetPropertyChangedSignal("FloorMaterial"):Connect(function()
print("New value for FloorMaterial: " .. tostring(Humanoid.FloorMaterial))
end)

Kısıtlama

  • Class.Humanoid öğesi bir zemin üzerinde değilken, bu öğenin değeri Hava olarak ayarlanacaktır.
    • Bu, Listelenen özelliklerin boş bir değeri olmaz.
    • Bir parçanın malzemesi Hava olarak ayarlandıysa bile, pratikte bir parça bu malzemeyi ilk dünyakullanmamalıdır.
  • Humanoid karakter modeli zeminle çarpışabilmelidir, yoksa algılanmaz.
    • Class.Humanoid özelliğiyle yüzüyor olup olmadığını test edemezsiniz. Bunun yerine onun Class.Humanoid:GetState() fonksiyonunu kullanın.

Health

Çoğaltılmamış
Paralel oku

Bu özellik, Humanoid 'in mevcut sağlığını temsil eder. Değer, MaxHealth arasındaki menzili kullanır. Eğer insanoid ölüyse, bu özellik sürekli olarak 0 olarak ayarlanır.

Class.Humanoid:TakeDamage()|TakeDamage() işlevi, özellikleri doğrudan ayarlamak yerine Health üzerinden çıkarılabilir.

Sağlık Yenilenmesi

Varsayılan olarak, bir pasif sağlık yenilenme kısmı otomatik olarak insanoid'e girer. Bu, ölmeyen oyuncu karakterlerinin her saniye MaxHealth 'i yeniden oluşturduğunu sağlar. Bu yenilenme davranışını devre dışı bırakmak iç

Sağlık Çubuğu Görüntüsü

Class.Humanoid.MaxHealth|MaxHealth küçükse bir sağlık çubuğu deneyim içinde görüntülenecek. Sağlık çubuğunun görüntü davranışı MaxHealth ve HealthDisplayDistance ile bağlantı

Karakter isimleri ve sağlık çubuklarının görünümünü kontrol etmek için Karakter İsmi/Sağlık Görüntüsü bakın.

Ölüm

Karakterin sağlığının değeri 0'a ulaştığında, Humanoid otomatik olarak Enum.HumanoidStateType.Dead devletine geçer. Bu devlette, Health kilitlenir; ancak, ö

HealthDisplayDistance

Paralel oku

Bu özellik, bir insanoid'in sağlık çubuğunun görülebildiği mesafeyi kontrol etmek için DisplayDistanceType özelliği ile bir sayıdır.

Karakter isimleri ve sağlık çubuklarının görünümünü kontrol etmek için Karakter İsmi/Sağlık Görüntüsü bakın.

Paralel oku

Bu özellik, bir insanoid'in sağlık çubuğunun görüntülenmesine izin verildiğinde görüntülenmesini kontrol eder.Varsay

Not: Bu özellik, sağlık çubuğunun belirli mesafelerde solgunmasını sağlayan HealthDisplayDistance özelliğiyle bağımsız olarak işlev görür. Humanoid.HealthDisplayType|HealthDisplayType

Karakter isimleri ve sağlık çubuklarının görünümünü kontrol etmek için Karakter İsmi/Sağlık Görüntüsü bakın.

HipHeight

Paralel oku

İnsanoid'in ayakta olduğunda RootPart 'in yerini belirler. RigType bu özelliğin davranışını etkiler.

R15 konsollar için, RootPart 'in yüksekliğini garanti etmek için uygun bir hip yüksekliği ön ayarı yapılır. Bacakların yüksekliği kullanılmaz. İnsanoidin genel yüksekliği aşağıdaki formülle açıklanabilir:


Height = (0.5 * RootPart.Size.Y) + HipHeight

R6 konsollar için, HipHeight yerine, bir relatif ofset açıklar. Humanoid'in genel yüksekliği şu formülle açıklanabilir:


Height = LeftLeg.Size.Y + (0.5 * RootPart.Size.Y) + HipHeight

Jump

Çoğaltılmamış
Paralel oku

Eğer true , Humanoid veya Humanoid.JumpPower ile eşit yukarı güçlü şekilde zıplarsa, değer eşitliği 2>Class.Humanoid.UseJumpPower2> ile belirlenmiş olacaktır.

JumpHeight

Paralel oku

Yüksekliğe bir Humanoid atlamalarının üstünde kontrol sağlar, in studs. Bu özelliğin başlangıç değeri, StarterPlayer.CharacterJumpHeight ile belirlenir, varsayılan olarak 7.2'dir.

Bu özelliği 0 olarak ayarlamak, insanoid'in zıplamayı etkili bir şekilde önlemesi için yeterlidir, ancak Enum.HumanoidStateType.Jumping aracılığıyla Humanoid:SetStateEnabled() devre dışı bırakarak zıplamayı devre dışı bırakmanız önerilir.

Bu özellik sadece Özellikler penceresinde görünür, çünkü aksi takdirde (yerine) Class.Humanoid.UseJumpPower kullanılıyor.

JumpPower

Paralel oku

Class.Humanoid zıplarken uygulanacak yukarı gücünü belirler. İçgörü değeri bu özelliğin başlangıcını belirler (sayısal olarak 50 olarak belirlenmiştir). Zıplamalar ayrıca Class.Workspace.Gravity öz

Bu özelliği 0 olarak ayarlamak, insanoid'in zıplamayı etkili bir şekilde önlemesi için yeterlidir, ancak Enum.HumanoidStateType.Jumping aracılığıyla Humanoid:SetStateEnabled() devre dışı bırakarak zıplamayı devre dışı bırakmanız önerilir.

Bu özellik sadece Özellikler penceresinde görünür, çünkü aksi takdirde (yerine) Humanoid.UseJumpPower ayarlandığında kullanılır.

MaxHealth

Paralel oku

Bir insanoid'in Health 'i maksimum değeri.

Bu öğünün değeri, varsayılan sağlık çubuğu gösterimi boyutlandırmak için Health öğesi ile birlikte kullanılır. Bir insanoid'in Health değeri Class.Humanoid.MaxHealth|MaxHealth</

MaxSlopeAngle

Paralel oku

Bu özellik, bir insanoid'in tırmanmamaksimum eğilme açısını belirler. Eğilmenin açısı bir insanoid'in MaxSlopeAngle'den daha büyükse, aşağıya kaydırılır.

Bir karakter doğduğunda, bu özellik StarterPlayer.CharacterMaxSlopeAngle değerine göre ayarlanır.

Bu özelliğin değeri, 0° ve 89° arasındaki değerlerle sınırlıdır.Varsayılan olarak 89°'dir, böylece insanoidler varsayılan olarak hemen hemen her tepeye tırmanabilir.

Kod Örnekleri

Limiting The Slope a Humanoid Can Walk Up

local player = game.Players.LocalPlayer
local char = player.CharacterAdded:wait()
local h = char:FindFirstChild("Humanoid")
h.MaxSlopeAngle = 30

MoveDirection

Salt Okunur
Çoğaltılmamış
Paralel oku

MoveDirection bir Humanoid ın yürüdüğü yönü tanımlayan yalnızca okuma özelliğidir. Yön, dünya alanında açıklanır.

Bu özellik okuma yalnızca, bir Script veya LocalScript tarafından ayarlanamıyor.

Kod Örnekleri

Walking Camera Bobble Effect

local RunService = game:GetService("RunService")
local playerModel = script.Parent
local humanoid = playerModel:WaitForChild("Humanoid")
local function updateBobbleEffect()
local now = tick()
if humanoid.MoveDirection.Magnitude > 0 then -- Is the character walking?
local velocity = humanoid.RootPart.Velocity
local bobble_X = math.cos(now * 9) / 5
local bobble_Y = math.abs(math.sin(now * 12)) / 5
local bobble = Vector3.new(bobble_X, bobble_Y, 0) * math.min(1, velocity.Magnitude / humanoid.WalkSpeed)
humanoid.CameraOffset = humanoid.CameraOffset:lerp(bobble, 0.25)
else
-- Scale down the CameraOffset so that it shifts back to its regular position.
humanoid.CameraOffset = humanoid.CameraOffset * 0.75
end
end
RunService.RenderStepped:Connect(updateBobbleEffect)

NameDisplayDistance

Paralel oku

İsimGörüntüMesafesi özelliği, bir insanoid'in isminin görüntülenebileceği mesafeyi kontrol etmek için Humanoid.DisplayDistanceType özelliği ile bir sayıdır.

Karakter isimleri ve sağlık çubuklarının görünümünü kontrol etmek için Karakter İsmi/Sağlık Görüntüsü bakın.

NameOcclusion

Paralel oku

Bir insanoid'in ismi ve sağlık çubuğunun duvarlar veya diğer nesnelerin arkasında görülebilir olup olmadığını kontrol eder. Bu özellik bir Enum.NameOcclusion değeridir ve tüm isimleri, düşman isimlerini veya tüm ismeleri kapatmak için yapılandırılabilir.

Class.Players.LocalPlayer|LocalPlayer ın bir Humanoid ile ilgili olmadığı durumlarda, bu özellik Humanoid ın konusuna uygulanır.

Karakter isimleri ve sağlık çubuklarının görünümünü kontrol etmek için Karakter İsmi/Sağlık Görüntüsü bakın.

Kod Örnekleri

Occlude Player Names

local Players = game:GetService("Players")
local function onCharacterAdded(character)
local humanoid = character:WaitForChild("Humanoid")
humanoid.NamOcclusion = Enum.NameOcclusion.OccludeAll
end
local function onPlayerAdded(player)
player.CharacterAdded:Connect(onCharacterAdded)
end
Players.PlayerAdded:Connect(onPlayerAdded)

PlatformStand

Paralel oku

Class.Humanoid şu anda Enum.HumanoidStateType.PlatformStanding devletinde mi bulunuyor? Evet, Humanoid serbest düşüyor ve hareket edemez. Bu devlet, oturma gibi davranıyor, ancak zıplama, Humanoid'i devletten özgür bırakmaz.

RequiresNeck

Paralel oku

Yazılımcıların Neck Motor6D ın çekirdek kaldırılır veya bağlantı kesilirse oyuncunun ölmesi gibi davranışı devre dışı bırakmalarına izin verir. Bu özellik varsayılır olarak doğrudur.

Paralel oku

RigType Rig Type'ını açıklar ve bir Humanoid Rig'i, ya da daha yeni bir R15 Rig'i kullanıyor olup olmadığını.

R6 ağı 6 görünür Parts kullanırken, R15 ağı 15 görünür Parts kullanır. R15 ağları, R6 ağlarından daha çok bağlantıya sahiptir, böylece animasyon yaparken çok daha çok yönlü hale gelir.

Not: Bu özellik yanlış bir şekilde ayarlanırsa, Humanoid şu şekilde işlev etmeyecektir: R15 bir insanoid'in RigType R6'da ayarlandığında, <

RootPart

Salt Okunur
Çoğaltılmamış
Paralel oku

Bir referans olarak, HumanoidRootPart , bir insanoid'ın hareketini 3D dünyası aracılığıyla kontrol eden Humanoid ın kök kısmını gösterir. Bu kısım normalde görünmezdir.

Oyuncu karakterlerindeki durumda, RootPart aynıdır Model.PrimaryPart modelinin Player.Character ile.

SeatPart

Salt Okunur
Çoğaltılmamış
Paralel oku

SeatPart, bir Humanoid şu anda oturduğu koltuğa bir referanstır, eğer varsa. Bu özelliğin değeri Seat veya VehicleSeat olabilir. Eğer Humanoid oturmuyorsa 1> nil1> olur.

Not:

  • Class.Humanoid ın şu anda oturduğunu veya oturmadığını gösteren bir boo'yu için, Humanoid.Sit

Sit

Paralel oku

Oturma özelliği, Humanoid ın şu anda oturup olup olmadığını gösteren bir boolean'dır. Humanoids , bu özelliğin değerini gerçek olarak ayarlarak ot

Not:

  • Class.Humanoid1> veya Class.VehicleSeat``Class.Humanoid içinde oturan 1> Class.Humanoid1> elde edilebilir 4> Class.Humanoid.SeatPart4> özelliği kullanılarak
  • Bir Humanoid'ın oturduğunu tespit etmek için Humanoid.Seated etkinliğine bağlanarak tespit etmek mümkündür.

TargetPoint

Paralel oku

Kullanmayın: Bu özellik sadece deneysel modu etkinleştirenlerle çalışır, bu da tamamen discontinued'dir.

Bu özellik, Playernın bu Humanoidyı kontrol ettiği 3D pozisyonunu tanımlar, bu Toolnun takılı olduğu ile.

Bu özellik, klasik araçlar tarafından kullanılır, bir araçtıraktığında bir insanoid'i hedef almak için neyi hedef aldığını belirlemek için klasik bir roket fırlatıcısını kullanır. NPC'ye bir klasik roket fırlatıcısı verirseniz, HedefNoktası, ardından

UseJumpPower

Paralel oku

Bir karakter doğduğunda, bu özellik StarterPlayer.CharacterUseJumpPower ile ayarlanır, varsayılan olarak doğru.

Zıplarken, bu seti doğru olarak ayarlayarak, Humanoid.JumpHeight değeri kullanılır. Bu seti yanlış olarak ayarlayarak, Humanoid.JumpPower değeri kullanılır. Yukarı bir güç uygulamak için kullanılır.

WalkSpeed

Paralel oku

Bu özellik, Humanoid 'in her saniye başına yürümegösterir, çizgi başına saniye başına.Varsayılan değer, StarterPlayer.CharacterWalkSpeed (16), yani bir oyuncu karakterinin her saniye 16 adım ilerleyebileceği anlamına geliyor.

Notlar

  • Mobilde bir kontrolör veya oyun konsolu üzerinde kontrol edildiğinde, bir insanoid daha yavaş yürüyebilir, çünkü kontrol eden başparmak iletiği merkezden yalnızca bir yükseltme derecesi hareket ettirildiğinde.
  • Bir insanoid'ı yerine dondurmak için WalkSpeed değerini 0 olarak ayarlayın; bu, kontrol eden oyuncunun onu varsayılan hareket mekanizmaları aracılığıyla hareket ettirmeyi önler.
  • Varsayılan animasyon kısmı, bir insanoid'in hızlı hareket animasyonlarını ölçekler, 16 saniye/saniye varsayılan hızla kıyaslandığında.
  • Class.Humanoid şu anda yürüdüğünüz hızı kullanarak elde edebilirsiniz Running etkinliği.

WalkToPart

Paralel oku

WalkToPart, Humanoid'in ulaşmaya çalıştığı bir parçaya bir referanstır. Bu özellik genellikle bir parçanın Humanoid'in Humanoid:MoveTo() funktionunun 2. argümanı olarak ayarlanır.

WalkToPart ayarlandığında ve bir insanoid aktif olarak parçaya ulaşmaya çalışırken, Vector3 hedefini güncelliyor ve parçanın konumu plus Class.Humanoid.WalkToPoint olarak nesne alanına çevirilmiş olacaktır.

Bu, Lua'da şu şekilde tarif edilebilir:


goal = humanoid.WalkToPart.CFrame:pointToObjectSpace(humanoid.WalkToPoint)

Kısıtlama

  • WalkToPart'ın değerini ayarlamak bir parçanın ardından bir insanoid başlatmak için yeterli değildir.
  • Humanoid, WalkToPoint değerini değiştirdiğinde hedefe ulaşmaya çalışmaya başlayanı yüreklendir.
  • Bu gelecekte değiştirilebilir.
  • Bir insanoid'in hedefe ulaşması durumunda, hedefine ulaşmazsa 8 saniye içinde sona eriyor.
  • Bu, NPC'lerin Humanoid.MoveToFinished için ateşlenmesi için beklemekte sıkışmamaları için yapılır.
  • Bunun olmasını istemiyorsanız, MoveTo'yu tekrar çağırmanız gerekir, böylece süre aşımı sıfırlanır.

WalkToPoint

Paralel oku

WalkToPoint, bir insanoid'in insanoid'in Humanoid:MoveTo() işlevine yapılan isteğin ardından uzayda bir 3D pozisyonun açıklamasını sağlar.

Bir insanoid'in Humanoid.WalkToPart ı ayarla, hedef belirlenir bir yürüyüş noktasına göre yerleştirme ile ilgili olarak. Eğer WalkToPart ayarladeğilse, insanoid'in doğrudan WalkToPoint'e belirlenen 3D pozisyonuna ulaşması deneyecektir.

Kısıtlama

  • WalkToPoint'in değeri, insanoid'in yürümeye başlaması için farklı bir değere değiştirilmelidir.
  • Eğer insanoid'i 0,0,0 yürüyecek şekilde yapmak istiyorsanız, Humanoid'in MoveTo işlevini kullanmalısınız.
  • Bu gelecekte değiştirilebilir.
  • Bir insanoid'in hedefe ulaşması durumunda, hedefine ulaşmazsa 8 saniye içinde sona eriyor.
  • Bu, NPC'lerin Humanoid.MoveToFinished için ateşlenmesi için beklemekte sıkışmamaları için yapılır.
  • Bunun olmasını istemiyorsanız, MoveTo'yu tekrar çağırmanız gerekir, böylece süre aşımı sıfırlanır.

Kod Örnekleri

Humanoid MoveTo Without Time out

local function moveTo(humanoid, targetPoint, andThen)
local targetReached = false
-- listen for the humanoid reaching its target
local connection
connection = humanoid.MoveToFinished:Connect(function(reached)
targetReached = true
connection:Disconnect()
connection = nil
if andThen then
andThen(reached)
end
end)
-- start walking
humanoid:MoveTo(targetPoint)
-- execute on a new thread so as to not yield function
task.spawn(function()
while not targetReached do
-- does the humanoid still exist?
if not (humanoid and humanoid.Parent) then
break
end
-- has the target changed?
if humanoid.WalkToPoint ~= targetPoint then
break
end
-- refresh the timeout
humanoid:MoveTo(targetPoint)
task.wait(6)
end
-- disconnect the connection if it is still connected
if connection then
connection:Disconnect()
connection = nil
end
end)
end
local function andThen(reached)
print((reached and "Destination reached!") or "Failed to reach destination!")
end
moveTo(script.Parent:WaitForChild("Humanoid"), Vector3.new(50, 0, 50), andThen)

Yöntemler

AddAccessory

void

Bu yöntem, belirlenen Accessory ile insanoidin ebeveynine bağlanır.

Bu yöntem çağrıldığında, bir Accessory ile karakterin e

Gereken Attachment bulunamıyorsa, Accessory ile insanoid'in ebeveyni olacak, ancak bağlantısı kesilecek.

Genellikle, aksesuar kaynakları sunucuda oluşturulur, ancak bazı durumlarda kaynakların yanında AddAccessory() olarak yaratılabilir. Bu durumlarda, kaynak yaratımişleminin istediği davranışı her zaman üretmeyebilir ve

Parametreler

accessory: Instance

Eklenecek Accessory var.


Dönüşler

void

Kod Örnekleri

[Humanoid] AddAccessory Example

local playerModel = script.Parent
local humanoid = playerModel:WaitForChild("Humanoid")
local clockworksShades = Instance.new("Accessory")
clockworksShades.Name = "ClockworksShades"
local handle = Instance.new("Part")
handle.Name = "Handle"
handle.Size = Vector3.new(1, 1.6, 1)
handle.Parent = clockworksShades
local faceFrontAttachment = Instance.new("Attachment")
faceFrontAttachment.Name = "FaceFrontAttachment"
faceFrontAttachment.Position = Vector3.new(0, -0.24, -0.45)
faceFrontAttachment.Parent = handle
local mesh = Instance.new("SpecialMesh")
mesh.Name = "Mesh"
mesh.Scale = Vector3.new(1, 1.3, 1)
mesh.MeshId = "rbxassetid://1577360"
mesh.TextureId = "rbxassetid://1577349"
mesh.Parent = handle
humanoid:AddAccessory(clockworksShades)

BuildRigFromAttachments

void

Bu yöntem, Motor6D ortaklarının bir ağacını oluşturur Humanoid için. Motor6D ortakları, oynatma için 1> Class.Animation|Animations1> için gereklidir.

Bu yöntem, insanoid'in RootPart 'inden başlayan insanoid'in tüm şu şekilde aileleri toplar: tüm şu şekilde aileler

Humanoid:BuildRigFromAttachments() ayrıca karakteri ölçer ve vücut rengini ayarlar.


Dönüşler

void

Kod Örnekleri

Lua Port of BuildRigFromAttachments

local function createJoint(jointName, att0, att1)
local part0, part1 = att0.Parent, att1.Parent
local newMotor = part1:FindFirstChild(jointName)
if not (newMotor and newMotor:IsA("Motor6D")) then
newMotor = Instance.new("Motor6D")
end
newMotor.Name = jointName
newMotor.Part0 = part0
newMotor.Part1 = part1
newMotor.C0 = att0.CFrame
newMotor.C1 = att1.CFrame
newMotor.Parent = part1
end
local function buildJointsFromAttachments(part, characterParts)
if not part then
return
end
-- first, loop thru all of the part's children to find attachments
for _, attachment in pairs(part:GetChildren()) do
if attachment:IsA("Attachment") then
-- only do joint build from "RigAttachments"
local attachmentName = attachment.Name
local findPos = attachmentName:find("RigAttachment")
if findPos then
-- also don't make double joints (there is the same named
-- rigattachment under two parts)
local jointName = attachmentName:sub(1, findPos - 1)
if not part:FindFirstChild(jointName) then
-- try to find other part with same rig attachment name
for _, characterPart in pairs(characterParts) do
if part ~= characterPart then
local matchingAttachment = characterPart:FindFirstChild(attachmentName)
if matchingAttachment and matchingAttachment:IsA("Attachment") then
createJoint(jointName, attachment, matchingAttachment)
buildJointsFromAttachments(characterPart, characterParts)
break
end
end
end
end
end
end
end
end
local function buildRigFromAttachments(humanoid)
local rootPart = humanoid.RootPart
assert(rootPart, "Humanoid has no HumanoidRootPart.")
local characterParts = {}
for _, descendant in ipairs(humanoid.Parent:GetDescendants()) do
if descendant:IsA("BasePart") then
table.insert(characterParts, descendant)
end
end
buildJointsFromAttachments(rootPart, characterParts)
end
local humanoid = script.Parent:WaitForChild("Humanoid")
buildRigFromAttachments(humanoid)
R15 Package Importer

local AssetService = game:GetService("AssetService")
local InsertService = game:GetService("InsertService")
local MarketplaceService = game:GetService("MarketplaceService")
local PACKAGE_ASSET_ID = 193700907 -- Circuit Breaker
local function addAttachment(part, name, position, orientation)
local attachment = Instance.new("Attachment")
attachment.Name = name
attachment.Parent = part
if position then
attachment.Position = position
end
if orientation then
attachment.Orientation = orientation
end
return attachment
end
local function createBaseCharacter()
local character = Instance.new("Model")
local humanoid = Instance.new("Humanoid")
humanoid.Parent = character
local rootPart = Instance.new("Part")
rootPart.Name = "HumanoidRootPart"
rootPart.Size = Vector3.new(2, 2, 1)
rootPart.Transparency = 1
rootPart.Parent = character
addAttachment(rootPart, "RootRigAttachment")
local head = Instance.new("Part")
head.Name = "Head"
head.Size = Vector3.new(2, 1, 1)
head.Parent = character
local headMesh = Instance.new("SpecialMesh")
headMesh.Scale = Vector3.new(1.25, 1.25, 1.25)
headMesh.MeshType = Enum.MeshType.Head
headMesh.Parent = head
local face = Instance.new("Decal")
face.Name = "face"
face.Texture = "rbxasset://textures/face.png"
face.Parent = head
addAttachment(head, "FaceCenterAttachment")
addAttachment(head, "FaceFrontAttachment", Vector3.new(0, 0, -0.6))
addAttachment(head, "HairAttachment", Vector3.new(0, 0.6, 0))
addAttachment(head, "HatAttachment", Vector3.new(0, 0.6, 0))
addAttachment(head, "NeckRigAttachment", Vector3.new(0, -0.5, 0))
return character, humanoid
end
local function createR15Package(packageAssetId)
local packageAssetInfo = MarketplaceService:GetProductInfo(packageAssetId)
local character, humanoid = createBaseCharacter()
character.Name = packageAssetInfo.Name
local assetIds = AssetService:GetAssetIdsForPackage(packageAssetId)
for _, assetId in pairs(assetIds) do
local limb = InsertService:LoadAsset(assetId)
local r15 = limb:FindFirstChild("R15")
if r15 then
for _, part in pairs(r15:GetChildren()) do
part.Parent = character
end
else
for _, child in pairs(limb:GetChildren()) do
child.Parent = character
end
end
end
humanoid:BuildRigFromAttachments()
return character
end
local r15Package = createR15Package(PACKAGE_ASSET_ID)
r15Package.Parent = workspace

ChangeState

void

Bu işlev, Humanoid 'in mevcut Enum.HumanoidStateType 'i girmesine neden olur, aktiviteyi açıklar Humanoid.

Lütfen özellikler için daha fazla bilgi için Enum.HumanoidStateType sayfasını gözden geçirin, bazılarının isimleri yanlıştır. Örneğin, Enum.HumanoidStateType.Running yer çekiminin ayağının yerinde olduğunu gösteren bir devlet tarif eder.

Class.Humanoid 'nin varsayılan davranışı nedeniyle bazı devletler otomatik olarak değiştirilecek. Örneğin:

Ayrıca bakın Humanoid:SetStateEnabled() ile bir özel devlet etkinleştirmek veya devre dışı bırakmak için ve Humanoid:GetState() ile güncel insan devletini al.

Parametreler

Class.Humanoid'in yapması gereken Humanoid ile yapılacak olan şey.

Varsayılan değer: "None"

Dönüşler

void

Kod Örnekleri

Double Jump

local UserInputService = game:GetService("UserInputService")
local character = script.Parent
local humanoid = character:WaitForChild("Humanoid")
local doubleJumpEnabled = false
humanoid.StateChanged:Connect(function(_oldState, newState)
if newState == Enum.HumanoidStateType.Jumping then
if not doubleJumpEnabled then
task.wait(0.2)
if humanoid:GetState() == Enum.HumanoidStateType.Freefall then
doubleJumpEnabled = true
end
end
elseif newState == Enum.HumanoidStateType.Landed then
doubleJumpEnabled = false
end
end)
UserInputService.InputBegan:Connect(function(inputObject)
if inputObject.KeyCode == Enum.KeyCode.Space then
if doubleJumpEnabled then
if humanoid:GetState() ~= Enum.HumanoidStateType.Jumping then
humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
task.spawn(function()
doubleJumpEnabled = false
end)
end
end
end
end)

EquipTool

void

Bu işlev, Humanoid 'i verilen Tool 'ı takılır.

Aşağıdaki örnek bir Player 'ın bir araç takmasına neden olur Workspace 'ın adındaki Araç'ı .


local Players = game:GetService("Players")
local player = Players:FindFirstChildOfClass("Player")
if player and player.Character then
local humanoid = player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
local tool = workspace:FindFirstChild("Tool")
if tool then
humanoid:EquipTool(tool)
end
end
end

Bu işlev çağrıldığında, insanoid'in mevcut olarak takılmış herhangi bir Tools otomatik olarak çıkarılacaktır

Onlar takılacak olsa da, Tools için Tool.RequiresHandle ile true işlevi yok olacaktır, bu işlevi takıpya da değil.

Ayrıca bakınız:

Parametreler

tool: Instance

Takmak için Tool .


Dönüşler

void

GetAccessories

Bu işlev, insanoid'in ebeveyninin şu anda giydiği Accessory nesnelerinin bir listesini döndürür. Tüm bu Accessory nesneleri, bağlantılı veya bağlantılı olmayan olarak dahil edilecektir.

Class.HumanoidAccessory nesne yoksa, boş bir matris döndürülür.

Ayrıca bir Humanoid:AddAccessory() ile bir Accessory ebeveynine bağlanır.


Dönüşler

Class.Accessory nesnelerinin humanoid'in ebeveyniyle ilgili bir matrisi.

Kod Örnekleri

Remove Accessories After Loading

local Players = game:GetService("Players")
local function onPlayerAddedAsync(player)
local connection = player.CharacterAppearanceLoaded:Connect(function(character)
-- All accessories have loaded at this point
local humanoid = character:FindFirstChildOfClass("Humanoid")
local numAccessories = #humanoid:GetAccessories()
print(("Destroying %d accessories for %s"):format(numAccessories, player.Name))
humanoid:RemoveAccessories()
end)
-- Make sure we disconnect our connection to the player after they leave
-- to allow the player to get garbage collected
player.AncestryChanged:Wait()
connection:Disconnect()
end
for _, player in Players:GetPlayers() do
task.spawn(onPlayerAddedAsync, player)
end
Players.PlayerAdded:Connect(onPlayerAddedAsync)

GetAppliedDescription

Bu işlev, insanoid'in önbelleğindeki kopyasını içerir HumanoidDescription , bu da onun mevcut görünümünü açıklar. Bu, bir karakterin görünümünü hızlı bir şekilde belirlemek ve görünümünü diğer karakterleri kullanarak atribu etmek için Humanoid:ApplyDescription() işlevini kullanarak kullanılabilir.

Ayrıca bakın


Dönüşler

GetBodyPartR15

Bu işlev, bir Enum.BodyPartR15 veya bir Part ile aynı şeyin içeriğini içerir veya bir Enum.BodyPartR15.Unknown ile bir parçanın R15 beden parçası olup olmadığını geri alabilir. Bu işlev, geliştiricilerin gerçek beden parçaları ismiyle ilgilenmeden

Class.Humanoid:ReplaceBodyPartR15 ile birlikte kullanılabilir. Örneğin, bir oyuncunun vücut parçası bir şeye dokunursa, bu işlev getirir bir parça instansı durum. Geliştiriciler daha sonra, oyuncunun vücut parçasının, örneğin, kafa veya kol gibi, ne olduğun

Bu işlev, önemli bir oyun için vurma konumunun önemli olduğu oyunlar için yararlı olabilir. Örneğin, bir oyuncunun bacağında vurulduğunu belirlemek ve ardından yaralara göre hızlandırmak için kullanılabilir.

Parametreler

part: Instance

R15 beden parçası olup olmadığını görmek için belirlenen parça kontrol ediliyor.


Dönüşler

Belirli parçanın R15 beden parçası türü veya parça bir beden parçası değilse bilinmiyor.

GetLimb

Bu işlev, Enum.Limb ile ilişkili verilen Part enümünü döndürür. R15 ve R6 konsolları için çalışır, örneğin:


-- R15 için
print(humanoid:GetLimb(character.LeftUpperLeg)) -- Enüm.Limb.LeftLeg
print(humanoid:GetLimb(character.LeftLowerLeg)) -- Enüm.Limb.LeftLeg
print(humanoid:GetLimb(character.LeftFoot)) -- Enüm.Limb.LeftLeg
-- R6 için
print(humanoid:GetLimb(character:FindFirstChild("Left Leg"))) -- Enum.Limb.LeftLeg

Parçanın ebeveyni insanoid'in ebeveyni olmayan durumda Humanoid:GetLimb() bir hata atar.

Parametreler

part: Instance

Class.Part için Enum.Limb alınacak.


Dönüşler

Enuym.Limb kısmına eşit.

Kod Örnekleri

Getting a Humanoid's Limbs

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
for _, child in pairs(character:GetChildren()) do
local limb = humanoid:GetLimb(child)
if limb ~= Enum.Limb.Unknown then
print(child.Name .. " is part of limb " .. limb.Name)
end
end

GetMoveVelocity


Dönüşler

Paralel yaz

Bu işlev, insanoid'in mevcut Enum.HumanoidStateType ını geri döndürür, atlamak veya yüzmek gibi aktiviteyi açıklar.

Ayrıca bakın Humanoid:SetStateEnabled() ile bir özel devlet etkinleştirmek veya devre dışı bırakmak için ve Humanoid:ChangeState() ile mevcut humanoid devletini değiştirmek.


Dönüşler

Class.Humanoid HumanoidEnüm Kafatası Devleti 1>Enüm Kafatası Devleti1> 4>Enüm Kafatası Devleti4> 7>Enüm Kafatası Devleti7> 0>Enüm Kafatası Devleti0> 3>Enüm Kafatası Devleti3> 6>Enüm Kafatası Devleti6> Enum.HumanoidStateType9> 2>Enü

Kod Örnekleri

Double Jump

local UserInputService = game:GetService("UserInputService")
local character = script.Parent
local humanoid = character:WaitForChild("Humanoid")
local doubleJumpEnabled = false
humanoid.StateChanged:Connect(function(_oldState, newState)
if newState == Enum.HumanoidStateType.Jumping then
if not doubleJumpEnabled then
task.wait(0.2)
if humanoid:GetState() == Enum.HumanoidStateType.Freefall then
doubleJumpEnabled = true
end
end
elseif newState == Enum.HumanoidStateType.Landed then
doubleJumpEnabled = false
end
end)
UserInputService.InputBegan:Connect(function(inputObject)
if inputObject.KeyCode == Enum.KeyCode.Space then
if doubleJumpEnabled then
if humanoid:GetState() ~= Enum.HumanoidStateType.Jumping then
humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
task.spawn(function()
doubleJumpEnabled = false
end)
end
end
end
end)

GetStateEnabled

Paralel yaz

GetStateEnabled işlevi, bir Enum.HumanoidStateType için Humanoid olup olmadığını döndürür.

İnsanoid durumu, insanoid'in şu anda yaptığı aktiviteyi açıklar.

Belirli bir Enum.HumanoidStateType silinirse, insanoid asla bu durumu giremez. Bu Roblox içerik değiştirme denemesi kullanılarak yapılırsa veya Roblox içerik kodu kullanılarak yapılırsa geçerlidir.

Ayrıca bakınız:

Parametreler


Dönüşler

Verilen Enum.HumanoidStateType aktifleştirilmiş olup olmadığı.

Kod Örnekleri

Setting and Getting Humanoid States

local humanoid = script.Parent:WaitForChild("Humanoid")
-- Set state
humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, false)
-- Get state
print(humanoid:GetStateEnabled(Enum.HumanoidStateType.Jumping)) -- false

Move

void

Bu işlev, Humanoid 'ın verilen Vector3 yönünde yürümesine neden olur.

Varsayılan olarak, yön dünya koşullaryer alır, ancak relativeToCamera parametresi true ise, yön CFrame of the 2> Class.Workspace.CurrentCamera|CurrentCamera


humanoid:Move(Vector3.new(0, 0, -1), true)

Bu işlev çağrıldığında, Humanoid işlevi, işlev tekrar çağrılana kadar hareket edecektir. Ancak, varsayılan kontrol kayıtları kullanılıyorsa, işlev Characters içinde yeniden çağrıldığında y

Bu işlev sunucuda çağrılabilir, ancak bunu sadece sunucunun insanoid'in yapımının ağ sahibi olması durumunda yapmalısınız.

Ayrıca bakınız Humanoid:MoveTo() , bir Humanoidyı bir noktaya yürüyecek ve Player:Move() , bu işlevi etkin bir şekilde çağırır.

Parametreler

moveDirection: Vector3

Yürüyeceğin yön.

relativeToCamera: bool

moveDirection parametresi moveDirection ile ilgili olarak kullanılmalıdır.

Varsayılan değer: false

Dönüşler

void

Kod Örnekleri

Moving a Humanoid Forwards

local RunService = game:GetService("RunService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
RunService:BindToRenderStep("move", Enum.RenderPriority.Character.Value + 1, function()
if player.Character then
local humanoid = player.Character:FindFirstChild("Humanoid")
if humanoid then
humanoid:Move(Vector3.new(0, 0, -1), true)
end
end
end)

MoveTo

void

Bu işlev, Humanoid 'in Humanoid.WalkToPoint ve Humanoid.WalkToPart özelliklerini ayarlayarak verilen yere yürümeye çalışmasını sağlar.

Yer ve Parça parametreleri, Humanoid.WalkToPoint ve 1>Class.Humanoid.WalkToPart1> ile ayarlanacak.

Eğer parça parametresi belirtilmişse, Humanoid hala noktaya yürümeye çalışacaktır. Ancak, eğer hareket ederse, Humanoid hala noktaya yürümeye çalış

Bir insanoid'in hedefe ulaşması durumunda, hedefine ulaşmazsa 8 saniye içinde sonlanır. Bu, NPC'lerin Humanoid.MoveToFinished başlatılmasını beklemesi için tekrar MoveTo çağrılır. Eğer bunun olmasını istemezseniz, MoveTo'yu tekrar çağırmanız gerekir

MoveTo() şu koşullardan herhangi biri uygulanırsa sona erer:

Parametreler

location: Vector3

Class.Humanoid.WalkToPoint ile ilgili pozisyon ayarlanır.

part: Instance
Varsayılan değer: "nil"

Dönüşler

void

Kod Örnekleri

Humanoid MoveTo Without Time out

local function moveTo(humanoid, targetPoint, andThen)
local targetReached = false
-- listen for the humanoid reaching its target
local connection
connection = humanoid.MoveToFinished:Connect(function(reached)
targetReached = true
connection:Disconnect()
connection = nil
if andThen then
andThen(reached)
end
end)
-- start walking
humanoid:MoveTo(targetPoint)
-- execute on a new thread so as to not yield function
task.spawn(function()
while not targetReached do
-- does the humanoid still exist?
if not (humanoid and humanoid.Parent) then
break
end
-- has the target changed?
if humanoid.WalkToPoint ~= targetPoint then
break
end
-- refresh the timeout
humanoid:MoveTo(targetPoint)
task.wait(6)
end
-- disconnect the connection if it is still connected
if connection then
connection:Disconnect()
connection = nil
end
end)
end
local function andThen(reached)
print((reached and "Destination reached!") or "Failed to reach destination!")
end
moveTo(script.Parent:WaitForChild("Humanoid"), Vector3.new(50, 0, 50), andThen)

RemoveAccessories

void

Bu işlev, insanoid'in ebeveyni tarafından giyilen tüm Accessory nesneleri kaldırır. Oyuncu Characters için, bu şapkaları ve diğer aksesuarları kaldırır.

Bu işlev, Accessory nesneleri Instance:Destroy() çağırarak ortadan kaldırır, yani aksesuarların Parent nesilleri 2> nil2> ve kilitli olacaktır.

Ayrıca, bir Humanoid:AddAccessory() ile bir Accessory ve tüm Humanoid:GetAccessories() nesillerine sahip olabilirsiniz.


Dönüşler

void

Kod Örnekleri

Remove Accessories After Loading

local Players = game:GetService("Players")
local function onPlayerAddedAsync(player)
local connection = player.CharacterAppearanceLoaded:Connect(function(character)
-- All accessories have loaded at this point
local humanoid = character:FindFirstChildOfClass("Humanoid")
local numAccessories = #humanoid:GetAccessories()
print(("Destroying %d accessories for %s"):format(numAccessories, player.Name))
humanoid:RemoveAccessories()
end)
-- Make sure we disconnect our connection to the player after they leave
-- to allow the player to get garbage collected
player.AncestryChanged:Wait()
connection:Disconnect()
end
for _, player in Players:GetPlayers() do
task.spawn(onPlayerAddedAsync, player)
end
Players.PlayerAdded:Connect(onPlayerAddedAsync)

ReplaceBodyPartR15

Humanoid'deki bir R15/Rthro kuvvetli parçasını farklı bir parça ile dinamik olarak değiştirir. Parça normal olarak ölçeklenir.

Bu işlev, oyun sırasında karakterleri değiştirmek veya bir temel rütbe üzerinden karakterleri oluşturmak için kullanfultur. İlişkili işlev GetBodyPartR15 bu işlevi kullanırken yararlı olabilir.

Geçen parçanın ismi, Geçen BodyPartR15 Enum'in ismiyle eşleşmelidir.

Parametreler

Değiştirilecek beden bölümü. Enum.BodyPartR15.Unknown başarısız olacak.

part: BasePart

Karaktere ebeveyn olacak Class.Part``Class.Instance


Dönüşler

SetStateEnabled

void

Bu işlev, Class.Humanoid ile ilgili bir еньu Enu Class.Humanoid için 2>Enu2> 5>Class.Humanoid5> ile etkinleştirilip etkinleş

Sunucuda SetStateEnabled() kullanılıyor olması, değişikliği klientte de yeniden oluşturmaz, nori de aksine.

Parametreler

Enüm.HumanoidStateType etkinleştirilecek veya devre dışı bırakılacak.

enabled: bool

true if state aktifleştirilmesi planlanıyorsa, false if 0> state0> deaktifleştirilmesi planlanıyorsa.


Dönüşler

void

Kod Örnekleri

Jump Cooldown

local character = script.Parent
local JUMP_DEBOUNCE = 1
local humanoid = character:WaitForChild("Humanoid")
local isJumping = false
humanoid.StateChanged:Connect(function(_oldState, newState)
if newState == Enum.HumanoidStateType.Jumping then
if not isJumping then
isJumping = true
humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, false)
end
elseif newState == Enum.HumanoidStateType.Landed then
if isJumping then
isJumping = false
task.wait(JUMP_DEBOUNCE)
humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, true)
end
end
end)

TakeDamage

void

Bu işlev, Humanoid.Health 'in Humanoid sağladığı number miktarını azaltır, koruma altında değilse 2>Class.ForceField2>

Bu işlev, sayı parametresi için negatif değerleri kabul eder. Bu, insanoid'in Humanoid.Health . Ancak bu sadece insanoid'in ForceField yoksa etkisi olacaktır.

ForceFields, TakeDamage'a karşı nasıl korunur

Bir Humanoid koruma altına alınır bir ForceField if a ForceField1>Class.Humanoid1> ile aynı kriterlerden biriyle uyumludur:

  • Class.ForceField aynı Instance.Parent ile paylaşır Humanoid
  • Class.ForceField Class.Humanoid.RootPart</Class.Humanoid> ile ebeveynliği vardır
  • Class.ForceField bir önceki ile aynı kökenlidir; Humanoid ile ilgili diğer şeyler ise Workspace ile ilgilidir

Herhangi bir Humanoid mevcut olup olmadığına bağlı olarak hasar vermek için, ForceFields doğrudan ayarlanmıştır.

For more information on how ForceFields protect Humanoids see the ForceField page

Parametreler

amount: number

Hasar, Humanoid.Health 'den çıkarılacak miktar.


Dönüşler

void

Kod Örnekleri

Damaging a Humanoid

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
humanoid:TakeDamage(99)

UnequipTools

void

Bu işlev, Tool adlı oyunun sahip olduğu herhangi bir Humanoid siler

Takılmayan Class.Tool``Class.Backpack``Class.Player ile ilişkili 1> Class.Humanoid1> ile ebeveyn olacak.

Eğer Tool yoksa, bu işlev hiçbir şey yapmaz.

NPC'ler (Non Player Characters) tarafından donatılabilir Tools , ancak bu işlev sadece Humanoids ile ilgili bir Player ile çalışır. Bu, bir 1> Class.Backpack1> nesneyi ebeveyn ol

Ayrıca bakınız:


Dönüşler

void

Kod Örnekleri

Unequip Tool Keybind

local Players = game:GetService("Players")
local ContextActionService = game:GetService("ContextActionService")
local player = Players.LocalPlayer
ContextActionService:BindAction("unequipTools", function(_, userInputState)
if userInputState == Enum.UserInputState.Begin then
if player.Character then
local humanoid = player.Character:FindFirstChildOfClass("Humanoid")
if humanoid then
humanoid:UnequipTools()
end
end
end
end, false, Enum.KeyCode.U)

ApplyDescription

void
Bekletir

Bu veren işlev, karakterin HumanoidDescription ile eşleşen görünümünü sağlar. Bir HumanoidDescription ın kopyası, HumanoidDescription olarak geçici olarak 2> Class.HumanoidDescription2> için kaydedilir.

Bu işlev, sadece bu işlevin karakterin görünümünü değiştirmek için kullanıldığını varsayarak optimize edilmiştir, ve diğer yollarla arasında herhangi bir değişiklik yapılmaz. Eğer değişik

Ayrıca bakın

Parametreler

humanoidDescription: HumanoidDescription

Karakterle eşleştirmek istediğiniz HumanoidDescription Instancesi.

assetTypeVerification: Enum.AssetTypeVerification
Varsayılan değer: "Default"

Dönüşler

void

ApplyDescriptionReset

void
Bekletir

Bu veren işlev, karakterin HumanoidDescription ile eşleşmesini sağlar, hatta dış değişikliklerden sonra bile. Bir HumanoidDescription kopyası, HumanoidDescription için geçersiz değişikliklerden sonra kache edilir.

Bu işlev, karakterin HumanoidDescription sistemini kullanmad

Parametreler

humanoidDescription: HumanoidDescription

Karakterle eşleştirmek istediğiniz HumanoidDescription instansı.

assetTypeVerification: Enum.AssetTypeVerification
Varsayılan değer: "Default"

Dönüşler

void

PlayEmote

Bekletir

EmoteName HumanoidDescription'ta bulunamadığı için emote oynanamadıysa, bu API bir hata verecek. API, emote'nin başarıyla oynandığını göstermek için gerçekten true değerini iade edecek.

Parametreler

emoteName: string

oynaiçi emote'nin adı.


Dönüşler

başarıyla oynandı.

Etkinlikler

ApplyDescriptionFinished

Parametreler

description: HumanoidDescription

Climbing

Bir Humanoid tırmanırken hız değişirken ateş eder.

Humanoids can climb up ladders made out of Parts or TrussParts .

Humanoids tırmanma yüzde 70'lik Humanoid.WalkSpeed 'ında.

Bu etkinlik, Humanoid tırmanmayı durdurduğunda hızlı bir şekilde 0 ile yanmayacak.

Ayrıca bakınız:

Parametreler

speed: number

Humanoid 'in şu anda tırmanıyor olduğu hız.


Kod Örnekleri

Humanoid.Climbing

local Players = game:GetService("Players")
local function onCharacterClimbing(character, speed)
print(character.Name, "is climbing at a speed of", speed, "studs / second.")
end
local function onCharacterAdded(character)
character.Humanoid.Climbing:Connect(function(speed)
onCharacterClimbing(character, speed)
end)
end
local function onPlayerAdded(player)
player.CharacterAdded:Connect(onCharacterAdded)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Died

Bu olay, Humanoid öldüğünde çalışır, genellikle Humanoid.Health 0'a ulaştığında. Bu, kafalarından koparılmasıyla veya doğrudan sağlık özelliği ayarlanmasıyla olabilir.

Bu etkinlik sadece Class.Humanoid``Class.Workspace ın bir yokluğundan değil, Dead ın bir yokluğundan bir yokluğundan bir yokluğundan bir yokluğundan bir yokluğundan bir yokluğundan bir yokluğundan bir yokluğundan bir yokluğundan bir yokluğundan bir yokluğundan bir yokluğundan b


Kod Örnekleri

Humanoid.Died

local Players = game:GetService("Players")
local function onPlayerAdded(player)
local function onCharacterAdded(character)
local humanoid = character:WaitForChild("Humanoid")
local function onDied()
print(player.Name, "has died!")
end
humanoid.Died:Connect(onDied)
end
player.CharacterAdded:Connect(onCharacterAdded)
end
Players.PlayerAdded:Connect(onPlayerAdded)

FallingDown

DüşenDown etkinliği, Humanoid girdiğinde ve FallingDown ayrıldığında başlar ve Enum.HumanoidStateType girer.

The Humanoid will enter the GettingUp state 3 seconds after the FallingDown state is enabled. When this happens this event will fire with an 1> active1> value of 4> false4> , and 7> Class.

Parametreler

active: bool

Class.Humanoid ın FallingDown``Enum.HumanoidStateType girmesi veya ayrılmasını açıklar.


FreeFalling

Bu olay, Class.Humanoid``Freefall``Enum.HumanoidStateType1>HumanoidStateType1> girdiğinde veya ayrıldığında ateş edilir.

Aktif özellik parametresi, Humanoid'in Freefall devletine girdiğini veya ayrıldığını temsil eder.

Class.Humanoid devleti genellikle devletin Humanoid ulaştığında sona erdiğinde sona eriyor, ancak bu etkinliği

Parametreler

active: bool

Class.HumanoidFreefall``Enum.HumanoidStateType 1>1>


GettingUp

Bu etkinlik, Humanoid ile Enum.HumanoidStateType.GettingUp devleti arasında bir geçiş devleti etkinleştirilir, bir geçiş devleti, kısa bir süre sonra Class.Humanoid

Bir Humanoid tekrar yükseltmeye çalıştığında, bu olay ilk olarak active değerinde bir true ile yeniden yükseltmeyi deneyecek, ardından 2>force2> değerinde bir 5>new5> ile yeniden yükseltmeyi deneyecek.

Bir Humanoid ı düşürmek zorunda kalmak için, Humanoid:ChangeState() ile Enum.HumanoidStateType.FallingDown işlevini kullanın.

Parametreler

active: bool

Class.Humanoid Class.HumanoidStateType GettingUp``Enum.HumanoidStateType 1>Enuem.Humanoid1> 4>Class.Humanoid4> 7>Class.Humanoid7> 0>Class.Humanoid0> 3>Class.Humanoid3> 6>Class.Humanoid6> Humanoid9> Humanoid2> 5>Class.Humanoid5>


HealthChanged

Bu olay, Humanoid.Health değiştirildiğinde başlar. Ancak, sağlık Humanoid.MaxHealth 'den daha büyükse olay başlatılmaz.

Class.Humanoid.Health 0'a ulaştığında, Humanoid ölür ve Humanoid.Died etkinliği başlar. Bu etkinlik, sıfır değerinde yanar.

Parametreler

health: number

Yeni değer Humanoid.Health .


Kod Örnekleri

Humanoid.HealthChanged

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local function onCharacterAdded(character)
local humanoid = character:WaitForChild("Humanoid")
local currentHealth = humanoid.Health
local function onHealthChanged(health)
local change = math.abs(currentHealth - health)
print("The humanoid's health", (currentHealth > health and "decreased by" or "increased by"), change)
currentHealth = health
end
humanoid.HealthChanged:Connect(onHealthChanged)
end
player.CharacterAdded:Connect(onCharacterAdded)
Health Bar

local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Paste script into a LocalScript that is
-- parented to a Frame within a Frame
local frame = script.Parent
local container = frame.Parent
container.BackgroundColor3 = Color3.new(0, 0, 0) -- black
-- This function is called when the humanoid's health changes
local function onHealthChanged()
local human = player.Character.Humanoid
local percent = human.Health / human.MaxHealth
-- Change the size of the inner bar
frame.Size = UDim2.new(percent, 0, 1, 0)
-- Change the color of the health bar
if percent < 0.1 then
frame.BackgroundColor3 = Color3.new(1, 0, 0) -- black
elseif percent < 0.4 then
frame.BackgroundColor3 = Color3.new(1, 1, 0) -- yellow
else
frame.BackgroundColor3 = Color3.new(0, 1, 0) -- green
end
end
-- This function runs is called the player spawns in
local function onCharacterAdded(character)
local human = character:WaitForChild("Humanoid")
-- Pattern: update once now, then any time the health changes
human.HealthChanged:Connect(onHealthChanged)
onHealthChanged()
end
-- Connect our spawn listener; call it if already spawned
player.CharacterAdded:Connect(onCharacterAdded)
if player.Character then
onCharacterAdded(player.Character)
end

Jumping

Bu olay, Humanoid girip Jumping``Enum.HumanoidStateType'den ayrıldığında oluşur.

Bir Humanoid zıpladığında, bu olay bir active özelliği kullanarak true

Class.Humanoid:SetStateEnabled() işlevini kullanarak zıplamayı devre dışı bırakabilirsiniz.

Parametreler

active: bool

Class.Humanoid Jumping``Enum.HumanoidStateType 1>Class.HumanoidState1> 4>Class.Humanoid4> 7>Class.Humanoid7> 0>Class.Humanoid0> 3>Class.Humanoid3> 6>Class.Humanoid6> Humanoid9> 2>Class.Humanoid2> 5>Class.Humanoid5> Humanoid8> 1>Class.


MoveToFinished

Bu etkinlik, Humanoid adlı kişinin bir hedefi belirten Humanoid.WalkToPoint ve Humanoid.WalkToPart özelliklerine yürüdüğünde çalışır.

Class.Humanoid.WalkToPoint ve Humanoid.WalkToPart özellikleri tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek tek

Eğer Humanoid hedefine 8 saniye içinde ulaşırsa, bu olay ulaşıldığına doğru olarak dönecektir. Eğer hedef 8 saniye içinde ulaşılmazsa 1> 2> Class.Humanoid:MoveTo()2> yür

Parametreler

reached: bool

Bir Class.Humanoid Humanoid ile hedefe ulaşıldığını gösteren bir boBoolean. doğru if the Class.Humanoid Humanoid ulaşıldığında, 2>yanlış2> if the walk timed out before the goal could be reached.


Kod Örnekleri

Humanoid MoveTo Without Time out

local function moveTo(humanoid, targetPoint, andThen)
local targetReached = false
-- listen for the humanoid reaching its target
local connection
connection = humanoid.MoveToFinished:Connect(function(reached)
targetReached = true
connection:Disconnect()
connection = nil
if andThen then
andThen(reached)
end
end)
-- start walking
humanoid:MoveTo(targetPoint)
-- execute on a new thread so as to not yield function
task.spawn(function()
while not targetReached do
-- does the humanoid still exist?
if not (humanoid and humanoid.Parent) then
break
end
-- has the target changed?
if humanoid.WalkToPoint ~= targetPoint then
break
end
-- refresh the timeout
humanoid:MoveTo(targetPoint)
task.wait(6)
end
-- disconnect the connection if it is still connected
if connection then
connection:Disconnect()
connection = nil
end
end)
end
local function andThen(reached)
print((reached and "Destination reached!") or "Failed to reach destination!")
end
moveTo(script.Parent:WaitForChild("Humanoid"), Vector3.new(50, 0, 50), andThen)

PlatformStanding

Bu olay, Humanoid adlı oyunun giripya dağıldığında başlar. PlatformStanding``Enum.HumanoidStateType

Class.Humanoid öğesi PlatformStanding devletindeyken, Humanoid.PlatformStand özelliği 1>doğru1> olacaktır.

Class.Humanoid.PlatformStanddoğru olarak ayarlandığında, Humanoid hareket edemez. For more information, please see the page for 1> Class.Humanoid.PlatformStand1> .

PlatformStand Enum.HumanoidStateType ile ilişkilendi. Buna rağmen, geliştiriciler tarafından hala kullanılabilir.

Parametreler

active: bool

Class.Humanoid PlatformStanding PlatformStanding Class.HumanoidStateType</Class.Humanoid> PlatformStanding``Enum.HumanoidStateType 1>1> 4>4> 7>7> 0>0> 3>3> 6>6> Humanoid9> 2>2> 5>5> Humanoid8> 1>1> 4>4> 7>7> 9>9>


Ragdoll

Bu olay, Class.Humanoid``Ragdoll``Enum.HumanoidStateType girdiğinde veya ayrıldığında ateş edilir.

Giriş veya ayrılma işaretlemesi için <a href="/reference/engine/datatypes">active</a> özelliğinin değeri <a href="/reference/engine/datatypes">true</a> veya <a href="/reference/engine/datatypes">force</a> olmalıdır.

Ragdoll devletinde kalmak için Humanoid:SetStateEnabled() kullanın.

Ayrıca bakınız:

Parametreler

active: bool

Class.Humanoid Ragdoll Enum Ragdoll``Enum.HumanoidStateType 1>Class.Humanoid1> 4>Class.Humanoid4> 7>Class.Humanoid7> 0>Class.Humanoid0> 3>Class.Humanoid3> 6>Class.Humanoid6> Humanoid9> 2>Class.Humanoid2> 5>Class.Humanoid5> 8>Class


Running

Bu etkinlik, bir Humanoid'nin değişiklikleri yapma hızında patlar.

Class.Humanoid|Humanoids kaplamalarını çalıştırırken, ortalama olarak onların Humanoid.WalkSpeed'i her saniyede stud başına.

Class.Humanoid bu etkinliği durdurduğunda bu olayı 0 hızıyla başlatır.

Ayrıca bakınız:

Parametreler

speed: number

Humanoid 'in çalıştığı hız.


Kod Örnekleri

Humanoid Running

local Players = game:GetService("Players")
local localPlayer = Players.LocalPlayer
local character = localPlayer.Character or localPlayer.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local function onRunning(speed: number)
if speed > 0 then
print(`{localPlayer.Name} is running`)
else
print(`{localPlayer.Name} has stopped`)
end
end
humanoid.Running:Connect(function(speed: number)
onRunning(speed)
end)

Seated

Bu olay, bir Humanoid ın oturduğu veya kalktığı bir Seat veya VehicleSeat ile bağlantısı kurulduğunda çalışır.

Bir karakter bir koltuğa temas ettiğinde, koltuğa bağlanır ve bir oturma animasyonu oynar. Bu konuda daha fazla bilgi için Seat sayfasını görün.

  • Karakter oturuyorsa, active parametresi doğru olacak ve currentSeatPart oturduğu koltuk olacaktır.
  • Karakter bir koltuktan kalktıysa, active parametri 1>currentSeatPart1> ile sıfırlanır ve 4>currentSeatPart4> ile sıfırlanır.

Ayrıca bakınız:

  • Humanoid.Sit , bir Humanoid'in şu anda oturduğunu gösterir
  • Humanoid.SeatPart , bir Humanoid'in şu anda oturduğu koltuğu gösterir, varsa.

Parametreler

active: bool

Gerçek if the Humanoid oturuyorsa.

currentSeatPart: BasePart

Oturuyorsa Humanoid oturduğu yere oturur.


Kod Örnekleri

Finding a Player's Seat

local character = script.Parent
local humanoid = character:WaitForChild("Humanoid")
local function onSeated(isSeated, seat)
if isSeated then
print("I'm now sitting on: " .. seat.Name .. "!")
else
print("I'm not sitting on anything")
end
end
humanoid.Seated:Connect(onSeated)

StateChanged

Bu olay, Humanoid 'in devleti değiştirildiğinde başlar.

Boş boşta durmaolmayan bir insanoid durumu yoktur, bunun yerine Humanoid.Running etkinliğini kullanmalısınız veya RootPart bölümünün Velocity 'ini dinlemelisiniz, böylece 2> Class.H

Ayrıca bakın

Parametreler

Humanoid'in önceki devlet yaz.

Humanoid'in mevcut devlet yaz.


Kod Örnekleri

Jumping Particles

local character = script.Parent
local primaryPart = character.PrimaryPart
-- create particles
local particles = Instance.new("ParticleEmitter")
particles.Size = NumberSequence.new(1)
particles.Transparency = NumberSequence.new(0, 1)
particles.Acceleration = Vector3.new(0, -10, 0)
particles.Lifetime = NumberRange.new(1)
particles.Rate = 20
particles.EmissionDirection = Enum.NormalId.Back
particles.Enabled = false
particles.Parent = primaryPart
local humanoid = character:WaitForChild("Humanoid")
local isJumping = false
-- listen to humanoid state
local function onStateChanged(_oldState, newState)
if newState == Enum.HumanoidStateType.Jumping then
if not isJumping then
isJumping = true
particles.Enabled = true
end
elseif newState == Enum.HumanoidStateType.Landed then
if isJumping then
isJumping = false
particles.Enabled = false
end
end
end
humanoid.StateChanged:Connect(onStateChanged)
Jump Cooldown

local character = script.Parent
local JUMP_DEBOUNCE = 1
local humanoid = character:WaitForChild("Humanoid")
local isJumping = false
humanoid.StateChanged:Connect(function(_oldState, newState)
if newState == Enum.HumanoidStateType.Jumping then
if not isJumping then
isJumping = true
humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, false)
end
elseif newState == Enum.HumanoidStateType.Landed then
if isJumping then
isJumping = false
task.wait(JUMP_DEBOUNCE)
humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, true)
end
end
end)

StateEnabledChanged

StateEnableChanged etkinliği, Class.Humanoid:SetStateEnabled()``Class.Humanoid üzerinde çağrıldığında başlar.

Değerler, bu devletin şimdi etkinleştirilip etkinleştirilmediğini gösteren bir boole eklenir.

Ayrıca bakınız:

Parametreler

Etkinleştirilen devletin değiştirildiği Enum.HumanoidStateType için.

isEnabled: bool

Eyalet artık etkinleştirilmişse doğrudur.


Kod Örnekleri

Humanoid State Change Detector

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local function onStateEnabledChanged(state, enabled)
if enabled then
print(state.Name .. " has been enabled")
else
print(state.Name .. " has been disabled")
end
end
humanoid.StateEnabledChanged:Connect(onStateEnabledChanged)

Strafing

Bu olay, Humanoid ın bombaladığında ateşlenmez ve geliştiriciler tarafından kullanılmamalıdır

Bu etkinlik, Humanoid girdiğinde veya ayrıldığında StrafingNoPhysics``Enum.HumanoidStateType girdiğinde başlar.

Bu olay, Class.Humanoid``StrafingNoPhysics devletine girdiğinde bu etkinliği bir aktif değerinde 2>gerçek2> ile başlatır. Etkinliği bir 5>aktif5>

Bu etkinlik, StrafingNoPhysics``Class.Humanoid devletiyle ilişkili ve yönlendiği yöne doğru hareket ettiğinde hareket etmez durumda. Bu devlet şu anda kullanılmaz, eğ

Parametreler

active: bool

Class.HumanoidStrafingNoPhysics``Enum.HumanoidStateType girmesi veya ayrılması gerekir.


Swimming

Bu olay, bir Humanoid ın su değiştirildiğinde yüzme hızında değişiklik olduğunda başlar.

Humanoids yüzme 87.5%'lik Humanoid.WalkSpeed 'ında.

Bu olay, Humanoid yüzmeyi bıraktığında hızlı bir şekilde 0 ile yanmayacak.

Ayrıca bakınız:

Parametreler

speed: number

Class.Humanoidnın şu anda yüzdüğü hız.


Touched

Bu olay, bir insanoid'in bir limbini başka bir BasePart ile temas ettiğinde başlar. Limb'in dokunulduğu, limb'in kendisiyle birlikte verilen BasePart verilir.

Bu olay, Humanoid olmayan uzuvlarla temas kurulduğunda çalışmaz.

Alternatifler

Class.Humanoid.Touched etkinliği yararlı olmasına rağmen, ihtiyaçlarınıza daha iyi uyan alternatifler olup olmadığını düşünmelisiniz.

  • Çoğu durumda, ilgili <a href="/reference/engine/databases">Class.Humanoid.Touched</a> kaynağı yerine, ilgili <a href="/reference/databases">Class.BasePart|BaseParts</a> kaynağına bağlanması
  • Class.Humanoid ile yer üzerine çalışmaya çalışırken, Humanoid.StateChanged etkinliği daha uygun. Alternatif olarak, Humanoid.FloorMaterial ile insanoid'in herhangi bir hava malzemesinde olup olmadığını kontrol edebilirsiniz.

Notlar

Parametreler

touchingPart: BasePart

Class.BasePartHumanoid ile temas kurdu.

humanoidPart: BasePart

Dokunulan Humanoid limbı.


Kod Örnekleri

Midas Touch

local character = script.Parent
local humanoid = character:WaitForChild("Humanoid")
local partInfo = {}
local debounce = false
local function onHumanoidTouched(hit, _limb)
if debounce then
return
end
if not hit.CanCollide or hit.Transparency ~= 0 then
return
end
if not partInfo[hit] then
partInfo[hit] = {
BrickColor = hit.BrickColor,
Material = hit.Material,
}
hit.BrickColor = BrickColor.new("Gold")
hit.Material = Enum.Material.Ice
debounce = true
task.wait(0.2)
debounce = false
end
end
local touchedConnection = humanoid.Touched:Connect(onHumanoidTouched)
local function onHumanoidDied()
if touchedConnection then
touchedConnection:Disconnect()
end
-- undo all of the gold
for part, info in pairs(partInfo) do
if part and part.Parent then
part.BrickColor = info.BrickColor
part.Material = info.Material
end
end
end
humanoid.Died:Connect(onHumanoidDied)