Bonjour à tous,
Voilà cela fait quelque temps que je travaille sur mon jeu en multijoueur etc… Tout le multijoueur fonctionne armes, véhicules etc… cependant je rencontre un seul et unique problème qui me bloque. Comme vous le savez, dans tout jeux nous avons besoin d’animation de personnage. Cependant dans le Clientside, toutes les animations sont là, et fonctionne mais sur le serveurside les animations ne marchent pas. En gros le joueur A vois le joueur B bouger mais sans aucune animation (une espèce de personne figé). J’ai posté mon problème sur unity mais personne ne m’a répondu et cela fais 1 mois que je bute. Cependant sur Unity j’utilise l’animator et non l’animation. C’est à dire que je prends des animations faites avec Fuse que je veux remettre dans mon jeu.
J’ai fais cela :
using UnityEngine;
using System.Collections;
public class AnimationControllerSoldierTest : MonoBehaviour {
private Animator myAnimator;
public float VSpeed = 0.0f;
public float HSpeed = 0.0f;
private GameObject ModelAnimated;
private GameObject PlayerObject;
private Transform myTransform;
public int ChooseRandomAnim = 0;
//Set bool for stance.
public bool running = false;
// Use this for initialization
void Start ()
{
if (networkView.isMine == true)
{
myAnimator = GetComponent<Animator> ();
PlayerObject = transform.gameObject;
myTransform = transform;
ModelAnimated = myTransform.FindChild ("Swat_Animated").gameObject;
myAnimator = ModelAnimated.GetComponent<Animator>();
} else {
enabled = false;
}
}
// Update is called once per frame
void Update ()
{
//Random function.
//ChooseRandomAnim = Random.Range (0, 3);
//Right & Left; Forward & Backward.
//VSpeed = myAnimator.SetFloat("VSpeed", Input.GetAxis ("Vertical"));
//HSpeed = myAnimator.SetFloat ("HSpeed", Input.GetAxis ("Horizontal"));
VSpeed = Input.GetAxis ("Vertical");
HSpeed = Input.GetAxis ("Horizontal");
networkView.RPC("SendFloatHorizontalAndVertical", RPCMode.All, VSpeed, HSpeed);
ModelAnimated.transform.localPosition = new Vector3(0,-1,0);
}
[RPC]
void SendFloatHorizontalAndVertical(float VSpeedRPC, float HSpeedRPC)
{
myAnimator.SetFloat("VSpeed", VSpeedRPC);
myAnimator.SetFloat("HSpeed", HSpeedRPC);
//myAnimator.CrossFade("Walk_forward", 1f, 0, 10f);
}
}
Le débugger ne m’affiche aucune erreur…
ModelAnimated.transform.localPosition = new Vector3(0,-1,0); Utilisé pour recentrer le joueur lors de désynchronisation.
Alors est-ce mon RPC (remote player control) qui ne vas pas ? ma méthode ? ou mon script qui est totalement faux ?
J’espère que vous m’aiderez car cela fait 1 an que je taff sur ce projet et je ne veux pas arrêter à cause d’u problème d’animation. Sincèrement aidez moi ^^ .
Cordialement Clément