Các lời nhắc 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 các lời nhắc gần tương tác xuất hiện khi người dùng tiếp cận các đối tượng trong không gian 3D, sau đó kích hoạt các 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 làm 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ò chơi

Tạo một lời nhắc

Các lời nhắc trên màn hình được tạo ra bởi một đối tượng ProximityPrompt được gán cho 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 lời nhắc trên một Attachment cho bạn nhiều quyền kiểm soát hơn về nơi điểm tương tác xảy ra, so với việc đặt nó trực tiếp trên phần/mô hình. Chèn một Attachment mới và đổi tên thành PromptAttachment.

  4. Tìm thuộc tính Position của attachment 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 lời nhắc

Các lời nhắc bao gồm ba yếu tố chính, mỗi yếu tố có thể được điều khiển 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 hiển thị cho người dùng.
  • KeyboardKeyCode — Phím bàn phím sẽ kích hoạt lời nhắc.
  • GamepadKeyCode — Nút gamepad sẽ kích hoạt lời nhắc.

Để tùy chỉnh hình thức của lời nhắc cửa tù, 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õ vào Door.

  2. Đối với thuộc tính ActionText, gõ vào Pick Lock.

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

Các lời nhắc xuất hiện khi nhân vật của người dùng di chuyển vào trong khoảng cách MaxActivationDistance đã định của đối tượng cha của lời nhắc.

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 tốc độ mà hành động của lời nhắc đượ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 lời nhắc 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 trung tâm mà không cần gán một kịch bản cho mỗi đối tượng lời nhắc.

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

local ProximityPromptService = game:GetService("ProximityPromptService")
-- Phát hiện khi lời nhắc được kích hoạt
local function onPromptTriggered(promptObject, player)
end
-- Phát hiện khi bắt đầu giữ lời nhắc
local function onPromptHoldBegan(promptObject, player)
end
-- Phát hiện khi kết thúc giữ lời nhắc
local function onPromptHoldEnded(promptObject, player)
end
-- Kết nối các sự kiện lời nhắc 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 lời nhắc (sau thời gian cho một lời nhắc có HoldDuration khác không bằng 0).
PromptButtonHoldBeganĐược kích hoạt khi người dùng bắt đầu tương tác với một lời nhắc có HoldDuration khác không bằng 0.
PromptButtonHoldEndedĐược kích hoạt khi người dùng ngừng tương tác với một lời nhắc có HoldDuration khác không bằng 0.

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 chỉ đơ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 lời nhắc được kích hoạt
local function onPromptTriggered(promptObject, player)
ObjectActions.promptTriggeredActions(promptObject, player)
end
-- Phát hiện khi bắt đầu giữ lời nhắc
local function onPromptHoldBegan(promptObject, player)
ObjectActions.promptHoldBeganActions(promptObject, player)
end
-- Phát hiện khi kết thúc giữ lời nhắc
local function onPromptHoldEnded(promptObject, player)
ObjectActions.promptHoldEndedActions(promptObject, player)
end
-- Kết nối các sự kiện lời nhắc với các hàm xử lý
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)

Các lời nhắc gần là một giải pháp tiện lợi và có thể tùy chỉnh cho việc tương tác với đối tượng trong trò chơi. Hãy xem các trang tham khảo ProximityPromptProximityPromptService để biết thêm nhiều cách kiểm soát hành vi của lời nhắc, và khám phá các đối tượng tương tác khác trong Dungeon Delve để tìm 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.