J'ai un problème sur mon script en C# et je ne sais pas comment le résoudre (Je débute sur Unity ~ 3 semaines de pratiques).
Le but final étant de créer une plateforme multiplayers ou un personnage capable de bouger dans un espace 3D avec une vue FPS, j'ai procédé de la manière suivante:
Pour effectuer des tests, j'ai repris une préfab existante d'un personnage en 3D sur l'AssetStore que l'on appellera ici personnage_entier.
Cette préfab est constituée d'une multitude de sous ensembles (bras gauche, bras droit, jambe gauche etc.. Et la tête qui va ici nous intéresser (On appellera le sous ensemble tête: personnage_tête)).
J'ai créé un NetworkManager (Avec NetworkManager +NetworkManager HUD) et j'ai codé les mouvements de mon personnage de cette manière:
-Translation du personnage avec les touches z,q,s,d.
-rotation du personnage sur l'axe Y avec le mouvement de la souris sur l'axe X.
J'ai ajouté un NetworkIdentity à la préfab personnage_entier puis j'ai glissé celle ci dans le spawn info de mon NetworkManager comme Player.
Pour ne pas créer de soucis de personnage qui fait des pirouettes ( ), j'ai scripté la rotation sur X seulement sur l’élément personnage_tête. Lorsque je bouge donc ma souris de haut en bas, la tête bouge donc de haut en bas.
j'ai ensuite créé une main caméra que je relis a mon personnage de la manière suivante:
Code : Tout sélectionner
if (IsLocalPlayer){
Camera.main.transform.position = this.transform.position + this.transform.position.up;
Camera.main.transform.parent = this.transform;
}
1) Le script de rotation autour de X se trouvant seulement sur la tête, qui n'est pas considéré comme LocalPlayer, car elle n'est qu'un composant de celui ci (Children) s'active sur tout les personnages.. En effet si je bouge ma souris sur l’écran 1 alors la tête du personnage contrôlé par l’écran 2 bouge elle aussi.
2) la caméra des personnage est liée à la préfab personnage_entier et donc ne bouge pas lorsque je fais bouger ma souris de haut en bas.
Ma solution au problème:
- Lier la caméra à la tête des personnages, mais je ne sais pas comment faire pour que mon scripts comprennent que je veux le lier au composant personnage_tête et non au composant personnage_entier;
- Faire en sorte que la tête ne soit contrôlable que par le LocalPlayer. Je ne sais pas non plus comment modifier mon scrip ou mon composant pour faire ça.
Désolé pour le post précédant qui, en effet était très mal expliqué.
Je serrai ravis de lire vos propositions.
Merci d'avance,
CruckZz