Thông báo cảm biến 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 thông báo cảm biế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 trên nhập lệ của người dùng.

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

Edit in Studio option from the experience's main page

Tạo một thông báo

Các lời nhắc trên màn hình được tạo 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 Cửa Nhà Tù trong cửa sổ 3D hoặc từ Explorer ( Không gian làm việcVật phẩm thông báoCửa Nhà Tù ).

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

  3. Đặt một lời nhắc trên Attachment cho phép bạn kiểm soát nhiều hơn về nơi mà đ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.Thêm một tệp mới Phụ lục và đổi tên thành Phụ lục Nhanh .

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

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

Xuất hiện thông ngoại hình

Lời nhắc bao gồm ba thành phần chính, mỗi thành phần có thể được kiểm soát bởi các thuộc tính sau:

  • Văn bản đối tượng — Một tên tùy chọn cho đối tượng đang tương tác.
  • Tên hành động — 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 lời nhắc.
  • GamepadKeyCode — Nút gamepad sẽ kích hoạt lời nhắc.

Để tùy chỉnh sự xuất hiện của lời nhắc cửa nhà tù, hãy thực hiện các thay đổi sau:

  1. Trong cửa sổ Thuộc tính, tìm thấy thuộc tính ObjectText và nhập Cửa .

  2. Đối với thuộc tính ActionText , hãy nhập Pick Lock .

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

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

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 người dùng gần hơn với việc khóa bằng cách thay đổi MaxActivationDistance thành 4 .

Giữ thời gian

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 nhanh chóng, trong giây lát.Vì cửa này phải được chọn để mở khóa, thay đổi thuộc tính Thời gian giữ thành 4 .

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

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

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 giữ lâu bắt đầu
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 sự kiện nhắc nhở với chức năng xử lý
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)
Sự kiệnMô tả
PromptTriggeredBắt lửa 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 với không phải là không HoldDuration ).
PromptButtonHoldBeganBắt lửa khi một người dùng bắt đầu tương tác với một lời nhắc không bằng không HoldDuration .
PromptButtonHoldEndedBắt lửa khi một người dùng ngừng tương tác với một lời nhắc không bằng không HoldDuration

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ỉ gọi chức năng bên trong ObjectActions ModuleScript , 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 giữ lâu bắt đầu
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 sự kiện nhắc nhở với chức năng xử lý
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)

Các thông báo cảm biến là một giải pháp tiện lợi và có thể tùy chỉnh cho tương tác đối tượng trong trò chơi.Xem các trang tham khảo ProximityPromptProximityPromptService để có thêm cách để kiểm soát hành vi thông báo, và khám phá các đối tượng tương tác khác trong Dungeon Delve để có cảm hứng sáng tạo.