pour comprendre un détail, étape 8 FPS basique

Toutes les questions relatives aux tutoriels du site sont à poser à cet endroit.
beorn
Messages : 7
Inscription : 17 Mai 2013 13:48

pour comprendre un détail, étape 8 FPS basique

Message par beorn » 17 Mai 2013 15:29

bonjour,

j'en suis à l'étape 8 du tuto sur le FPS basique, qui sont vraiment d'une grande aide, d'ailleurs. j'ai deux questions à ce sujet :

1/ je ne comprend pas pourquoi dans le script "ennemy", la plupart des variables sont déclarées sauf directionToPlayer. après avoir lu plusieurs sujet identique sur le forum, personne ne la déclare, j'en déduis donc que ce n'est pas utile. quelqu'un peut-il m'expliquer pourquoi ? d'ailleurs, lorsque je compile, j'ai un message d'erreur me disant qu'il ne connait pas directionToPlayer. moi je trouve ça plutot logique, mais ça ne m'éclaire pas pour autant. je précise que même si j'ai déjà étudié des langages informatique, je débute complétement sur le javascript.

2/ comme dit juste avant, j'en suis à l'étape 8, où je devrais voir : ------TOUCHE----- dans la console en passant devant l'ennemie. or, quand je déclare directionToPlayer en var, il ne se passe rien, et quand je ne le déclare pas, voici l'erreur qu'il m'affiche :

Assets/Standard Assets/Scripts/mesScripts/ennemieScript.js(38,9): BCE0005: Unknown identifier: 'directionToPlayer'.

et voici mon code :
(petite précision, il y a des lignes en plus, où je fais apparaitre une épave de mon ennemie qui est un robot. j'ai aussi essayer de vérifier par un "print" si j'étais dans le champ de vue de l'ennemie)

Code : Tout sélectionner

#pragma strict


// Variables gérant la mort de l'ennemie

var pointsDeVie=20;//........................Points de vie de l'ennemie
var explosion : Transform;//.................variable de l'effet explosion
var epave : GameObject;//....................variable de l'objet "epave" qui apparait à la mort de l'ennemie

//Variable de calque

var characterLayer : LayerMask;//............variable de calque (permet, lors du tir, de ne pas toucher les boites de collision de l'ennemie)

//Variables d'Intelligence Artificielle

private var player : GameObject;//...........variable du joueur
player=GameObject.Find("joueur");//..........définition du joueur comme étant le first personn controller, renommé "joueur"
var visionAngle : float=45;//................variable de l'angle de vue de l'ennemie (45° de chaque coté = 90° en tout)
var visionRange : float=100;//...............variable de portée de vue de l'ennemie
private var distanceToPlayer : float;//......variable de la distance entre l'ennemie et le joueur
private var canSeePlayer : boolean=false;//..variable booléenne de vue du joueur par l'ennemie
var hit : RaycastHit;//......................variable vérifiant si l'ennemie voit le joueur grace à un rayon

//______________________________________________________________________________________________________________________________

// Fonction permanente

function update()
	{
	seekPlayer();//.......................................................................................Cherche le joueur en permanence
	}


// Fonction de recherche du joueur

function seekPlayer()
	{
	directionToPlayer = player.transform.position - transform.position;
	distanceToPlayer = Vector3.Distance(player.transform.position, transform.position);
		
	var playerAngle=Vector3.Angle(directionToPlayer, transform.forward);
	
	if(Mathf.Abs(playerAngle)<visionAngle && distanceToPlayer<visionRange)
		{
		print("visible");
		Physics.Linecast(transform.position, player.transform.position, hit, ~characterLayer.value);
		
		if (hit.collider.name==player.collider.name)
			{
			print("-----TOUCHE!-----");
			}
		}
	}

// Fonction de Dommage et de mort de l'ennemie

function makeDamage(Damage:float)
	{
	pointsDeVie= pointsDeVie-=Damage;
	
	if (pointsDeVie<=0)
		{
		Instantiate(explosion,transform.position,transform.rotation);
		Instantiate(epave,transform.position,transform.rotation);
		Destroy(gameObject);
		}
	}
PS : désolé, je ne sais pas comment faire une liste déroulante.

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

Re: pour comprendre un détail, étape 8 FPS basique

Message par Max » 17 Mai 2013 16:56

Salut,

déclare var directionToPlayer : Vector3;

En suite, si il ne se passe rien, je suppose déjà qu'il serait mieux d'écrire Update() et non pas update(), attention à la case ;)
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

