ViewportFrame

แสดงที่เลิกใช้งานแล้ว

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

ViewportFrame เป็น GuiObject ที่เรนเดอร์ 3D วัตถุภายในขอบเขตของมัน, เสนอวิธีการแสดงวัตถุ 3D ในพื้นที่ 2D เช่น ScreenGuiวัตถุนี้มีข้อจำกัดดังต่อไปนี้:

  • ไม่มีเงาหรือเอฟเฟกต์การประมวลผลภายหลัง จะถูกแสดงออก

  • Enum.Material.Neon และ Enum.Material.Glass วัสดุจะแสดงในคุณภาพต่ำสุด

  • ซับซ้อน GuiObjects ไม่ได้รับการสนับสนุน

  • โดยปกติแล้วการจัดแสงภายใน ViewportFrame จะทำหน้าที่เหมือนกับว่า Lighting.EnvironmentSpecularScale และ Lighting.EnvironmentDiffuseScale ทั้งสองถูกตั้งค่าเป็น 0 ดังนั้นคุณสมบัติที่พึ่งพาฟิลด์เหล่านี้ เช่น SurfaceAppearance.MetalnessMap อาจมีลักษณะแตกต่างกัน

  • วัตถุนี้สามารถใช้เด็ก Sky เป็นแผนที่ลูกบาศก์สำหรับการสะท้อน ในกรณีนี้จะใช้เฉพาะคุณสมบัติ Sky หกของวัตถุ Skybox[…] เท่านั้นคาดว่าคุณสมบัติเหล่านี้ถูกต้อง, การจัดแสงภายใน ViewportFrame ทำงานคล้ายกับถ้า Lighting.EnvironmentSpecularScale และ Lighting.EnvironmentDiffuseScale ถูกตั้งค่าทั้งคู่เป็น 1สำหรับรายละเอียด ดูที่ ที่นี่ .

ตัวอย่างโค้ด

