경험 내에서 친구를 찾는 것은 도전적일 수 있습니다. SpawnWithFriends 개발자 모듈 은 경험에 존재하는 친구 중 하나에 플레이어를 생성하는 작업을 자동으로 이동합니다.이 모듈은 자동으로 대신 명령에 따라 플레이어를 순간이동하도록 구성할 수도 있습니다.
모듈 사용량
설치
경험에서 SpawnWithFriends 모듈을 사용하려면:
보기 탭에서 도구 상자 를 열고 크리에이터 스토어 탭을 선택합니다.
모델 정렬이 선택되었는지 확인한 다음 모두 보기 버튼을 클릭하여 카테고리를 확인하십시오.
찾아서 클릭하십시오 개발자 모듈 타일.
친구와 함께 스폰 모듈을 찾아서 클릭하거나 3D 뷰에 드래그 앤 드롭하세요.
탐색기 창에서 전체 친구와 함께 스폰 모델을 서버스크립트 서비스 로 이동합니다.경험을 실행하면 모듈이 다양한 서비스에 배포되고 실행을 시작합니다.
제한된 스폰 지역
이 모듈은 VIP 룸, 액세스 전용 공간 등 제한된 영역에서 플레이어가 생성되는 결과를 초래할 수 있습니다.플레이어가 이러한 영역으로 순간이동하는 것을 방지하려면:
제한 영역을 보이지 않는 Anchored 블록으로 채우십시오.모든 블록에 대해 , , 가 비활성화되도록 하십시오.
플레이어가 감옥 전체를 채우는 것을 방지하여 플레이어가 내부에서 생성되는 것을 방지합니다 각 블록의 속성 또는 Studio의 태그 편집기에서 태그 섹션을 사용하거나 Studio의 태그 편집기에서 태그 을 적용하여 태그를 감지하도록 합니다.
다음 코드를 Script 내에 붙여넣으십시오. . 내에서.
스크립트local ReplicatedStorage = game:GetService("ReplicatedStorage")local CollectionService = game:GetService("CollectionService")local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))local function validator(playerToTeleport, destinationPlayer, teleportationPoint)-- 모든 식별된 부품을 반복하십시오for _, area in CollectionService:GetTagged("RestrictedSpawnArea") dolocal relativePosition = area.CFrame:PointToObjectSpace(teleportationPoint.Position)local size = area.Sizelocal inXBounds = relativePosition.X < size.X / 2 and relativePosition.X > -size.X / 2local inZBounds = relativePosition.Z < size.Z / 2 and relativePosition.Z > -size.Z / 2if inXBounds and inZBounds thenreturn false -- 생성 대상이 제한 영역에 있으므로 순간 이동을 취소합니다endendreturn true -- 생성 대상이 제한 영역에 겹치지 않습니다; 순간이동을 계속하십시오endSpawnWithFriends.setTeleportationValidator(validator)
API 참조
함수
구성
구성(config: table)
기본 구성 옵션을 다음 키/값을 통해 재정의합니다 config 테이블에서.이 함수는 Script 호출할 수 있습니다.
키 | 설명 | 기본 |
---|---|---|
teleportToFriendOnRespawn | false로 설정하면 친구에게 순간이동하려면 teleportToRandomFriend을 통해 수동으로만 수행됩니다. | 참 |
teleportDistance | 플레이어가 서로에게서 얼마나 멀리 생성되어야 하는지, 스터드로 측정됩니다. | 5 |
maxCharacterVelocity | 이 값보다 빠르게 이동하는 캐릭터는 순간이동 후보로 선택되지 않습니다(예: 이동하는 차량의 캐릭터). | 48 |
bypassFriendshipCheck | true로 설정하면 모든 플레이어가 순간이동 후보자가 되고, 친구만 아닙니다. | 거짓 |
showLogs | 출력에 로그 메시지를 표시할지 여부. | 거짓 |
스크립트
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))SpawnWithFriends.configure({teleportToFriendOnRespawn = true,teleportDistance = 5,maxCharacterVelocity = 48,bypassFriendshipCheck = false,showLogs = false})
랜덤 친구로 순간이동 teleportToRandomFriend
teleportToRandomFriend(playerToTeleport: Player ): boolean
플레이어를 경험에서 친구 중 한 명으로 수동으로 순간이동하게 합니다.순간이동이 성공했는지 여부를 나타내는 부울을 반환하며, 순간이동에 실패할 수 있는 이유는 서버에 친구가 없거나 차단되지 않은 순간이동 지점을 찾을 수 없기 때문입니다.이 함수는 Script 호출할 수 있습니다.
setTeleportationValidator 설정
setTeleportationValidator(validator: function )
유효한 밸리데이터 콜백 함수를 연결하여 사용자 정의 전송 전 검사를 수행할 수 있습니다. 콜백은 세 가지 매개변수를 받습니다:
매개 변수 | 설명 |
---|---|
playerToTeleport | 순간이동 중인 Player에 대한 참조. |
destinationPlayer | 전송할 대상 참조 Player 에 대한 참조 playerToTeleport 가 전송됩니다. |
teleportationPoint | CFrame 에서 playerToTeleport 가 순간이동하는 곳. |
이 함수와 해당 콜백은 Script에서만 사용할 수 있으며 콜백은 순간이동이 진행되어야 하는지를 나타내는 부울을 반환합니다.예를 들어, 다음 유효성 검사 함수의 return 논리는 생성 플레이어와 대상 플레이어가 동일한 팀에 있는지 확인합니다.
스크립트
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))
-- 동일한 팀에 있는 플레이어만 순간이동합니다
local function validator(playerToTeleport, destinationPlayer, teleportationPoint)
return playerToTeleport.Team == destinationPlayer.Team
end
SpawnWithFriends.setTeleportationValidator(validator)