Problème dans le Tuto basique etape 9

Toutes les questions relatives aux tutoriels du site sont à poser à cet endroit.
MrNantys
Messages : 4
Inscription : 01 Mars 2013 23:01

Problème dans le Tuto basique etape 9

Message par MrNantys » 01 Mars 2013 23:10

Bonjour à tous,
Je suis nouveau sur ce forum, et aussi sur Unity3D. Je réalise actuellement un projet de FPS sur ce dernier et j'ai regardé les tutos pour crée un FPS basique disponible sur ce site (qui sont d'ailleurs d'une très bonne qualité).

Malheureusement, j'ai un petit problème suite à l'étape 9, j'ai recopié le code, mis le script dans l'ennemi et toute la procédure nécessaire pour qu'il se rapproche de moi... mais cela ne fonctionne pas, l'ennemi ne bouge pas d'un poil (j'ai vu que des problèmes similaires avaient déjà eu lieu avec des personnes de ce forum).

Voici au cas ou le code, il y a peut-être (surement même ?) un problème.

Code : Tout sélectionner

var hitPoints=20;
var explosion:Transform;

var characterLayer:LayerMask;
var gravity=20;

private var player:GameObject;
player=GameObject.Find ("Player"); //... allez chercher l'objet.

var visionAngle:float = 45; //... l'ennemi peut voir à 45° à gauche et 45° à droite.
var visionRange:float = 100;//.. à 100m.
private var distanceToPlayer:float;//...distance entre ennemi et objet.
private var canSeePlayer:boolean=false;

var hit : RaycastHit; //...rayon envoyé de l'ennemi vers le jouer pour voir.

function update ()
{
	seekPlayer ();
}

	function seekPlayer ()
	{
	directionToPlayer = player.transform.position-transform.position;
	distanceToPlayer = Vector3.Distance(transform.position.player, transform.position);
	
	var playerAngle = Vector3.Angle(directionToPlayer, transform.forward);
	
	if (Mathf.Abs (playerAngle) < visionAngle && distanceToPlayer < visionRange )
		{
		Physics.Linecast (transform.position,player.transform.position,hit,~characterLayer.value);
			
		if (hit.collider.name == player.collider.name)
			{
				var moveDirection = transform.forward;	
			}
			
		}
		moveDirection.y-=gravity*Time.deltaTime;
		var controller:CharacterController=GetComponent(CharacterController);
		var flags = controller.Move (moveDirection*20*Time.deltaTime);	
	
	}
		
		
function makeDamage (Damage:float)
{
	hitPoints-=Damage;
	
	if (hitPoints <= 0)
	{
		Instantiate (explosion,transform.position,transform.rotation);
		Destroy(gameObject);
		
	}
}
J'espère que vous me donnerez une solution à mon problème, merci à tous.

Avatar de l’utilisateur
cayou66
Codeur
Codeur
Messages : 6450
Inscription : 30 Juin 2011 14:45
Localisation : Montréal

Re: Problème dans le Tuto basique etape 9

Message par cayou66 » 01 Mars 2013 23:13

Hello,
je vote pour:

Code : Tout sélectionner

function update ()
qui devient:

Code : Tout sélectionner

function Update ()
Le jeu des 7 erreurs ! ;)

MrNantys
Messages : 4
Inscription : 01 Mars 2013 23:01

Re: Problème dans le Tuto basique etape 9

Message par MrNantys » 01 Mars 2013 23:21

Merci pour ta réponse rapide, et qui me semble être la clé de la solution. =P

Mais, maintenant, une nouvelle erreur est survenu --> MissingFieldExpession : Field "UnityEngine.Vector3.player" not found. Boo.Lang.Runtime etc....

Une idée de ce que cela pour être?

Merci encore.

Avatar de l’utilisateur
ZJP
Messages : 5745
Inscription : 15 Déc 2009 06:00

Re: Problème dans le Tuto basique etape 9

Message par ZJP » 01 Mars 2013 23:43

Là, je vote pour l'absence d'un objet taggé "Player"

Code : Tout sélectionner

player=GameObject.Find ("Player");

MrNantys
Messages : 4
Inscription : 01 Mars 2013 23:01

Re: Problème dans le Tuto basique etape 9

Message par MrNantys » 01 Mars 2013 23:51

Malheureusement, non, j'ai bien un objet nommé Player ... :?

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

Re: Problème dans le Tuto basique etape 9

Message par Max » 02 Mars 2013 10:46

MrNantys a écrit :Mais, maintenant, une nouvelle erreur est survenu --> MissingFieldExpession : Field "UnityEngine.Vector3.player" not found. Boo.Lang.Runtime etc....
Comme le dit le message d'erreur, la classe Vector3 ne comporte pas de champ player

Dans ton code (si j'ai bien lu vite fait à deux endroit au moins), cela serait plutôt player.transform.position à la place de transform.position.player.... :roll:
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

MrNantys
Messages : 4
Inscription : 01 Mars 2013 23:01

Re: Problème dans le Tuto basique etape 9

Message par MrNantys » 02 Mars 2013 11:47

Effectivement, c'étai bien ça :P

Et bien, mon problème résolu, je vous remercie vraiment, car je commençais vraiment à en avoir marre.


Énorme merci à tous ;)

Verrouillé

Revenir vers « Tutoriels du site Unity3D-france »