細長いブロックを1つ作り、ダメージScriptを入れてから、さらに回転させる命令を追加してみましょう。
串を刺すイメージで考えたら、どっちの軸に回るか分かりやすくなった!
細長いブロックを1つ作り、ダメージScriptを入れてから、さらに回転させる命令を追加してみましょう。
local part = script.Parent
local damageAmount = 10
-- 回転させ続ける
while true do
part.CFrame = part.CFrame * CFrame.Angles(0, math.rad(5), 0)
wait(0.03)
end
回転には、調整できる3つのポイントがあります。
| 調整ポイント | 変え方 |
|---|---|
| ① 速さ | math.rad(5)の数字を大きくすると速く回転します |
| ② なめらかさ | wait(0.03)の数字を小さくすると、より滑らかに回転します |
| ③ 回転方向 | CFrame.Anglesのどの位置(X・Y・Zどれか)に数字を入れるかで、串を刺す向きが変わります |
串を刺すイメージで考えたら、どっちの軸に回るか分かりやすくなった!
1つのScriptには、こんな風にwhile true do の回転処理とTouched のダメージ処理を両方入れることができます。2つとも独立して同時に動きます。
local part = script.Parent
local damageAmount = 10
part.Touched:Connect(function(hit)
local humanoid = hit.Parent:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = humanoid.Health - damageAmount
end
end)
while true do
part.CFrame = part.CFrame * CFrame.Angles(0, math.rad(5), 0)
wait(0.03)
end
回転しながらダメージも出るようになった!一気にゲームっぽくなったわ!
Well done!
次のステップに進みましょう!