ForceField

非推奨を表示

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

ForceField は、Humanoid から与えられたダメージを受けることを防ぐ Class.Humanoid:TakeDam

ダメージと関節

ForceField は、その親に影響を与えます。親に Model があると、そのモデルから下に遡るすべての BaseParts が保護されます。親に 1>Class.BasePart1> があ

ForceField は、Humanoids から与えられたダメージからのみ保護します。ヒューマノイドは、Humanoid:TakeDamage() メソッドを設定して、直接ダメージを与えることで

ビジュアライズ

Class.ForceField.Visible が「Class.ForceField.Visible」と設定されると、パーティクルエフェクトが作成されます。複数のルールにより、このエフェクトが放出される場所が決まります:

  • Class.Model に親を付けると、モデルに Humanoid という名前の Class.Humanoid が含まれており、1>Class.Humanoid.RigType1> が R15 に設定されている場合、エフェクトは 4>UpperTor
  • 親に BasePart があると、エフェクトはパーツの BasePart.Position からエミットされます。

コードサンプル

ForceField Instantiation

local Players = game:GetService("Players")
local FORCE_FIELD_DURATION = 15
local function giveForcefield(player, duration)
local character = player.Character
if character then
local forceField = Instance.new("ForceField")
forceField.Visible = true
forceField.Parent = character
if duration then
task.delay(duration, function()
if forceField then
forceField:Destroy()
end
end)
end
end
end
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(_character)
giveForcefield(player, FORCE_FIELD_DURATION)
end)
end
Players.PlayerAdded(onPlayerAdded)

プロパティ

Visible

並列読み取り

Class.ForceField パーティクルエフェクトが表示されるかどかを設定します。これを false に設定すると、次のコードサンプルに示すように、デフォルトのパーティクルエフェクトをカスタムエフェクトに置き換えることができます。

コードサンプル

Custom ForceField Effect

local Players = game:GetService("Players")
local FORCE_FIELD_DURATION = 15
local function createCustomForcefield(player, duration)
local character = player.Character
if character then
local humanoid = character:FindFirstChild("Humanoid")
if humanoid then
-- find the torso
local torsoName = humanoid.RigType == Enum.HumanoidRigType.R15 and "UpperTorso" or "Torso"
local torso = character:FindFirstChild(torsoName)
if torso then
-- create a forcefield
local forceField = Instance.new("ForceField")
forceField.Visible = false -- not visible
-- create a particle effect
local particleEmitter = Instance.new("ParticleEmitter")
particleEmitter.Enabled = true
particleEmitter.Parent = torso
-- listen for the forcefield being removed
forceField.AncestryChanged:Connect(function(_child, parent)
if not parent then
if particleEmitter and particleEmitter.Parent then
particleEmitter:Destroy()
end
end
end)
-- parent the forcefield and set it to expire
forceField.Parent = character
if duration then
task.delay(duration, function()
if forceField then
forceField:Destroy()
end
end)
end
end
end
end
end
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(_character)
createCustomForcefield(player, FORCE_FIELD_DURATION)
end)
end
Players.PlayerAdded(onPlayerAdded)

方法

イベント