Seat
*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่
ประเภท BasePart ที่ตัวละครผู้เล่นสามารถ 'นั่ง' ได้เมื่อตัวละครสัมผัสวัตถุที่เปิดใช้งานที่นั่งแล้วจะถูกติดกับส่วนโดย Weld แอนิเมชัน
ที่นั่งทำงานอย่างไร?
เมื่อรูปแบบที่มี Humanoid และ BasePart เรียกว่า 'HumanoidRootPart' (โดยทั่วไปเป็นตัวละครผู้เล่น) สัมผัสที่นั่ง จะถูกสร้าง Weld ระหว่างที่นั่งและส่วนคุณสมบัติ C0 และ C1 จะได้รับการกำหนดค่าเพื่อให้ตัวละครถูกเชื่อมติดกับที่นั่ง 2 สตัดการเชื่อมนี้มีชื่อว่า 'SeatWeld' และเป็นบุตรของที่นั่ง
เมื่อนั่งคุณสมบัติ Seat.Occupant จะถูกตั้งค่าเป็น Humanoid ที่ 'นั่ง' ในที่นั่งนอกจากนี้คุณสมบัติ Humanoid.SeatPart ของหุ่นยนต์จะถูกตั้งค่าเป็นที่นั่ง
ตัวละครยังสามารถถูกบังคับให้นั่งในที่นั่งโดยใช้ฟังก์ชัน Seat:Sit()
มีสองวิธีที่ตัวละครจะออกจากที่นั่งเมื่อผู้เล่นกระโดด พวกเขาจะถูกลบออกจากที่นั่งอย่างไรก็ตามสิ่งนี้ยังสามารถทำได้ด้วยตนเองโดยการทําลายการเชื่อมต่อที่นั่งเช่น:
ที่นั่ง: ค้นหาลูกแรก ("SeatWeld": ทำลาย):
ที่นั่งโน้ตมีคูลดาวน์ (ปัจจุบัน 3 วินาที) ที่อยู่บนพื้นฐานต่อตัวอักษรต่อที่นั่งซึ่งหมายความว่าเมื่อตัวละครออกจากที่นั่งแล้วพวกเขาไม่สามารถนั่งกลับบนที่นั่งเดียวกันได้ภายใน 3 วินาทีพฤติกรรมการระบายความร้อนนี้อาจเปลี่ยนแปลงและไม่ควรพึ่งพาโดยนักพัฒนา
ที่นั่งสามารถใช้สำหรับอะไรได้บ้าง?
ที่นั่งมีหลากหลายการใช้งาน ตั้งแต่ชัดเจนไปจนถึงไม่ธรรมดา
- สร้างเก้าอี้หรือม้านั่งโดยไม่ต้องมีการเขียนโปรแกรม
- อนุญาตให้ตัวละคร 'นั่ง' ในวัตถุเคลื่อนที่เช่นยานพาหนะโดยไม่ถูกโยนไปรอบๆ
- การสร้างอินเทอร์เฟซที่ควบคุมโดยตัวละครในที่นั่งโดยใช้คุณสมบัติ Seat.Occupant
ตัวอย่างโค้ด
This code sample includes a demonstration of how the Seat.Occupant property can be used to track which player is sitting in a seat and when they sit down or sit up.
local Players = game:GetService("Players")
local seat = Instance.new("Seat")
seat.Anchored = true
seat.Position = Vector3.new(0, 1, 0)
seat.Parent = workspace
local currentPlayer = nil
local function onOccupantChanged()
local humanoid = seat.Occupant
if humanoid then
local character = humanoid.Parent
local player = Players:GetPlayerFromCharacter(character)
if player then
print(player.Name .. " has sat down")
currentPlayer = player
return
end
end
if currentPlayer then
print(currentPlayer.Name .. " has got up")
currentPlayer = nil
end
end
seat:GetPropertyChangedSignal("Occupant"):Connect(onOccupantChanged)
สรุป
คุณสมบัติ
ว่าที่นั่งจะใช้งานได้หรือไม่ หากตั้งค่าเป็นจริง ที่นั่งจะทำหน้าที่เป็นส่วนปกติ
มนุษย์ที่นั่งอยู่ในที่นั่ง
กำหนดรูปร่างโดยรวมของวัตถุ
กำหนดว่าชิ้นส่วนเป็นอนันต์ตามฟิสิกส์หรือไม่
ความเร็วในแนวมุมของการประกอบชิ้นส่วน
ศูนย์กลางของมวลของการประกอบชิ้นส่วนในพื้นที่โลก
ความเร็วเชิงเส้นของการประกอบชิ้นส่วน
มวลรวมของการประกอบชิ้นส่วน
การอ้างอิงถึงส่วนรากของการประกอบ
กำหนดประเภทพื้นผิวสำหรับด้านหลังของชิ้นส่วน (+Z ทิศทาง)
กำหนดประเภทพื้นผิวสำหรับด้านล่างของชิ้นส่วน (-Y ทิศทาง)
กำหนดสีของชิ้นส่วน
กำหนดตำแหน่งและทิศทางของ BasePart ในโลก
กำหนดว่าชิ้นส่วนจะชนกับชิ้นส่วนอื่นหรือไม่
กำหนดว่าชิ้นส่วนจะถูกพิจารณาในระหว่างการดำเนินการค้นหาในพื้นที่หรือไม่
กำหนดว่าจะมีการเรียกใช้อีเวนต์ Touched และ TouchEnded บนส่วนหรือไม่
กำหนดว่าส่วนใดมีเงาหรือไม่
อธิบายตำแหน่งของโลกที่ศูนย์กลางของมวลของชิ้นส่วนอยู่
อธิบายชื่อกลุ่มการชนกันของชิ้นส่วน
กำหนดสีของชิ้นส่วน
บ่งชี้คุณสมบัติทางกายภาพปัจจุบันของชิ้นส่วน
กำหนดคุณสมบัติทางกายภาพหลายอย่างของชิ้นส่วน
ใช้เพื่อเปิดใช้งานหรือปิดใช้งานแรงอากาศในชิ้นส่วนและชิ้นส่วนประกอบ
ขนาดทางกายภาพที่แท้จริงของ BasePart ตามที่เครื่องกลศาสตร์กำหนด
กำหนดประเภทพื้นผิวสำหรับด้านหน้าของชิ้นส่วน (-Z ทิศทาง)
กำหนดประเภทพื้นผิวสำหรับด้านซ้ายของชิ้นส่วน (-X ทิศทาง)
กำหนดตัวคูณสำหรับ BasePart.Transparency ที่มองเห็นได้เฉพาะกับไคลเอนต์ท้องถิ่นเท่านั้น
กำหนดว่าส่วนใดสามารถเลือกได้ใน Studio
อธิบายมวลของชิ้นส่วน ผลิตภัณฑ์ของความหนาแน่นและปริมาณ
กำหนดว่าชิ้นส่วนมีส่วนร่วมในมวลหรือแรงเฉื่อยของร่างกายแข็งหรือไม่
กำหนดเทกเจอร์และคุณสมบัติทางกายภาพเริ่มต้นของชิ้นส่วน
ชื่อของ MaterialVariant .
อธิบายการหมุนของชิ้นส่วนในโลก
ระบุออฟเซ็ตของจุดศูนย์กลางของชิ้นส่วนจาก CFrame ของมัน
อธิบายตำแหน่งของชิ้นส่วนในโลก
เวลาตั้งแต่อัปเดตฟิสิกส์ครั้งล่าสุด
กำหนดจํานวนส่วนที่สะท้อนกล่องท้องฟ้าได้
อธิบายการเปลี่ยนแปลงขนาดเล็กที่สุดที่อนุญาตโดยวิธีการปรับขนาด
อธิบายใบหน้าที่ส่วนสามารถปรับขนาดได้
กำหนดประเภทพื้นผิวสำหรับด้านขวาของชิ้นส่วน (+X ทิศทาง)
กฎหลักในการกำหนดส่วนรากของการประกอบ
การหมุนของชิ้นส่วนในองศาสำหรับสามแกน
กำหนดขนาดของชิ้นส่วน (ความยาว ความกว้าง ความสูง)
กำหนดประเภทพื้นผิวสำหรับด้านบนของชิ้นส่วน (+Y ทิศทาง)
กำหนดจำนวนส่วนที่สามารถมองเห็นได้ผ่าน (ตรงกันข้ามของความทึบของส่วน)
วิธีการ
บังคับตัวละครที่มี Humanoid ที่กำหนดไว้ให้นั่งในที่นั่ง
ใช้แรงกระตุกแบบมุมกับการประกอบ
ใช้แรงกระตุ้นกับการประกอบที่การประกอบ center of mass .
ใช้แรงกระตุ้นกับการประกอบในตำแหน่งที่กำหนด
ส่งคืนว่าชิ้นส่วนสามารถชนกันได้หรือไม่
ตรวจสอบว่าคุณสามารถกำหนดสิทธิ์เจ้าของเครือข่ายส่วนได้หรือไม่
คืนตารางชิ้นส่วนที่เชื่อมโยงกับวัตถุโดยใช้ข้อต่อแข็งใดๆ
คืนข้อต่อหรือข้อจำกัดทั้งหมดที่เชื่อมโยงกับส่วนนี้
ส่งค่าของคุณสมบัติ Mass กลับ
ส่งคืนผู้เล่นปัจจุบันที่เป็นเจ้าของเครือข่ายส่วนนี้หรือ nil ในกรณีของเซิร์ฟเวอร์
ส่งคืนค่าจริงหากเครื่องเกมตัดสินเจ้าของเครือข่ายสำหรับส่วนนี้โดยอัตโนมัติ
คืนส่วนฐานของการประกอบชิ้นส่วน
คืนตารางของชิ้นส่วนทั้งหมด BasePart.CanCollide ที่ถูกตัดกับชิ้นส่วนนี้
คืนความเร็วเชิงเส้นของการประกอบชิ้นส่วนในตำแหน่งที่กำหนดเมื่อเทียบกับชิ้นส่วนนี้
ส่งคืนจริงหากวัตถุเชื่อมต่อกับส่วนที่จะถือไว้ในตําแหน่ง (เช่นส่วน Anchored ) มิฉะนั้นจะส่งคืนเป็นเท็จ
เปลี่ยนขนาดของวัตถุเช่นเดียวกับการใช้เครื่องมือปรับขนาดของ Studio
ตั้งผู้เล่นที่กำหนดเป็นเจ้าของเครือข่ายสำหรับส่วนที่เชื่อมต่อทั้งหมดและส่วนนี้
ให้เครื่องเกมตัดสินได้อย่างไดนามิกว่าใครจะจัดการกับฟิสิกส์ของชิ้นส่วน (หนึ่งในไคลเอนต์หรือเซิร์ฟเวอร์)
- IntersectAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
สร้างใหม่ IntersectOperation จากเรขาคณิตที่ซ้อนทับของชิ้นส่วนและชิ้นส่วนอื่นๆ ในช่วงที่กำหนด
- SubtractAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
สร้างใหม่ UnionOperation จากส่วนโดยลบเอกภาพที่ใช้โดยชิ้นส่วนในช่องที่กำหนด
- UnionAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
สร้างใหม่ UnionOperation จากส่วน, บวกกับรูปร่างที่ใช้โดยชิ้นส่วนในช่วงที่กำหนด
รับจุดศูนย์กลางของ PVInstance .
เปลี่ยน PVInstance พร้อมกับบรรดาลูกหลานทั้งหมดของมัน PVInstances ทำให้จุดศูนย์กลางอยู่ที่ตําแหน่งที่ระบุแล้ว CFrame
อีเวนต์
อีเวนต์รับทอดมาจากBasePartไฟเมื่อชิ้นหยุดสัมผัสอีกชิ้นเนื่องจากการเคลื่อนไหวทางกายภาพ
ไฟเมื่อชิ้นส่วนสัมผัสกับชิ้นส่วนอื่นเนื่องจากการเคลื่อนไหวทางกายภาพ