Trình tìm bạn bè

*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.

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:

  1. Từ tab Xem, mở Hộp công cụ và chọn tab Cửa hàng Nhà sáng tạo .

    Toolbox toggle button in Studio
  2. 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 .

  3. Tìm và nhấp vào ô Dev Modules .

  4. 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.

  5. 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.

  1. 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è .

  2. 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 FriendLocator

    local 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
    })
  3. 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.

  4. 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.

  1. 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 .

  2. Thêm các dòng 8 và 11-13 vào kịch bản:

    LocalScript - Tùy chỉnh FriendLocator

    local 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
    teleportToFriend = 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)
  3. 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:

  1. Tạo một instance mới ScreenGui bên trong thùng chứa StarterGui .

  2. 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.

  3. 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.

  4. (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ô-đ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ínhMô tảMặc định
alwaysOnTopNế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
showAllPlayersNế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
teleportToFriendDị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
maxLocatorsSố 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: PlayerNgười chơi mà biểu tượng tìm kiếm thuộc về.
playerCFrame: CFrameCFrame 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: PlayerPlayer đối tượng mà biểu tượng tìm kiếm thuộc về.
playerCFrame: CFrameCFrame 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: booleanLiệ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 alwaysOnTopfalse 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)