Hướng dẫn trung cấp

Gợi ý gần

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Bạn có thể tạo ra những gợi ý tương tác gần xuất hiện khi người dùng đến gần các đối tượng trong không gian 3D, sau đó kích hoạt hành động dựa trên đầu vào của người dùng.

Hướng dẫn này sử dụng dự án Dungeon Delve như một ví dụ. Để theo dõi, hãy mở nó trong Studio trước khi tiếp tục.

Tùy chọn chỉnh sửa trong Studio từ trang chính của trải nghiệm

Tạo một gợi ý

Các gợi ý trên màn hình được tạo ra bởi một đối tượng ProximityPrompt được gắn với một Attachment, BasePart, hoặc Model.

  1. Chọn mô hình PrisonDoor trong chế độ xem 3D hoặc từ Explorer (WorkspacePromptObjectsPrisonDoor).

  2. Mở rộng cây của nó và chọn đối tượng Door.

  3. Đặt một gợi ý trên một Attachment cho phép bạn kiểm soát tốt hơn nơi diễn ra điểm tương tác, so với việc đặt trực tiếp trên phần/mô hình. Chèn một Attachment mới và đổi tên nó thành PromptAttachment.

  4. Tìm thuộc tính Position của gắn mới và đặt nó thành -2.25, -0.5, -0.5. Điều này sẽ di chuyển nó về phía trước lỗ khóa của cửa.

  5. Di chuột qua PromptAttachment và chèn một đối tượng ProximityPrompt mới.

Hình thức gợi ý

Các gợi ý bao gồm ba yếu tố chính, mỗi yếu tố có thể được kiểm soát bởi các thuộc tính sau:

  • ObjectText — Một tên tùy chọn cho đối tượng đang được tương tác.
  • ActionText — Một tên hành động tùy chọn được hiển thị cho người dùng.
  • KeyboardKeyCode — Phím bàn phím sẽ kích hoạt gợi ý.
  • GamepadKeyCode — Nút gamepad sẽ kích hoạt gợi ý.

Để tùy chỉnh hình thức của gợi ý cửa ngục, hãy thực hiện các thay đổi sau:

  1. Trong cửa sổ Properties, tìm thuộc tính ObjectText và gõ Door.

  2. Đối với thuộc tính ActionText, gõ Khóa.

Khoảng cách kích hoạt

Các gợi ý xuất hiện khi nhân vật của người dùng di chuyển trong phạm vi đã định của MaxActivationDistance của đối tượng cha của gợi ý.

Giá trị mặc định hoạt động tốt trong hầu hết các trường hợp, nhưng bạn có thể đẩy tương tác của người dùng gần hơn với ổ khóa bằng cách thay đổi MaxActivationDistance thành 4.

Thời gian giữ

Giá trị thuộc tính HoldDuration xác định mức độ nhanh chóng mà hành động của gợi ý được kích hoạt, tính bằng giây. Vì cửa này phải được mở khóa để mở, hãy thay đổi thuộc tính HoldDuration thành 4.

Thực hiện một hành động

Cách tốt nhất để phát hiện các sự kiện gợi ý là thông qua ProximityPromptService — điều này cho phép bạn phát hiện các sự kiện một cách tập trung mà không cần gắn một kịch bản cho mỗi đối tượng gợi ý.

Một khung cơ bản là như sau:


local ProximityPromptService = game:GetService("ProximityPromptService")
-- Phát hiện khi gợi ý được kích hoạt
local function onPromptTriggered(promptObject, player)
end
-- Phát hiện khi việc giữ gợi ý bắt đầu
local function onPromptHoldBegan(promptObject, player)
end
-- Phát hiện khi việc giữ gợi ý kết thúc
local function onPromptHoldEnded(promptObject, player)
end
-- Kết nối các sự kiện gợi ý với các hàm xử lý
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)
Sự kiệnMô tả
PromptTriggeredĐược kích hoạt khi người dùng tương tác với một gợi ý (sau thời gian cho một gợi ý với giá trị HoldDuration khác không).
PromptButtonHoldBeganĐược kích hoạt khi người dùng bắt đầu tương tác với một gợi ý có giá trị HoldDuration khác không.
PromptButtonHoldEndedĐược kích hoạt khi người dùng ngừng tương tác với một gợi ý có giá trị HoldDuration khác không

Trong dự án Dungeon Delve, các sự kiện này được quản lý bởi kịch bản PromptEvents trong ServerScriptService.

Bên trong kịch bản, các sự kiện trên đơn giản gọi các hàm trong ModuleScript ObjectActions, cũng nằm trong ServerScriptService.


local ProximityPromptService = game:GetService("ProximityPromptService")
local ServerScriptService = game:GetService("ServerScriptService")
local ObjectActions = require(ServerScriptService.ObjectActions)
-- Phát hiện khi gợi ý được kích hoạt
local function onPromptTriggered(promptObject, player)
ObjectActions.promptTriggeredActions(promptObject, player)
end
-- Phát hiện khi việc giữ gợi ý bắt đầu
local function onPromptHoldBegan(promptObject, player)
ObjectActions.promptHoldBeganActions(promptObject, player)
end
-- Phát hiện khi việc giữ gợi ý kết thúc
local function onPromptHoldEnded(promptObject, player)
ObjectActions.promptHoldEndedActions(promptObject, player)
end
-- Kết nối các sự kiện gợi ý với các hàm xử lý
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)

Các gợi ý gần là một giải pháp tiện lợi và tùy biến cho việc tương tác với các đối tượng trong trò chơi. Kiểm tra các trang tham khảo ProximityPromptProximityPromptService để tìm thêm nhiều cách để kiểm soát hành vi của gợi ý, và khám phá các đối tượng tương tác khác trong Dungeon Delve để lấy cảm hứng sáng tạo.

©2026 Roblox Corporation. Roblox, logo Roblox và Powering Imagination là các nhãn hiệu đã đăng ký và chưa đăng ký của chúng tôi tại Hoa Kỳ và các quốc gia khác.