การเขียน Lua Script ใน Roblox Studio เพื่อให้ NPC หันหน้ามาทางผู้เล่น
ใน Roblox Studio เราสามารถเขียนสคริปต์ Lua เพื่อให้ NPC หันหน้ามาทางผู้เล่นโดยใช้คุณสมบัติของ CFrame และ LookVector ที่ช่วยในการกำหนดทิศทางการหมุนของตัวละคร NPC ได้ง่าย ๆ
ขั้นตอนการสร้าง Script
เพิ่ม NPC
- สร้าง NPC (ตัวละคร) ในเกมของคุณ โดยการเพิ่มโมเดลและตั้งชื่อ เช่น "NPC"
- ตรวจสอบให้แน่ใจว่าโมเดลของ NPC มี
HumanoidRootPartซึ่งเป็นส่วนหลักที่ใช้สำหรับการเคลื่อนย้าย
เพิ่ม LocalScript หรือ Script
- คลิกขวาที่ NPC > เพิ่ม Script เพื่อเขียนโค้ดที่ควบคุม NPC
เขียนโค้ด
ด้านล่างนี้คือตัวอย่างโค้ดที่ NPC จะหันหน้าไปทางผู้เล่นที่ใกล้ที่สุด:
local npc = script.Parent -- อ้างถึงโมเดล NPC
local rootPart = npc:WaitForChild("HumanoidRootPart") -- หา HumanoidRootPart ของ NPC
local players = game:GetService("Players") -- เรียกใช้ Players service
local function getClosestPlayer()
local closestPlayer = nil
local shortestDistance = math.huge -- กำหนดระยะเริ่มต้นให้ไกลสุด
for _, player in pairs(players:GetPlayers()) do
if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
local playerRoot = player.Character.HumanoidRootPart
local distance = (playerRoot.Position - rootPart.Position).Magnitude
if distance < shortestDistance then
shortestDistance = distance
closestPlayer = player
end
end
end
return closestPlayer
end
while true do
local closestPlayer = getClosestPlayer()
if closestPlayer and closestPlayer.Character then
local playerRoot = closestPlayer.Character.HumanoidRootPart
rootPart.CFrame = CFrame.new(rootPart.Position, playerRoot.Position)
end
wait(0.1) -- รอเวลาสั้น ๆ เพื่อป้องกันการประมวลผลหนักเกินไป
end
อธิบายโค้ด
- ฟังก์ชัน
getClosestPlayer- ใช้ค้นหาผู้เล่นที่อยู่ใกล้ NPC มากที่สุด โดยใช้ระยะทาง (Magnitude)
- การหมุน NPC
- ใช้
CFrame.new(Position1, Position2)เพื่อหมุน HumanoidRootPart ของ NPC ให้หันไปทางตำแหน่งของผู้เล่น
- ใช้
- การวนลูป
- ใช้ลูป
whileเพื่ออัปเดตทิศทางของ NPC ตลอดเวลา
- ใช้ลูป
การปรับแต่งเพิ่มเติม
กำหนดระยะหันมอง
สามารถเพิ่มเงื่อนไขระยะ เช่น:if distance < 20 then -- กำหนดให้ NPC หันเฉพาะผู้เล่นที่อยู่ในระยะ 20 หน่วยเพิ่ม Animation
คุณสามารถเพิ่มแอนิเมชันให้กับ NPC เมื่อหันหน้าได้ โดยการใช้AnimationController
การทดสอบ
- เมื่อเขียนโค้ดเสร็จ ให้กดปุ่ม Play เพื่อดูผลลัพธ์ว่า NPC หันหน้าตรงมาทางผู้เล่นหรือไม่
ความคิดเห็น
แสดงความคิดเห็น