Je suis coincé lors du codage d'un jeu multijoueur utilisant unity 5 UNET. travaille actuellement avec unity 5.1 et je veux synchroniser une transformation enfant de l'objet de jeu sur le réseau.Bloqué dans Unity 5 UNET Code Multijoueur
le problème est que tous les clients envoient une requête pour synchroniser leur transformation enfant vers le serveur. mais le serveur n'envahit pas son enfant à se transformer avec d'autres clients.
j'ai entendu qu'il y a un composant est l'unité 5.2 pour ce travail mais comme je vous l'ai dit je travaille dans l'unité 5.1 donc je veux la solution pour 5.1.
Voici mon morceau de code.
avec impatience pour la réponse
using UnityEngine;
using UnityEngine.Networking;
using System.Collections;
public class Sync_Position : NetworkBehaviour
{
[SyncVar]
Vector3 []sync_pos;
[SerializeField] Transform []obj;
[SerializeField] int lerp_rate;
Vector3 []last_pos;
float threshold=5;
void Start()
{
sync_pos= new Vector3[obj.Length];
last_pos= new Vector3[obj.Length];
}
// Update is called once per frame
void FixedUpdate()
{
transform_pos();
lerp_pos();
}
void lerp_pos()
{
if(!isLocalPlayer)
{
for(int i=0;i<obj.Length;i++)
{
if(Vector3.Distance(obj[i].localPosition,sync_pos[i]) > 1)
{
obj[i].localPosition=sync_pos[i];
}
}
}
}
[Command]
void Cmd_for_pos(Vector3 p, int index)
{
sync_pos[index]=p;
}
[ClientCallback]
void transform_pos()
{
if(isLocalPlayer)
{
for(int i=0;i<obj.Length;i++)
{
if(Vector3.Distance(obj[i].localPosition,last_pos[i]) > threshold)
{
Cmd_for_pos(obj[i].localPosition,i);
last_pos[i]=obj[i].localPosition;
}
}
}
}
}