Change SyncVar to be a GameObject

This commit is contained in:
in0finite 2019-04-25 00:04:14 +02:00
parent a5a94e23b4
commit bb8e416457
2 changed files with 27 additions and 2 deletions

View file

@ -15,9 +15,10 @@ namespace SanAndreasUnity.Net
/// <summary>Local player.</summary>
public static Player Local { get; private set; }
[SyncVar] Ped m_ownedPed;
[SyncVar(hook=nameof(OnOwnedGameObjectChanged))] GameObject m_ownedGameObject;
Ped m_ownedPed;
//public GameObject OwnedGameObject { get { return m_ownedGameObject; } internal set { m_ownedGameObject = value; } }
public Ped OwnedPed { get { return m_ownedPed; } internal set { m_ownedPed = value; } }
public Ped OwnedPed { get { return m_ownedPed; } internal set { m_ownedPed = value; m_ownedGameObject = value != null ? value.gameObject : null; } }
void OnEnable()
@ -30,6 +31,16 @@ namespace SanAndreasUnity.Net
s_allPlayers.Remove(this);
}
public override void OnStartClient()
{
base.OnStartClient();
if (this.isServer)
return;
m_ownedPed = m_ownedGameObject != null ? m_ownedGameObject.GetComponent<Ped>() : null;
}
public override void OnStartLocalPlayer()
{
base.OnStartLocalPlayer();
@ -41,6 +52,16 @@ namespace SanAndreasUnity.Net
}
void OnOwnedGameObjectChanged(GameObject newGo)
{
if (this.isServer)
return;
m_ownedGameObject = newGo;
m_ownedPed = m_ownedGameObject != null ? m_ownedGameObject.GetComponent<Ped>() : null;
}
}
}

View file

@ -18,6 +18,10 @@
- don't show StartGame/JoinGame window in pause menu
- spawn ped right after player connects
- add weapons to player's ped
# Potential problems