feat: 멀티플레이어 네트워크 동기화 구현
- 로비 씬 추가 및 LobbyManager/LobbyUI/LobbySceneBuilder 구현 - NetworkPrefabsList로 플레이어 프리팹 등록 (PlayerPrefab 자동스폰 비활성화) - PlayerMovement 서버 권한 이동 아키텍처로 전환 - NetworkVariable<Vector2>로 클라이언트 입력 → 서버 전달 - 점프 JumpRequestRpc로 서버 검증 후 실행 - 보스 프리팹에 NetworkTransform/NetworkAnimator 추가 (서버 권한) - SkillController를 NetworkBehaviour로 전환 - PlaySkillClipClientRpc로 클립 override + 재생 원자적 동기화 - OnEffect/OnSkillEnd 클라이언트 실행 차단 - WeaponEquipment 클라이언트 무기 시각화 동기화 수정 - registeredWeapons 인덱스 기반 NetworkVariable 동기화 - SpawnWeaponVisualsLocal로 클라이언트 무기 생성 - 중복 Instantiate 버그 수정 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
24
Assets/_Game/Scripts/Network/LobbyPlayerData.cs
Normal file
24
Assets/_Game/Scripts/Network/LobbyPlayerData.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
using Unity.Collections;
|
||||
using Unity.Netcode;
|
||||
|
||||
namespace Colosseum.Network
|
||||
{
|
||||
public struct LobbyPlayerData : INetworkSerializable, System.IEquatable<LobbyPlayerData>
|
||||
{
|
||||
public ulong ClientId;
|
||||
public FixedString32Bytes PlayerName;
|
||||
public bool IsReady;
|
||||
|
||||
public void NetworkSerialize<T>(BufferSerializer<T> serializer) where T : IReaderWriter
|
||||
{
|
||||
serializer.SerializeValue(ref ClientId);
|
||||
serializer.SerializeValue(ref PlayerName);
|
||||
serializer.SerializeValue(ref IsReady);
|
||||
}
|
||||
|
||||
public bool Equals(LobbyPlayerData other) =>
|
||||
ClientId == other.ClientId &&
|
||||
PlayerName == other.PlayerName &&
|
||||
IsReady == other.IsReady;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user