네트워크 멀티플레이 대응

This commit is contained in:
2026-01-31 20:49:23 +09:00
parent 1152093521
commit c5bcf265d0
69 changed files with 2766 additions and 1392 deletions

View File

@@ -36,13 +36,21 @@ namespace Northbound
{
base.OnNetworkSpawn();
if (IsServer)
if (IsOwner)
{
_currentHealth.Value = maxHealth;
_team.Value = enemyTeam;
InitializeServerRpc(maxHealth, enemyTeam);
}
}
[ServerRpc]
private void InitializeServerRpc(int health, TeamType team)
{
if (_currentHealth.Value == 0)
_currentHealth.Value = health;
if (_team.Value == TeamType.Neutral)
_team.Value = team;
}
public override void OnNetworkDespawn()
{
base.OnNetworkDespawn();
@@ -52,7 +60,18 @@ namespace Northbound
public void TakeDamage(int damage, ulong attackerId)
{
if (!IsServer) return;
if (!IsOwner)
{
TakeDamageServerRpc(damage, attackerId);
return;
}
TakeDamageServerRpc(damage, attackerId);
}
[ServerRpc]
private void TakeDamageServerRpc(int damage, ulong attackerId)
{
if (_currentHealth.Value <= 0) return;
// 공격자의 팀 확인
@@ -128,7 +147,18 @@ namespace Northbound
public void SetTeam(TeamType team)
{
if (!IsServer) return;
if (!IsOwner)
{
SetTeamServerRpc(team);
return;
}
SetTeamServerRpc(team);
}
[ServerRpc]
private void SetTeamServerRpc(TeamType team)
{
_team.Value = team;
}