beorn
Messages : 7
Inscription : 17 Mai 2013 13:48

Re: pour comprendre un détail, étape 8 FPS basique

Message par beorn » 17 Mai 2013 17:19

et bien, rien qu'avec var (sans vector3) ça fonctionne. effectivement, il manquait la majuscule à update. du coup, ça tournait pas en boucle et donc il ne risquait pas de me voir.

donc, un grand merci à toi, Max. en revanche, je ne comprend toujours pas pourquoi sur les script des autres personnes, directionToPlayer n'est pas déclaré et ça ne pose pas de problème (j'ai essayé avant de dire ça) ?? je sais que ce n'est plus utile mais j'aime comprendre...

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

Re: pour comprendre un détail, étape 8 FPS basique

Message par cayou66 » 17 Mai 2013 17:30

attention à la case
Je chipote, mais case c'est le mot anglais: "Case Sensitive", en français c'est la casse :mrgreen:

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

Re: pour comprendre un détail, étape 8 FPS basique

Message par Max » 17 Mai 2013 17:40

beorn a écrit :et bien, rien qu'avec var (sans vector3) ça fonctionne.
oui, JS est tolérant sur ce point. Mais perso, je pense que typer les données est une seine habitude (et surtout obligatoire avec certains langages). ;)
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

Avatar de l’utilisateur
Freelax
Messages : 1595
Inscription : 30 Déc 2009 23:02
Localisation : Niort
Contact :

Re: pour comprendre un détail, étape 8 FPS basique

Message par Freelax » 17 Mai 2013 18:41

oui, JS est tolérant sur ce point
Quelle tristesse :lol:
Je chipote, mais case c'est le mot anglais: "Case Sensitive", en français c'est la casse :mrgreen:
En francais c'est une case sinon une 'casse' c'est ça :lol:

Image
Dernière édition par Freelax le 17 Mai 2013 19:30, édité 1 fois.
Image

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

Re: pour comprendre un détail, étape 8 FPS basique

Message par Max » 17 Mai 2013 18:54

:shock: T'as retrouvé ma vieille 405 GRD Turbo rouge ....

:lol:
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

Avatar de l’utilisateur
Freelax
Messages : 1595
Inscription : 30 Déc 2009 23:02
Localisation : Niort
Contact :

Re: pour comprendre un détail, étape 8 FPS basique

Message par Freelax » 17 Mai 2013 19:03

:D
Image

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

Re: pour comprendre un détail, étape 8 FPS basique

Message par Max » 17 Mai 2013 19:35

beorn a écrit : en revanche, je ne comprend toujours pas pourquoi sur les script des autres personnes, directionToPlayer n'est pas déclaré et ça ne pose pas de problème
arf, j'étais passé à coté de ta dernière question. Bon, le JS, c'est pas du tout ma tasse de thé (pas croyant, pas pratiquant), mais je pense que cela vient du #pragma strict qui t'impose un minimum de déclaration. Si tu le vire, tu devrais pouvoir 'varianter' à tour de bras sans barrière.... :mrgreen:
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

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

Re: pour comprendre un détail, étape 8 FPS basique

Message par cayou66 » 17 Mai 2013 19:37

Non mais encore on va dire que je dis n'importe quoi :)

http://fr.wikipedia.org/wiki/Sensibilit ... 0_la_casse

Verrouillé

Revenir vers « Tutoriels du site Unity3D-france »