[RESOLU] Problème de script

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
Vladixime
Messages : 4
Inscription : 09 Juil 2018 20:34

[RESOLU] Problème de script

Message par Vladixime » 09 Juil 2018 20:41

Bonjour,
je suis en cours de réalisation d'un petit jeu fps mais dès le début je n'arrive pas à passer en mode play car mon script a une ou plusieurs erreur(s) je vous copie donc mon script pour que vous pussiez m'aider :
Player controller :

Code : Tout sélectionner

using UnityEngine;

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

	[SerializeField]
	private float speed;

	private PlayerMotor motor;

	private void Start()
	{
		motor = GetComponents<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);
	}
}
Player Motor :

Code : Tout sélectionner

using UnityEngine;

[RequireComponent(typeof(Rigidbody))]
public class PlayerMotor : MonoBehaviour 
{
	private Vector3 velocity;
	private Rigidbody rb;

	private void Start()
	{
		rb = GetComponents<rigidbody> ();
	}

	public void Move(Vector3 _velocity)
	{
		velocity = _velocity;
	}

	private void FixedUpdate()
	{
		PerformMovement ();
	}

	private void PerformMovement()
	{
		if (velocity != Vector3.zero) 
		{
			rb.MovePosition (rb.position + velocity * Time.fixedDeltaTime);
		}
	}
}
Merci d'avance de votre aide
Vladixime
.
 ! Message de : Max
Utilisez les balises code SVP
Merci de lire la Netiquette.

Avatar de l’utilisateur
Max
Messages : 8772
Inscription : 30 Juil 2011 13:57
Contact :

Re: [Débutant] Problème de script

Message par Max » 09 Juil 2018 20:56

Bonsoir,

Quand tu as des erreurs, elles sont visibles dans la console, et pour permettre de plus facilement t'aider, il est bon de les noter dans ton message. De ce que j'ai pu voir (à défaut donc d'avoir les messages d'erreur), dans tes scripts:

PlayerController, la ligne

Code : Tout sélectionner

Vector3 _movHorizontal = Transform.right * _xMov;
le Transform.right devrait être transform.right (donc avec un 't' minuscule, attention à la casse).

Dans PlayerMotor, un peu le même genre de soucis avec le

Code : Tout sélectionner

rb = GetComponents<rigidbody>();
, où il faut écrite Rigidbody (donc avec un 'R' majuscule) car là tu fais référence à un type de component.
Aussi GetComponent sans 's' car tu cherches à accéder à un component et non à un groupe de components. En final donc rb = GetComponent<Rigidbody>();
Image
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

Vladixime
Messages : 4
Inscription : 09 Juil 2018 20:34

Re: [Débutant] Problème de script

Message par Vladixime » 09 Juil 2018 21:11

Merci de votre réponse,
j'ai corrigé les erreurs que j'avais commis au niveau des scripts, mais toujours le même problème je vous envoie donc le et unique message d'erreur de la console :
<<Assets/PlayerController.cs(13,17): error CS0029: Cannot implicitly convert type `PlayerMotor[]' to `PlayerMotor'>>.

Merci d'avance de votre réponse.

Avatar de l’utilisateur
Alesk
Messages : 2303
Inscription : 13 Mars 2012 09:09
Localisation : Bordeaux - France
Contact :

Re: [Débutant] Problème de script

Message par Alesk » 09 Juil 2018 21:19

à vue de pif, l'erreur se trouve sur cette ligne

Code : Tout sélectionner

motor = GetComponents<PlayerMotor>();
GetComponents<PlayerMotor>(); retourne un tableau.

il faut utiliser :

GetComponent<PlayerMotor>();

sans s ;)

Vladixime
Messages : 4
Inscription : 09 Juil 2018 20:34

Re: [Débutant] Problème de script

Message par Vladixime » 09 Juil 2018 21:49

Merci pour votre réponse ça marche parfaitement maintenant je ferais attention aux "s" et aux majuscules.
Merci de votre aide bonne continuation

Répondre

Revenir vers « (C#) CSharp »