팀 생성

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

팀 생성은 플레이어를 그룹으로 정렬하여 공통 목표를 완료하도록 경쟁하게 해요. 예를 들어, 가장 많은 포인트를 획득하거나 다른 적 팀원보다 먼저 결승선을 넘는 등의 공통 목표를 달성하면 됩니다. 첫 번째 개인 플레이어에게는 팀 생성이

참조용으로 샘플 레이저 태그 경험을 사용하는 이 튜토리얼의 이 섹션에서는 스크립트 가이드를 포함한 플레이어를 팀으로 정렬하는 방법을 설명합니다.

  • Class.Teams 서비스의 기본 기능을 사용하여 플레이어를 초록색 또는 분홍색 팀으로 할당합니다.
  • 플레이어가 온-스크린 및 경험 내 팀 인디케이터를 통해 동맹국과 적 팀원을 구분하는 데 도움이 됩니다.
  • 팀원을 폭력하여 플레이어에게 죄를 지우는 용서 게임플레이를 활성화합니다.

이 섹션을 완료하면 플레이어가 중립 로비나 팀 스폰 존에 생성하거나 다시 생성하는 스크립트, 첫 번째 인 퍼스트 필드 시각적 개체를 사용자 정의하고, 서버와 클라이언트 모두에서 클라이언트 상태를 처리하는 방법에 대해 알게 될 것입니다.

팀 색상 할당

샘플 레이저 태그 경험은 서비스가 넓게 사용 하 여 내장 팀 정렬 동작을 제공 하기 때문에 서비스를 기반로 하 여 두 팀을 만듭니다. 예를 들어, 추가 스크립트 작업이 없이 서비스는 다음과 같은 작동 하지 않는 팀을 처리 합니다.The sample laser tag experience uses the Teams service

  • 플레이어를 각 팀으로 균등하게 정렬하고 밸런스를 맞춥니다.
  • 리더보드플레이어를 그룹화합니다.
  • 3D 공간에서 플레이어 이름을 해당 팀 색으로 염색합니다.
  • 팀만 액세스할 수 있는 고유한 생성 위치에 플레이어를 생성합니다.

이 기본 기능 때문에 샘플은 Teams 서비스를 활성화하고 다른 Team 속성 값을 사용하여 각

경험에서 플레이어를 그룹화하고 경험 내에서 플레이어를 추적하고 업데이트하기

startSyncingTeamColor 참조 Team.Color 하여 플레이어 팀 인디케이터의 왼쪽 하단 모서리에 올바른 색과 아이콘을 할당할 수 있습니다.

초록 팀
핑크 팀

local function setPlayerTeamIcon(gui: ScreenGui)
for _, teamColorIcon in gui.PlayerDisplay.TeamIcons:GetChildren() do
local iconTeamColor = teamColorIcon:GetAttribute(GuiAttribute.teamColor)
teamColorIcon.Visible = localPlayer.TeamColor == iconTeamColor
end
end
local function startSyncingTeamColor(gui: ScreenGui)
setPlayerTeamIcon(gui)
localPlayer:GetPropertyChangedSignal("Team"):Connect(function()
setPlayerTeamIcon(gui)
end)
end

팀 표시자 표시

플레이어가 팀으로 정렬되면 팀에 속해 있는 것을 빠르게 해독하고 팀과 동맹국 간에 구분할 수 있어야 합니다. 이 능력은 첫 번째 사람 샷 경험의 게임플레이에서 플레이어가 전략적인 결정을 내리는 것을 요구하므로 태그를 피하고 라운드를 잃지

플레이어를 완료대해 설정하려면 샘플 레이저 태그 경험은 스크린과 3D 공간에서 여러 팀 표시자를 제공합니다.

  • 플레이어 표시기 – 플레이어의 팀 색과 아이콘을 표시하는 사용자 지정 온-스크린 UI.
  • 팀 표시기 – 플레이어의 팀 색을 표시하는 사용자 지정 경험 내 UI.
  • 순위표 표시기 – 플레이어를 팀 색 아래에 그룹화하는 기본 팀 서비스 UI.
  • 이름 컬러 – 플레이어의 이름을 팀 색으로 변경하는 경험 내 기본 팀 서비스.
온-스크린 인디케이터
플레이어 표시기
순위표 표시기
경험 내 지표 >
팀 표시자
이름 착색

이 튜토리얼의 이전 섹션에서 팀 색상을 할당하는 것 외에 리더보드 표시기 또는 이름 옅은 필요하지 않지만, 사용자 인터페이스 팀 옅은 더 많은 프로그래밍 노력이 필요하여

친절한 불 끄기

일부 첫 번째 개인 샷 슈팅 경험은 플레이어가 자신의 팀원을 폭발시키면 플레이어를 처벌하지만, 샘플 레이저 태그 경험을 통해 플레이어는 친절한 불 사용을 비활성화하여 더 용서 게임 플레이를 할 수 있습니다. 이 디자인 결정은 모든 사람이 팀 점수를 올릴 수만 하고

샘플이 이 기능을 구현하는 방법을 이해하려면 ServerScriptService > LaserBlastHandler > processTaggedPlayers > 2> onPlayerTagged2> 에 대한 피해를 처리


local function onPlayerTagged(playerBlasted: Player, playerTagged: Player, damageAmount: number)

체력이 감소하기 전에 스크립트는 태그된 플레이어가 폭발을 시작한 플레이어와 동일한 팀에 있는지 확인합니다. 그들이 동일한 팀에 있으면 스크립트는 폭발 데이터를 완전히 무시합니다.


local character = playerTagged.Character
local isFriendly = playerBlasted.Team == playerTagged.Team
-- 친절한 불 허용 금지
if isFriendly then
return
end

그러나 태그된 플레이어 적팀에 있는 경우, 플레이어는 블래스터 입력따라 적절한 양의 피해를 받습니다. 또한, 플레이어가 피해를 입어 태그가 되면 스크립트는 플레이어가 초기화한 팀에 포인트를 보상합니다. 또한, 샘


local humanoid = character and character:FindFirstChild("Humanoid")
if humanoid and humanoid.Health > 0 then
local damage = math.min(damageAmount, humanoid.Health)
humanoid:TakeDamage(damage)
if humanoid.Health <= 0 then
Scoring.incrementScore(playerBlasted, 1)
end
end
end
return onPlayerTagged

현재 경험을 테스트하면 모든 플레이어가 아레나의 양쪽 끝에 있는 랜덤 스폰 존에 생성됩니다. 즉, 모든 팀이 서로 다른 팀에 속하더라도 아레나의 양쪽 끝에 생성됩니다. 따라서 각 팀이 서로 다른 위치에 생성됩니다.

이 문제를 해결하기 위해 튜토리얼의 다음 섹션에서는 플레이어가 생성 지점에 도착할 때 특정 생성 지점에 대한 사용자 지정 논리, 클라이언트 상태를 처리하는 방법, 플레이어가 생성 지점에서 떠나면 생성 지점 또는 로비 영역으로 플레이어를 다시 가져오는 방법에 대해 설명합니다.