Có thể thách thức để tìm bạn bè trong trải nghiệm.Các mô-đun FriendsLocator cho nhà phát triển cho phép người chơi dễ dàng tìm và dịch chuyển đến bạn bè của họ trong một địa điểm.
Sử dụng module
Cài đặt
Để sử dụng mô-đun FriendsLocator trong một trải nghiệm:
Hãy chắc chắn rằng kiểu sắp xếp Mô hình được chọn, sau đó nhấp vào nút Xem tất cả đối với Danh mục .
Tìm và nhấp vào ô Dev Modules .
Tìm mô-đun Tìm kiếm bạn bè và nhấp vào nó, hoặc kéo và thả nó vào cửa sổ 3D.
Trong cửa sổ Explorer, di chuyển toàn bộ mô hình FriendsLocator vào ServerScriptService .Sau khi chạy trải nghiệm, mô-đun sẽ phân phối bản thân cho các dịch vụ khác nhau và bắt đầu chạy.
Kiểm tra trong Studio
Để kiểm tra mô-đun trong Studio, mô-đun FriendsLocator phải được chạy trong mô phỏng nhiều khách hàng, vì không có bạn bè nào sẽ có mặt trong một lần thử nghiệm solo.
Trong StarterPlayerScripts , tạo một mới LocalScript và đổi tên thành Tùy chỉnh máy tìm bạn bè .
Sao chép mã sau vào kịch bản ConfigureFriendsLocator mới.Cài đặt showAllPlayers trong chức năng configure đảm bảo rằng các nhà xác định được hiển thị cho tất cả người dùng trong quá trình thử nghiệm trong Studio, nhưng không phải ở một địa điểmcông bố.
LocalScript - Tùy chỉnh FriendLocatorlocal RunService = game:GetService("RunService")local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))FriendsLocator.configure({showAllPlayers = RunService:IsStudio(), -- Cho phép gỡ lỗi trong Studio})Từ tab Thử nghiệm của thanh công cụ, chọn kết hợp sau đây cho Khách hàng và Máy chủ , sau đó nhấp vào nút Bắt đầu .Ba ví dụ mới của Studio sẽ mở; một máy chủ giả lập và hai khách hàng giả lập.
Vào một trong các instances khách hàng của Studio, di chuyển khoảng cách 100 đinh tán xa khỏi nhân vật khác, và bạn nên thấy một biểu tượng locator xuất hiện trên đầu của nó.
Kết nối với sự kiện
Mô-đun FriendsLocator tiết lộ sự kiện để bạn có thể giới thiệu các hành vi tùy chỉnh khi người dùng tương tác với một biểu tượng tìm kiếm.
Hãy chắc chắn rằng bạn đã tạo ra ConfigureFriendsLocator kịch bản được mô tả trong thử nghiệm trong Studio .
Thêm các dòng 8 và 11-13 vào kịch bản:
LocalScript - Tùy chỉnh FriendLocatorlocal RunService = game:GetService("RunService")local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))FriendsLocator.configure({showAllPlayers = RunService:IsStudio(), -- Cho phép gỡ lỗi trong StudioteleportToFriend = false, -- Ngăn chặn dịch chuyển khi nhấp/nhấn vào biểu tượng})FriendsLocator.clicked:Connect(function(player, playerCFrame)print("You clicked on locator icon for", player.DisplayName)end)Thực hiện một thử nghiệm nhiều khách hàng và nhấp vào biểu tượng locator của một nhân vật khác.Lưu ý rằng nhân vật của bạn không dịch chuyển đến vị trí đó, và sự kiện kích hoạt để cho phép xử lý tùy chỉnh các đánh bóng icon.
Giao diện người dùng tìm kiếm tùy chỉnh
Nếu kiểu mặc định không phù hợp với trải nghiệm của bạn, bạn có thể thay thế giao diện avatar mặc định bằng giao diện của riêng bạn.