ViewportFrame - Create GUI

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local screenGui = Instance.new("ScreenGui")
screenGui.Parent = playerGui
local viewportFrame = Instance.new("ViewportFrame")
viewportFrame.Size = UDim2.new(0.3, 0, 0.4, 0)
viewportFrame.Position = UDim2.new(0, 15, 0, 15)
viewportFrame.BackgroundColor3 = Color3.new(0, 0, 0)
viewportFrame.BorderColor3 = Color3.new(0.6, 0.5, 0.4)
viewportFrame.BorderSizePixel = 2
viewportFrame.BackgroundTransparency = 0.25
viewportFrame.Parent = screenGui
local part = Instance.new("Part")
part.Material = Enum.Material.Concrete
part.Color = Color3.new(0.25, 0.75, 1)
part.Position = Vector3.new(0, 0, 0)
part.Parent = viewportFrame
local viewportCamera = Instance.new("Camera")
viewportFrame.CurrentCamera = viewportCamera
viewportCamera.Parent = viewportFrame
viewportCamera.CFrame = CFrame.new(Vector3.new(0, 2, 12), part.Position)
ViewportFrame - Control Camera

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local screenGui = Instance.new("ScreenGui")
screenGui.Parent = playerGui
local TweenService = game:GetService("TweenService")
local viewportFrame = Instance.new("ViewportFrame")
viewportFrame.Size = UDim2.new(0.3, 0, 0.4, 0)
viewportFrame.Position = UDim2.new(0, 15, 0, 15)
viewportFrame.BackgroundColor3 = Color3.new(0, 0, 0)
viewportFrame.BorderColor3 = Color3.new(0.6, 0.5, 0.4)
viewportFrame.BorderSizePixel = 2
viewportFrame.BackgroundTransparency = 0.25
viewportFrame.Parent = screenGui
local part = Instance.new("Part")
part.Material = Enum.Material.Concrete
part.Color = Color3.new(0.25, 0.75, 1)
part.Position = Vector3.new(0, 0, 0)
part.Parent = viewportFrame
local viewportCamera = Instance.new("Camera")
viewportFrame.CurrentCamera = viewportCamera
viewportCamera.Parent = viewportFrame
viewportCamera.CFrame = CFrame.new(Vector3.new(0, 2, 12), part.Position)
task.wait(2)
local cameraGoal = {
CFrame = CFrame.new(Vector3.new(0, 6, 4), part.Position),
}
local tweenInfo = TweenInfo.new(2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
local tween = TweenService:Create(viewportCamera, tweenInfo, cameraGoal)
tween:Play()

สรุป

คุณสมบัติ

  • อ่านพร้อมๆ กัน

    สีแสงที่ใช้กับพื้นที่ภายใน ViewportFrame

  • ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    Camera ที่ใช้เพื่อแสดงวัตถุลูกโดยใช้เด็ก

  • อ่านพร้อมๆ กัน

    กำหนดวิธีที่ภาพมุมมองที่เรนเดอร์จะถูกสีได้

  • อ่านพร้อมๆ กัน

    กำหนดความโปร่งใสของภาพมุมมองที่เรนเดอร์ได้รับ

  • อ่านพร้อมๆ กัน

    สีของแสงที่ปล่อยออก

  • อ่านพร้อมๆ กัน

    A Vector3 ที่แทนที่ทิศทางของแหล่งกำเนิดแสง

คุณสมบัติรับทอดมาจากGuiObject
  • อ่านพร้อมๆ กัน

    กำหนดว่าองค์ประกอบ UI นี้จะรับอินพุตหรือไม่

  • อ่านพร้อมๆ กัน

    กำหนดจุดต้นกำเนิดของ GuiObject เมื่อเทียบกับขนาดสัมบูรณ์ของมัน

  • อ่านพร้อมๆ กัน

    กำหนดว่าการปรับขนาดจะเกิดขึ้นตามเนื้อหาลูกหรือไม่

  • อ่านพร้อมๆ กัน

    กำหนดสีพื้นหลัง GuiObject

  • อ่านพร้อมๆ กัน

    กำหนดความโปร่งใสของพื้นหลังและขอบ GuiObject

  • อ่านพร้อมๆ กัน

    กำหนดสีขอบ GuiObject ได้

  • อ่านพร้อมๆ กัน

    กำหนดวิธีที่ขอบ GuiObject ถูกวางในลักษณะที่เกี่ยวข้องกับขนาด

  • อ่านพร้อมๆ กัน

    กำหนดความกว้างของพิกเซลของขอบ GuiObject

  • อ่านพร้อมๆ กัน

    กำหนดว่าถ้าลูกหลาน GuiObjects นอกขอบเขตขององค์ประกอบ GUI พ่อจะต้องแสดงผลหรือไม่

  • อ่านอย่างเดียว
    ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    กำหนดว่าเมาส์ของผู้เล่นกดอยู่อย่างใดอย่างหนึ่งบน GuiObject หรือไม่

  • อ่านพร้อมๆ กัน

    กำหนดว่า GuiButton สามารถโต้ตอบได้หรือไม่ หรือถ้า GuiState ของ GuiObject กำลังเปลี่ยนแปลงหรือไม่

  • อ่านพร้อมๆ กัน

    ควบคุมลำดับการจัดเรียงของ GuiObject เมื่อใช้กับ UIGridStyleLayout

  • อ่านพร้อมๆ กัน

    ตั้งค่า GuiObject ซึ่งจะถูกเลือกเมื่อตัวเลือกเกมแพดถูกเลื่อนลง

  • อ่านพร้อมๆ กัน

    ตั้งค่า GuiObject ซึ่งจะถูกเลือกเมื่อตัวเลือกเกมแพดถูกย้ายไปทางซ้าย

  • อ่านพร้อมๆ กัน

    ตั้งค่า GuiObject ซึ่งจะถูกเลือกเมื่อตัวเลือกเกมแพดถูกย้ายไปทางขวา

  • อ่านพร้อมๆ กัน

    ตั้งค่า GuiObject ซึ่งจะถูกเลือกเมื่อตัวเลือกเกมแพดถูกย้ายขึ้น

  • อ่านพร้อมๆ กัน

    กำหนดพิกเซลและตําแหน่งเวกเตอร์ของ GuiObject

  • อ่านพร้อมๆ กัน

    กำหนดจำนวนองศาที่ GuiObject หมุนไป

  • อ่านพร้อมๆ กัน

    ตรวจสอบว่า GuiObject สามารถเลือกได้โดยคอนโซลเกมหรือไม่

  • อ่านพร้อมๆ กัน

    แทนที่การเลือกเริ่มต้นที่ใช้สำหรับเกมแพด

  • อ่านพร้อมๆ กัน

    ลำดับของ GuiObjects ที่เลือกโดยการเลือก UI ของเกมแพด

  • อ่านพร้อมๆ กัน

    กำหนดพิกเซลและขนาดสเกลาร์ของ GuiObject

  • อ่านพร้อมๆ กัน

    ตั้งแกน Size ที่ GuiObject จะอ้างอิงจากขนาดของพ่อของมัน เมื่อเทียบกับขนาดของพ่อ

  • ซ่อนอยู่
    ไม่ซ้ำ
    อ่านพร้อมๆ กัน
    เลิกใช้แล้ว

    คุณสมบัติผสมของ BackgroundTransparency และ TextTransparency .

  • อ่านพร้อมๆ กัน

    กำหนดว่า GuiObject และบรรดาลูกหลานจะถูกแสดงหรือไม่

  • อ่านพร้อมๆ กัน

    กำหนดลำดับที่เรนเดอร์ GuiObject จะแสดงเป็นค่าสัมพันธ์กับคนอื่น

คุณสมบัติรับทอดมาจากGuiBase2d
  • อ่านอย่างเดียว
    ไม่ซ้ำ

    อธิบายตำแหน่งจอแสดงจริงขององค์ประกอบ GuiBase2d ในพิกเซล

  • อ่านอย่างเดียว
    ไม่ซ้ำ

    อธิบายการหมุนหน้าจอที่เกิดขึ้นจริงขององค์ประกอบ GuiBase2d ในองศา

  • อ่านอย่างเดียว
    ไม่ซ้ำ

    อธิบายขนาดหน้าจอที่เป็นจริงขององค์ประกอบ GuiBase2d ในพิกเซล

  • อ่านพร้อมๆ กัน

    เมื่อตั้งค่าเป็น true การแปลท้องถิ่นจะถูกใช้กับ GuiBase2d และบรรดาลูกหลานของมัน

  • อ่านพร้อมๆ กัน

    การอ้างอิงถึง LocalizationTable ที่จะใช้เพื่อใช้การแปลงภาษาท้องถิ่นอัตโนมัติกับ GuiBase2d และบรรดาลูกหลานของมัน

  • อ่านพร้อมๆ กัน

    ปรับพฤติกรรมการเลือกเกมแพดในทิศทางลง

  • อ่านพร้อมๆ กัน

    ปรับพฤติกรรมการเลือกเกมแพดในทิศทางซ้าย

  • อ่านพร้อมๆ กัน

    ปรับพฤติกรรมการเลือก gamepad ในทิศทางที่ถูกต้อง

  • อ่านพร้อมๆ กัน

    ปรับพฤติกรรมการเลือกเกมแพดในทิศทางขึ้น

  • อ่านพร้อมๆ กัน

    อนุญาตให้ปรับแต่งการเคลื่อนไหวการเลือกเกมแพดได้

วิธีการ

วิธีการรับทอดมาจากGuiObject

อีเวนต์

อีเวนต์รับทอดมาจากGuiObject
  • ยิงเมื่อผู้ใช้เริ่มโต้ตอบผ่านอุปกรณ์อินเทอร์เฟซมนุษย์-คอมพิวเตอร์ (ปุ่มเมาส์ลง, แตะเริ่ม, ปุ่มแป้นพิมพ์ลง, เป็นต้น)

  • ยิงเมื่อผู้ใช้เปลี่ยนวิธีการโต้ตอบผ่านอุปกรณ์อินเทอร์เฟซมนุษย์-คอมพิวเตอร์ (ปุ่มเมาส์ลง, แตะเริ่ม, ปุ่มแป้นพิมพ์ลง, เป็นต้น)

  • ยิงเมื่อผู้ใช้หยุดโต้ตอบผ่านอุปกรณ์อินเทอร์เฟซมนุษย์-คอมพิวเตอร์ (ปุ่มเมาส์ลง, แตะเริ่ม, ปุ่มแป้นพิมพ์ลง, เป็นต้น)

  • เกิดไฟไหม้เมื่อผู้ใช้ย้ายเมาส์ไปยังองค์ประกอบ GUI

  • เกิดไฟไหม้เมื่อผู้ใช้ย้ายเมาส์ออกจากองค์ประกอบ GUI

  • เกิดไฟไหม้เมื่อผู้ใช้ย้ายเมาส์ในขณะที่อยู่ภายในองค์ประกอบ GUI ใดๆ

  • เกิดไฟไหม้เมื่อผู้ใช้เลื่อนล้อเมาส์กลับเมื่อเมาส์อยู่เหนือองค์ประกอบ GUI

  • เกิดไฟไหม้เมื่อผู้ใช้เลื่อนล้อเมาส์ไปข้างหน้าเมื่อเมาส์อยู่เหนือองค์ประกอบ GUI

  • ยิงเมื่อ GuiObject ได้รับการโฟกัสด้วยตัวเลือก Gamepad

  • ยิงเมื่อตัวเลือก Gamepad หยุดโฟกัสกับ GuiObject

  • เกิดไฟไหม้เมื่อผู้เล่นเริ่มต้น ดำเนินการต่อ และหยุดการกดค้างไว้นานบนองค์ประกอบ UI

  • TouchPan(touchPositions : Array,totalTranslation : Vector2,velocity : Vector2,state : Enum.UserInputState):RBXScriptSignal

    เกิดไฟไหม้เมื่อผู้เล่นย้ายนิ้วบนองค์ประกอบ UI

  • TouchPinch(touchPositions : Array,scale : number,velocity : number,state : Enum.UserInputState):RBXScriptSignal

    เกิดไฟไหม้เมื่อผู้เล่นดําเนินการสับหรือดึงด้วยนิ้วสองนิ้วบนองค์ประกอบ UI

  • TouchRotate(touchPositions : Array,rotation : number,velocity : number,state : Enum.UserInputState):RBXScriptSignal

    เกิดไฟไหม้เมื่อผู้เล่นดําเนินการทําท่าหมุนโดยใช้นิ้วสองนิ้วบนองค์ประกอบ UI

  • TouchSwipe(swipeDirection : Enum.SwipeDirection,numberOfTouches : number):RBXScriptSignal

    เกิดไฟไหม้เมื่อผู้เล่นดําเนินการสับข้อมูลบนองค์ประกอบ UI

  • TouchTap(touchPositions : Array):RBXScriptSignal

    เกิดไฟไหม้เมื่อผู้เล่นดําเนินการสัมผัสท่าทางบนองค์ประกอบ UI

อีเวนต์รับทอดมาจากGuiBase2d

คุณสมบัติ

Ambient

อ่านพร้อมๆ กัน

คุณสมบัตินี้กำหนดสีแสงที่ใช้กับพื้นที่ภายใน ViewportFrame โดยค่าเริ่มต้นเป็น Color3.fromRGB(200, 200, 200) (สีเทาผี)

CurrentCamera

ไม่ซ้ำ
อ่านพร้อมๆ กัน

Camera ตัวอย่างที่ใช้เพื่อแสดงวัตถุลูก ค่าเริ่มต้นคือ nil

วัตถุ Camera ไม่ได้ทำซ้ำดังนั้น ViewportFrame.CurrentCamera จะไม่ทำซ้ำเช่นกันเมื่อคุณตั้งค่าคุณสมบัตินี้ Camera.CFrame และ Camera.FieldOfView จะถูกบันทึกและสําเนากับ ViewportFrame ภายในเพื่อให้ลูกค้าสามารถแสดงเฟรมโดยไม่มีวัตถุ Camera

ImageColor3

อ่านพร้อมๆ กัน

คุณสมบัตินี้กำหนดวิธีที่ภาพมุมมองที่เรนเดอร์จะถูกสีได้จะช่วยให้คุณสามารถเปลี่ยนสีได้โดยไม่ต้องแก้ไขวัตถุเรนเดอร์โดยตรงค่าการจำแนกสีเริ่มต้นคือ Color3.new(1, 1, 1) (สีขาว) ที่ไม่มีการเปลี่ยนแปลงสีเกิดขึ้น

ดูเพิ่มเติม ImageTransparency ซึ่งกำหนดความโปร่งใสของภาพที่เรนเดอร์ได้

ImageTransparency

อ่านพร้อมๆ กัน

คุณสมบัตินี้กำหนดความโปร่งใสของภาพมุมมองที่เรนเดอร์แสดงผล ทำให้คุณสามารถเปลี่ยนความโปร่งใสได้โดยไม่ต้องแก้ไขวัตถุที่เรนเดอร์แสดงโดยตรงค่าของ 0 (เริ่มต้น) เป็นทึบสนิทและค่าของ 1 เป็นโปร่งใสอย่างสมบูรณ์ (มองไม่เห็น)

ดูเพิ่มเติม ImageColor3 ซึ่งกำหนดวิธีที่ภาพที่เรนเดอร์จะถูกสีได้

LightColor

อ่านพร้อมๆ กัน

สีของแสงที่ปล่อย ค่าเริ่มต้นคือ Color3.fromRGB(140, 140, 140) (เงิน)

LightDirection

อ่านพร้อมๆ กัน

A Vector3 ที่แทนที่ทิศทางของแหล่งกำเนิดแสงจากตําแหน่ง (0, 0, 0) โดยค่าเริ่มต้นเป็น Vector3.new(-1, -1, -1)

วิธีการ

อีเวนต์