네트워크 멀티플레이 대응
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user