je dev sur Unity depuis 2 semaine et j'ai commencé avec le tuto de tower-deffense présent sur la chaîne youtube Tuto Unity FR.
je m'amuse à modifier un peux le code afin de me familiariser avec Unity et C#, j'ai également décidé d'essayer d'intégrer un multijoueur avec l'aide de l'asset Mirror et je rencontre un problème pour lequel je ne trouve pas de réponse m'aidant à régler mon souci.
j'ai réussi à syncro les vagues du serveur vers le client, j'arrive également à faire en sorte que les tourelles invoqué par l'hôte apparaissent sur le client et inversement.
mon souci c'est que quand le client fait apparaitre une tourelle il fait apparaitre celles sélectionné par le serveur et prend également l'argent sur le server.
je suis débutant et je ne souhaite pas spécialement que l'ont code à ma place, mon but est d'apprendre alors si quelqu'un peux m'envoyer dans la bonne direction et m'aider à comprendre comment faire je lui serais grandement reconnaissant.
Code : Tout sélectionner
private void BuildTurret(TurretBlueprint blueprint)
{
if (PlayerStats.money < blueprint.cost)
{
//Debug.Log("Tu n'as pas d'argent" + PlayerStats.money);
return;
}
PlayerStats.money -= blueprint.cost;
turretBlueprint = blueprint;
GameObject _turret = (GameObject)Instantiate(blueprint.prefab, GetBuildPosition(), Quaternion.identity);
NetworkServer.Spawn(_turret);
turret = _turret;
GameObject effect = (GameObject)Instantiate(buildManager.buildEffect, GetBuildPosition(), Quaternion.identity);
Destroy(effect, 1f);
}
[Command(requiresAuthority = false)]
public void CmdBuildIt()
{
BuildTurret(buildManager.GetTurretToBuild());
}
private void OnMouseDown()
{
if (isServer)
{
BuildTurret(buildManager.GetTurretToBuild());
}
else
{
CmdBuildIt();
}
}