Để thay thế UI mặc định:
Tạo một instance mới ScreenGui bên trong thùng chứa StarterGui .
Tạo một ví dụ Frame có tên là FriendLocator như một con của mới ScreenGui , sau đó thêm các yếu tố như ImageLabels , TextLabels để thiết kế giao diện người dùng tùy chỉnh của bạn.
Khi hoàn thành, vô hiệu hóa cha ScreenGui để mô-đun không hiển thị giao diện người dùng tìm kiếm tùy chỉnh cho đến khi cần thiết.
(Tùy chọn) Nếu bạn muốn có bức tranh ảnh avatar của bạn bè và DisplayName để hiển thị ở đâu đó trong UI tùy chỉnh, bạn có thể đặt các ví dụ sau đây vào khung FriendLocator .
- Một ImageLabel của tên Chân dung .
- Một TextLabel của tên DisplayName .
Mô-đun sẽ tìm kiếm các mục này và hiển thị bức tranh avatar bạn bè và/hoặc tên hiển thị tương ứng.
Tham chiếu API
Chức năng
điều chỉnh
điều chỉnh(config: table )
Thay thế các tùy chọn cấu hình mặc định thông qua các chìa khóa/giá trị sau trong bảng config .
Nhân vật chính | Mô tả | Mặc định |
---|---|---|
alwaysOnTop | Nếu true , hiển thị biểu tượng nhà tìm kiếm ở trên tất cả mọi thứ, ngăn chúng bị chặn bởi các đối tượng thế giới 3D. | đúng |
showAllPlayers | Nếu true , hiển thị vị trí cho tất cả người chơi, không chỉ bạn bè; điều này có thể giúp xác minh chức năng của mô-đun trong Studio. | giả mạo |
teleportToFriend | Dịch chuyển nhân vật người chơi đến vị trí của bạn bè khi biểu tượng trình duyệt của họ được nhấp hoặc chạm. | đúng |
thresholdDistance | Điểm tụt mức khoảng cách máy ảnh tại điểm mà biểu tượng nhận dạng xuất hiện; bạn bè gần hơn khoảng cách này sẽ không hiển thị biểu tượng. | 100 |
maxLocators | Số lượng biểu tượng định vị tối đa được hiển thị tại bất kỳ thời điểm nào. | 10 |
LocalScript - Tùy chỉnh FriendLocator
local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))FriendsLocator.configure({alwaysOnTop = true,showAllPlayers = false,teleportToFriend = true,thresholdDistance = 100,maxLocators = 10})
Sự kiện
đã nhấp
Bắt lửa khi một biểu tượng nhận dạng bị nhấp vào/kích hoạt bởi người chơi địa phương. Sự kiện này chỉ có thể được kết nối trong một LocalScript .
Tham số | |
---|---|
người chơi: Player | Người chơi mà biểu tượng tìm kiếm thuộc về. |
playerCFrame: CFrame | CFrame của người chơi Humanoid.RootPart mà biểu tượng tìm kiếm thuộc về. |
Tập lệnh địa phương
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))
local localPlayer = Players.LocalPlayer
FriendsLocator.clicked:Connect(function(player, playerCFrame)
-- Yêu cầu phát trực tiếp xung quanh vị trí mục tiêu
if Workspace.StreamingEnabled then
local success, errorMessage = pcall(function()
localPlayer:RequestStreamAroundAsync(playerCFrame.Position)
end)
if not success then
print(errorMessage)
end
end
print("You clicked on locator icon for", player.DisplayName, "at position", playerCFrame.Position)
end)
visibilityChanged đã thay đổi
Bắt lửa khi một biểu tượng nhận dạng được hiển thị/ẩn trên màn hình người chơi địa phương. Sự kiện này chỉ có thể được kết nối trong một LocalScript .
Tham số | |
---|---|
người chơi: Player | Player đối tượng mà biểu tượng tìm kiếm thuộc về. |
playerCFrame: CFrame | CFrame của người chơi Humanoid.RootPart mà biểu tượng tìm kiếm thuộc về. |
có thể nhìn thấy: boolean | Liệu biểu tượng nhận dạng có hiển thị trên màn hình của người chơi địa phương hay không.Lưu ý rằng điều này vẫn sẽ là true nếu alwaysOnTop là false và máy tìm kiếm hiển thị phía sau một đối tượng trong thế giới 3D. |
Tập lệnh địa phương
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))
FriendsLocator.visibilityChanged:Connect(function(player, playerCFrame, isVisible)
print("Visibility of locator icon for", player.DisplayName, ":", isVisible)
end)