Humanoid
*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
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
Karakterin bir mobil cihazda bir engelden etkili bir şekilde atlayıp atlamayacağını ayarlar.
AutoRotate, Humanoid'in hareket ettirdiği yönde otomatik olarak döneceğini ayarlar.
Etkinleştirildiğinde, AutomaticScalingEnabled, karakterin boyutunu, humanoid'in çocuk ölçek değerleri değiştiği yanıt olarak değiştirir.
İnsanoid'in bileşiklerinin Enum.HumanoidStateType.Dead devletinde kırılıp kırılmadığını belirler.
Kamera'nın konu pozisyonuna uygulanan bir ofset, KameraSubject'i bu Humanoid'e ayarladığında.
Humanoid'in ismi ve sağlık gösterisinin mesafe davranışını kontrol eder.
Kafalarının üzerinde görüntülenen bir Humanoid'in metnini ayarlar.
Class.Humanoid olarak adlandırılan şu anda Humanoid üzerinde duran Humanoidyı açıklar. Eğer 1> EnGenYaşa1> hiçbir yerde durmuyorsa, bu özelliğin değeri 4>Hava4> olacaktır.
Menzildeki Humanoid'in mevcut sağlığını açıklar [0, Humanoid.MaxHealth].
Class.Humanoid.DisplayDistanceType|DisplayDistanceType özelliği ile birleştirilmiş olarak kullanılır topların sağlık çubuğunun görülebildiği mesafeyi kontrol etmek için.
Humanoid'in sağlık çubuğunun gösterilebilmesi için kontroller.
Humanoid.RootPart 'in yerden kaçınması gereken mesafeyi belirler.
Eğer true , Humanoid , yukarı bir güçle zıplar.
Class.Humanoid atlamalarının yüksekliğine kontrol sağlar.
Zıplarken Humanoid 'e kaç kadar yukarı gücü uygulanacağını belirler.
Bir insanoid'in Health 'i maksimum değeri.
Bir insanoid'in kaybetmeden yürüyebileceği maksimum eğilme açısı.
Class.Humanoid 'in yürüdüğü yönü açıklar.
Bir insanoid'in isminin görülebildiği mesafeyi kontrol etmek için Humanoid.DisplayDistanceType özelliği ile bir kombinasyon kullanılır.
Bir humanoid'in isminin ve sağlık çubuğunun duvarlar veya diğer nesnelerin arkasında görülebilirip görülemeyeceğini kontrol eder.
Class.Humanoid ın mevcut olup olmadığını Enum.HumanoidStateType.PlatformStanding devletinde belirler.
Neck Motor6D ın kaldırıldığı veya bağlantısının kesildiğinde oyuncunun ölmesi gibi davranışın devre dışı bırakılmasına izin verir.
Bu Humanoid ın miras R6 karakteri yapısını kullanıyor olup olmadığını açıklar.
Humanoid'in HumanoidRootPart nesneye bir referans.
Eğer varsa bir Humanoid ile ilgili koltuğa bir referans.
Class.Humanoid ın şu anda oturduğunu veya oturmadığını açıklar.
Dünyanın herhangi bir yerinde kontrol edilen Player ile sonra dünyayı kontrol eden Humanoid arasındaki 3D pozisyonun açıklamasını içerir.
Class.Humanoid.JumpHeight|JumpHeight (yanlış) veya Humanoid.JumpPower (doğru) özelliğinin kullanıldığını belirler.
İnsanoid'in maksimum hızını her saniye başına stud olarak açıklar.
Bir insanoid tarafından ulaşılmaya çalışılan bir parçanın pozisyonuna bir referans.
Bir insanoid'in ulaşmaya çalıştığı pozisyon, Humanoid:MoveTo() çağrısından sonra yapılır.
Yöntemler
Eşdeğer Accessory ile insanoidin ebeveynine bağlanır.
Bir Motor6D iletişimini içeren bir ağ oluşturur. İnsanoid'in karakterindeki Attachment nesneleri birleştirerek.
Class.Humanoid ı verilen Enum.HumanoidStateType 'e girmek için ayarlar.
Accessory nın ebeveyni olarak kullanılan bir dizi insanoid'in şu anda giydiği nesneleri döndürür.
İnsanoid'in önbelleğindeki kopyasını iade eder HumanoidDescription , bu da onun mevcut görünümünü açıklar.
Bir vücut bölümünü bu işleve (vücut bölümü Humanoid'in bir kardeşi ve bir Model'in çocuğu olmalıdır) geçerli kılmak için Enum.BodyPartR15 ile bir Part alın.
Verilen Part ile ilgili Class.Limb kütüphanesini iade eder.
İnsanoid'in mevcut Enum.HumanoidStateType 'ini iade eder.
Class.Humanoid için bir Humanoid etkinleştirilip etkinleştirilmediğini döndürür.
Class.Humanoid 'ın verilen yönde yürümesine neden olur.
Class.Humanoid 'in Humanoid.WalkToPoint ve Humanoid.WalkToPart özelliklerini ayarlayarak verilen yere yürümeye çalışır.
Ebeveyninin şekillendirdiği tüm Accessory nesnelerini kaldırır.
Bir Humanoid vücut parçasını farklı bir parçayla dinamik olarak değiştirir.
Class.Humanoid için verilen bir Humanoid'in etkinleştirilip etkinleştirilmeyeceğini ayarlar.
Class.Humanoid ın Humanoid ını korumak için verilen miktarı azaltır, eğer bir 1> Class.ForceField1> tarafından korunmuyorsa.
Şu anda Tool tarafından donanmış olan herhangi bir Humanoid çıkar.
- ApplyDescription(humanoidDescription : HumanoidDescription,assetTypeVerification : Enum.AssetTypeVerification):void
Karakterin görünümünü HumanoidDescription ile aynı yapar.
- ApplyDescriptionReset(humanoidDescription : HumanoidDescription,assetTypeVerification : Enum.AssetTypeVerification):void
Karakterin görünümünü HumanoidDescription ile aynı yapar, hatta dış değişikliklerden sonra bile.
Emoteleri oynar ve başarıyla çalıştıysa döndürür.
Etkinlikler
Bir Humanoid tırmanırken hız değişirken ateş eder.
Ölürse Humanoid öldüğünde ateş eder.
Class.Humanoid girer veya bırakır veya Humanoid içinde girer veya bırakar.
Class.Humanoid girer veya ayrılır Class.Humanoid``Freefall``Enum.HumanoidStateType .
Class.Humanoid girer veya ayrılır Class.Humanoid``GettingUp``Enum.HumanoidStateType .
Class.Humanoid.Health değiştirildiğinde (ya da Humanoid.MaxHealth ayarla) yanar.
Class.Humanoid girip Jumping``Enum.HumanoidStateType'den ayrıldığında ateş eder.
Class.Humanoid adlı oyuncu, Humanoid:MoveTo() adlı kullanıcının bir hedefe yürüdüğünü bitirdiğinde ateş eder.
Class.Humanoid PlatformStanding PlatformStanding``Enum.HumanoidStateType 1>Fires when the 4>Class.Humanoid4>1> 7>Enter or leaves the 9>PlatformStanding9>7> 0>Class.Humanoid0> 3>Ennum.HumanoidStateType3> 6>Class.Humanoid6> Humanoid9> 2>En
Class.Humanoid girer veya bırakır Ragdoll``Enum.HumanoidStateType .
Bir Humanoid ın hızında değişiklik yaparken ateş eder.
Bir Humanoid ın herhangi biri Seat veya VehicleSeat veya kalkış yaptığında yanınızda yanınızda yanınızda yanınızda yanınızda yanınızda yanınızda yanınızda yanınızda yanınızda yanınızda yanınızda yanınızda yanınızda yanınızda yanınız
Devleti Humanoid değiştirildiğinde ateş eder.
Class.Humanoid:SetStateEnabled()Humanoid çağrıldığında ateşlenir.
Class.Humanoid Class.HumanoidStateType</Class.HumanoidStateType> StrafingNoPhysics``Enum.HumanoidStateType 1>Enum.HumanoidStateType1> 4>Class.Humanoid4> 7>Class.Humanoid7> 0>Class.Humanoid0> 3>Class.Humanoid3> 6>Class.Humanoid6> Humanoid9> Humanoid2>
Bir Humanoid su değiştirme hızında yüzmeye başladığında ateş eder.
İnsanoid'in bir limbine başka bir BasePart ile temas ettiğinde ateş eder.
Özellikler
AutoJumpEnabled
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
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
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
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
The Humanoid'ın çeşitli öğeleri, BodyDepthScale, BodyHeightScale, BodyProportionScale, 2> BodyTypeScale2>, 5> HeadScale5> dahil olmak üzere altı çocuk ölçek değer
BreakJointsOnDeath
enum.humanoidstate type.dead devletinde humanoid'in bileşikleri kırılıp kırılmadığını belirler.Varsayılan doğru.
CameraOffset
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
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)
DisplayDistanceType
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
local humanoid = script.Parent
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.Viewer
humanoid.HealthDisplayDistance = 0
humanoid.NameDisplayDistance = 100
DisplayName
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
FloorMaterial
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
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
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.
HealthDisplayType
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
İ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
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
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
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
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
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
local player = game.Players.LocalPlayer
local char = player.CharacterAdded:wait()
local h = char:FindFirstChild("Humanoid")
h.MaxSlopeAngle = 30
MoveDirection
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
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
İ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
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
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
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
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.
RigType
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
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
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
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
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
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
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
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
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
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
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
Dönüşler
Kod Örnekleri
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
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
Kod Örnekleri
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)
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
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:
- Hayvanoid olmadığında devleti Enum.HumanoidStateType.Swimming olarak ayarlayarak otomatik olarak Enum.HumanoidStateType.GettingUp olacaktır.
- Kullanılmadığı için, devleti Enum.HumanoidStateType.PlatformStanding olarak ayarlarsanız, insanoid devleti otomatik olarak Enum.HumanoidStateType.Running olacaktır.
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.
Dönüşler
Kod Örnekleri
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
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 thenlocal humanoid = player.Character:FindFirstChildWhichIsA("Humanoid")if humanoid thenlocal tool = workspace:FindFirstChild("Tool")if tool thenhumanoid:EquipTool(tool)endendend
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:
- Araçları çıkarmak için, Humanoid:UnequipTools() kullanın
Parametreler
Dönüşler
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
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
- Players:GetHumanoidDescriptionFromUserId() , kişinin geçmişteki kullanıcı için bir avatar açıklayan HumanoidDescription döndürür.
- Players:GetHumanoidDescriptionFromOutfitId() , ki HumanoidDescription parametreleri, sunucu tarafındaki kıyafet kaynağına eşleştirilmiş olarak başlatılmıştır.
- Player:LoadCharacterWithHumanoidDescription() , bir oyuncu oluşturur HumanoidDescription ile.
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
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çinprint(humanoid:GetLimb(character.LeftUpperLeg)) -- Enüm.Limb.LeftLegprint(humanoid:GetLimb(character.LeftLowerLeg)) -- Enüm.Limb.LeftLegprint(humanoid:GetLimb(character.LeftFoot)) -- Enüm.Limb.LeftLeg-- R6 içinprint(humanoid:GetLimb(character:FindFirstChild("Left Leg"))) -- Enum.Limb.LeftLeg
Parçanın ebeveyni insanoid'in ebeveyni olmayan durumda Humanoid:GetLimb() bir hata atar.
Parametreler
Dönüşler
Enuym.Limb kısmına eşit.
Kod Örnekleri
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
GetState
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
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
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:
- Bir insanoid devleti etkinleştirildiğinde veya devre dışı bırakıldığında başlayan bir etkinliğe bakmak için Humanoid.StateEnabledChanged
- Bir Humanoid devletini etkinleştirmek veya devre dışı bırakmak için kullanın Humanoid:SetStateEnabled()
Parametreler
Verilen Enum.HumanoidStateType .
Dönüşler
Verilen Enum.HumanoidStateType aktifleştirilmiş olup olmadığı.
Kod Örnekleri
local humanoid = script.Parent:WaitForChild("Humanoid")
-- Set state
humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, false)
-- Get state
print(humanoid:GetStateEnabled(Enum.HumanoidStateType.Jumping)) -- false
Move
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
Yürüyeceğin yön.
moveDirection parametresi moveDirection ile ilgili olarak kullanılmalıdır.
Dönüşler
Kod Örnekleri
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
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:
Karakter hedefine ulaşır.
Karakter takılır ve sekizinci saniye sayacı sona erer.
Eğer Humanoid.WalkToPoint veya Humanoid.WalkToPart değerleri değişir.
Bir yazılım yeni bir Humanoid:Move() iletişim parametresi kullanarak moveDirection çağrılır.
Parametreler
Class.Humanoid.WalkToPoint ile ilgili pozisyon ayarlanır.
The BasePart to set Humanoid.WalkToPart to.
Dönüşler
Kod Örnekleri
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
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
Kod Örnekleri
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.
Karaktere ebeveyn olacak Class.Part``Class.Instance
Dönüşler
SetStateEnabled
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.
true if state aktifleştirilmesi planlanıyorsa, false if 0> state0> deaktifleştirilmesi planlanıyorsa.
Dönüşler
Kod Örnekleri
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
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
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
Hasar, Humanoid.Health 'den çıkarılacak miktar.
Dönüşler
Kod Örnekleri
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
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:
- Bunun yerine bir Tool 'yi takmak için, Humanoid:EquipTool() kullanın
Dönüşler
Kod Örnekleri
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
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
- Humanoid:GetAppliedDescription() , hangi HumanoidDescription şu anda insanoid'e uygulanmıştır.
- Players:GetHumanoidDescriptionFromUserId() , kişinin geçmişteki kullanıcı için bir avatar açıklayan HumanoidDescription döndürür.
- Players:GetHumanoidDescriptionFromOutfitId() , ki HumanoidDescription parametreleri, sunucu tarafındaki kıyafet kaynağına eşleştirilmiş olarak başlatılmıştır.
- Player:LoadCharacterWithHumanoidDescription() , bir oyuncu oluşturur HumanoidDescription ile.
Parametreler
Karakterle eşleştirmek istediğiniz HumanoidDescription Instancesi.
Dönüşler
ApplyDescriptionReset
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
Karakterle eşleştirmek istediğiniz HumanoidDescription instansı.
Dönüşler
Etkinlikler
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:
- Yüzme ve koşma için Humanoid.Swimming ve Humanoid.Running etkinliklerine bakın
- Ayrıca, bir Humanoid tırmanırken kullanılan Humanoid.StateChanged etkinliğini tespit edebilirsiniz
- Class.Humanoid:SetStateEnabled() işlevini kullanarak tırmanmayı devre dışı bırakabilirsiniz
Parametreler
Kod Örnekleri
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
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
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
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
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
Yeni değer Humanoid.Health .
Kod Örnekleri
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)
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
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
Kod Örnekleri
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
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:
- Humanoid.FallingDown for the Humanoid event connected with the FallingDown state, which behaves similarly to 0> Ragdoll0>
Parametreler
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:
- Yüzme ve tırmanma için Humanoid.Swimming ve Humanoid.Climbing etkinliklerine bakın
- Ayrıca, bir Humanoid ın Humanoid.StateChanged etkinliğini kullanarak ne zaman çalıştığını da tespit edebilirsiniz
Parametreler
Kod Örnekleri
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
Kod Örnekleri
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
- Humanoid:GetState() ve Humanoid:ChangeState() ile devleti alın ve ayarlayın.
- Humanoid:SetStateEnabled() ile belirli devletleri etkinleştirin veya devre dışı bırakın.
Parametreler
Humanoid'in önceki devlet yaz.
Humanoid'in mevcut devlet yaz.
Kod Örnekleri
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)
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:
- Bir devletin şu anda etkinleştirildiğini bulmak için Humanoid:GetStateEnabled() kullanın
- Class.Humanoid devleti değişikliklerini dinlemek için kullanır Humanoid.StateChanged
Parametreler
Etkinleştirilen devletin değiştirildiği Enum.HumanoidStateType için.
Eyalet artık etkinleştirilmişse doğrudur.
Kod Örnekleri
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
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:
- Koşma ve tırmanma için Humanoid.Running ve Humanoid.Climbing etkinliklerini görün
- Ayrıca, bir Humanoid ın yüzmeyi kullandığını gözlemleyebilirsiniz kullanarak Humanoid.StateChanged etkinliğini
- Class.Humanoid:SetStateEnabled() işlevini kullanarak yüzmeyi devre dışı bırakabilirsiniz
Parametreler
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
- Bu etkinliğe bağlanmak, her bir kolunuzda bir TouchTransmitter oluşturulmasına neden olacaktır.
- Şu anda BasePart.TouchEnded ile eşdeğer Humanoids yok.
Parametreler
Kod Örnekleri
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)