Page 1 sur 2

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

Publié : 08 Oct 2019 09:12
par Denderw
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.

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

Publié : 08 Oct 2019 09:55
par boubouk50
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.

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

Publié : 09 Oct 2019 20:23
par Denderw
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.

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

Publié : 09 Oct 2019 22:00
par Max
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.

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

Publié : 11 Oct 2019 18:39
par Denderw
Où le souci peut il bien être ?

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

Publié : 11 Oct 2019 19:14
par Max
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 ?

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

Publié : 12 Oct 2019 15:47
par Denderw
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.

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

Publié : 12 Oct 2019 16:00
par Max
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.

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

Publié : 12 Oct 2019 17:41
par Denderw
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.

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

Publié : 12 Oct 2019 17:44
par Max
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.