[RESOLU]Débutant : "Field 'PlayerController.speed' is never assigned to, and will always have…"

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Avatar de l’utilisateur
Denderw
Messages : 10
Inscription : 08 Oct 2019 08:53

[RESOLU]Débutant : "Field 'PlayerController.speed' is never assigned to, and will always have…"

Message par Denderw » 08 Oct 2019 09:12

Salut.

Je suis débutant, et suit un exemple sur Youtube. Je suis bloqué à un endroit, J'ai le message d'erreur : "Field 'PlayerController.speed' is never assigned to, and will always have its default value 0".

Quelqu'un peut m'expliquer le problème ?
Mercie.
Dernière édition par Denderw le 12 Oct 2019 20:19, édité 2 fois.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 5086
Inscription : 28 Avr 2014 11:57
Localisation : Toulouse

Re: Débutant : "Field 'PlayerController.speed' is never assigned to, and will always have…"

Message par boubouk50 » 08 Oct 2019 09:55

Bonjour,
Est-ce une erreur (rouge) ou un warning (jaune)?
Je penche pour le second. Il t'indique que tu n'assignes pas de valeur à la variable speed du playerController, et par conséquent, cette variable aura toujours sa valeur par défaut 0.
Ce warning apparaît lorsqu'une variable privée est visible depuis l'inspecteur. ([SerializeField])
Si tu veux qu'il disparaisse, il te faut l'initialiser à sa déclaration.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Avatar de l’utilisateur
Denderw
Messages : 10
Inscription : 08 Oct 2019 08:53

Re: Débutant : "Field 'PlayerController.speed' is never assigned to, and will always have…"

Message par Denderw » 09 Oct 2019 20:23

Merci @boubouk50.

Effectivement c'était bien un warning. Mais je ne comprend pas comment faire pour que mon script fonctionne. (Il doit faire avancer mon personnage.)

Mon script Player Controller :

Code : Tout sélectionner

using UnityEngine;

[RequireComponent(typeof(PlayerMotor))]
public class PlayerControler : MonoBehaviour
{

    [SerializeField]
    private float speed;

    private PlayerMotor motor;

    private void Start()
    {
        motor = GetComponent<PlayerMotor>();
    }

    private void Update()
    {
        // On va calculer la vélocité du mouvement du joueur en un Vecteur 3D
        float _xMov = Input.GetAxisRaw("Horizontal");
        float _zMov = Input.GetAxisRaw("Vertical");

        Vector3 _movHorizontal = transform.right * _xMov;
        Vector3 _movVertical = transform.forward * _zMov;

        Vector3 _velocity = (_movHorizontal + _movVertical).normalized * speed;

        motor.Move(_velocity);
    }
}
Dans Unity j'ai paramétrer speed à 3, mais il ne se passe rien.

Avatar de l’utilisateur
Max
Newser
Newser
Messages : 7385
Inscription : 30 Juil 2011 13:57

Re: Débutant : "Field 'PlayerController.speed' is never assigned to, and will always have…"

Message par Max » 09 Oct 2019 22:00

Bonsoir,

Au vu du script, si tu appuis sur les touches directionnelles par exemple, _velocity prendra bien une valeur non null.
Donc si ton personnage n'avance pas, le soucis est certainement ailleurs.
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Avatar de l’utilisateur
Denderw
Messages : 10
Inscription : 08 Oct 2019 08:53

Re: Débutant : "Field 'PlayerController.speed' is never assigned to, and will always have…"

Message par Denderw » 11 Oct 2019 18:39

Où le souci peut il bien être ?

Avatar de l’utilisateur
Max
Newser
Newser
Messages : 7385
Inscription : 30 Juil 2011 13:57

Re: Débutant : "Field 'PlayerController.speed' is never assigned to, and will always have…"

Message par Max » 11 Oct 2019 19:14

Bonsoir,

Ben sans autre information, difficile d'en dire plus.
Comme par exemple le code de PlayerMotor, ou encore comment est configuré, par le biais de l'inspector, ton Player et ses scripts associés.
As-tu essayé de mettre un Debug.Log par exemple avant la ligne motor.Move(_velocity); pour voir si _velocity prenait bien valeur ?
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Avatar de l’utilisateur
Denderw
Messages : 10
Inscription : 08 Oct 2019 08:53

Re: Débutant : "Field 'PlayerController.speed' is never assigned to, and will always have…"

Message par Denderw » 12 Oct 2019 15:47

Rebonjour.
Non je n'ai pas essayer mais si vous taper Unity FPS sur youtube ce sera la première video.
J'espère que vous aurez le temps d'aller la regarder pour pouvoir m'aider si vous le pouvez.
Merci.

Avatar de l’utilisateur
Max
Newser
Newser
Messages : 7385
Inscription : 30 Juil 2011 13:57

Re: Débutant : "Field 'PlayerController.speed' is never assigned to, and will always have…"

Message par Max » 12 Oct 2019 16:00

cela serait plus simple d'en donner le lien, pas sur que je soit tombé chez moi sur la bonne.
Je pense que tu es sur le même tuto qu'évoqué ici: viewtopic.php?f=7&t=15599
Sinon j'en reviens au code de PlayerMotor que tu as écris/retranscris, poste le ici.
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Avatar de l’utilisateur
Denderw
Messages : 10
Inscription : 08 Oct 2019 08:53

Re: Débutant : "Field 'PlayerController.speed' is never assigned to, and will always have…"

Message par Denderw » 12 Oct 2019 17:41

Oui c'est bien cette video là mais je bloque, j'ai fais exactement comme lui mais mon personnage ne bouge toujours pas.
Désoler de n'avoir pas penser au lien.

Avatar de l’utilisateur
Max
Newser
Newser
Messages : 7385
Inscription : 30 Juil 2011 13:57

Re: Débutant : "Field 'PlayerController.speed' is never assigned to, and will always have…"

Message par Max » 12 Oct 2019 17:44

Denderw a écrit :
12 Oct 2019 17:41
j'ai fais exactement comme lui
il faut croire que non :mrgreen:

Re:
Max a écrit :
12 Oct 2019 16:00
Sinon j'en reviens au code de PlayerMotor que tu as écris/retranscris, poste le ici.
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Répondre

Revenir vers « Scripting Javascript, C# et Boo »