Có thể khó để tìm thấy bạn bè trong kinh nghiệm. The FriendsLocator module developer cho phép người chơi dễ dàng tìm thấy và dịch chuyển đến bạn bè của họ trong một địa điểm.
Sử dụng mô-đun
Cài đặt
Để sử dụng mô-đun FriendsLocator trong một trải nghiệm:
Từ trang Xem, mở trang Hộp công cụ và chọn trang Cửa hàng Creator .
Đảm bạn chắn chọn Mô Hình sắp xếp, then click the Xem tất cả button for Các danh mục .
Tìm và nhấp vào Dev Modules mảnh.
Tìm mô-đun Locate the Friends Locator và nhấp vào nó, hoặc kéo nó vào 3D view.
Trong cửa sổ Explorer, di chuyển toàn bộ mô hình FriendsLocator đến ServerScriptService . Khi chạy trải nghiệm, mô hình sẽ được phân phối đến các dịch vụ khác nhau và bắt đầu chạy.
Làm việc trong Studio
Để kiểm tra modul ở Studio, modul FriendsLocator phải được thiết lập trong một mô phỏng nhiều khách hàng, vì không có bạn bè nào sẽ hiện diện trong một lần chơi solo.
Trong StarterPlayerScripts , tạo một LocalScript mới và đổi tên nó thành ConfigureFriendsLocator .
Hãy vẽ mã sau đây vào trong đoạn mã mới ConfigureFriendsLocator . Cài đặt showAllPlayers trong hành động configure đảm bảo rằng các máy định vị được hiển thị cho tất cả người dùng trong khi thử nghiệm ở Studio, nhưng không phải ở địa điểmcông bố.
LocalScript - Tùy chỉnh FriendsLocatorlocal RunService = game:GetService("RunService")local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))FriendsLocator.configure({showAllPlayers = RunService:IsStudio(), -- Cho phép debug ở Studio})Từ trang Thử nghiệm, chọn các lựa chọn sau đây cho Clients và Servers , sau đó nhấp vào nút Bắt đầu . Ba instância mới của Studio sẽ mở; một máy chủ simulado và hai máy khách simulado.
Vào một trong những instances client Studio , di chuyển một khoảng cách 100 studs khỏi nhân vật khác, và bạn nên thấy một biểu tượng locator hiện ra trên đầu của nó.
Kết Nối với Sự Kiện
Modul 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 locator.
Hãy đảm bảo rằng bạn đã tạo ra ConfigureFriendsLocator script được mô tả trong Testing in Studio .
Thêm dòng 8 và 11-13 vào kịch bản:
LocalScript - Tùy chỉnh FriendsLocatorlocal RunService = game:GetService("RunService")local ReplicatedStorage = game:GetService("ReplicatedStorage")local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))FriendsLocator.configure({showAllPlayers = RunService:IsStudio(), -- Cho phép debug ở StudioteleportToFriend = false, -- Ngăn chặn dịch chuyển trên màn hình nhấp chuột/nhấp chuột})FriendsLocator.clicked:Connect(function(player, playerCFrame)print("You clicked on locator icon for", player.DisplayName)end)Thực hiện một cuộc kiểm tra nhiều khách hàng và nhấp vào biểu tượng nhịp 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 trích dẫn để cho phép điều khiển tùy chỉnh của những lần nhấp chuột icon.
Giao diện người dùng định vị tùy chỉnh
Nếu kiểu dáng mặc định không phù hợp với trải nghiệm của bạn, bạn có thể thay thế UI bức tranh avatar mặc định bằng UI của riêng bạn.
Để thay thế UI mặc định:
Tạo một đối tượng mới ScreenGui trong StarterGui container.
Khi hoàn thành, vô hiệu hóa phụ huynh ScreenGui để modül không hiển thị UI locator tùy chỉnh cho đến khi cần thiết.
(Tùy chọn) Nếu bạn muốn bức tranh avatar của bạn bè và DisplayName để xuất hiện ở một nơi trong UI tùy chỉnh, bạn có thể đặt các instance này vào khung FriendLocator bên trong.
- Một ImageLabel của tên Hình ảnh của các cầu thủ .
- Một TextLabel của tên DisplayName .
Chức năng này sẽ tìm kiếm các mục này và hiển thị bức vẽ avatar của bạn bè và / hoặc tên hiển thị tương ứng.
Tham khảo API
Hàm
điều chỉnh
Làm mất các lựa chọn cài đặt mặc định qua các chìa khóa/giá trị dưới đây trong bảng config .
Chìa khóa | Mô tả | Mặc định |
---|---|---|
alwaysOnTop | Nếu true , hiển thị biểu tượng bộ lọc ở trên cùng của mọi thứ, ngăn chặn chúng khỏi bị chặn bởi 3D world objects. | đúng |
showAllPlayers | Nếu true , hiển thị vị trí cho tất cả người chơi, không chỉ là bạn bè; điều này có thể giúp xác minh chức năng của modul trong Studio. | đúng |
teleportToFriend | Dịch chuyển người chơi đến vị trí của người bạn bèkhi người bạn đang tìm kiếm được nhấp chuột hoặc nhấn vào. | đúng |
thresholdDistance | Khoảng cách máy ảnh thương mãi ở đâu; các bạn bè gần nhau hơn khoảng cách này sẽ không hiển thị biểu tượng. | 100 |
maxLocators | Số lượng tối đa biểu tượng địa điểm được hiển thị tại bất kỳ thời điểm nào. | 10 |
LocalScript - Tùy chỉnh FriendsLocator
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
Kích hoạt khi một biểu tượng bộ lọc được nhấp chuột/bật bởi người chơi địa phương. Sự kiện này chỉ có thể kết nối trong một LocalScript .
Các biến | |
---|---|
người chơi: Player | Người chơi mà biểu tượng locator thuộc về. |
playerCFrame: CFrame | CFrame của người chơi Humanoid.RootPart mà hình tượng locator thuộc về. |
Script địa phương
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local FriendsLocator = require(ReplicatedStorage:WaitForChild("FriendsLocator"))
local localPlayer = Players.LocalPlayer
FriendsLocator.clicked:Connect(function(player, playerCFrame)
-- Yêu cầu phát sóng 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)
đã thay đổi
Kích hoạt khi một biểu tượng bộ lọc đượ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 .
Các biến | |
---|---|
người chơi: Player | Player đối tượng mà iкон định vị thuộc về. |
playerCFrame: CFrame | CFrame của người chơi Humanoid.RootPart mà hình tượng locator thuộc về. |
isVisible: boolean | Dấu hiệu có hiện tại trên màn hình người chơi địa phương không. Lưu ý rằng điều này vẫn sẽ là true nếu alwaysOnTop là false và dấu hiệu render sau một đối tượng trong thế giới 3D. |
Script đị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)