[DB-AL] Chercher plusieurs variables [Résolu]

Pour les scripts écrits en Javascript (UnityScript). :!: Obsolète :!:
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
Xeniluom
Messages : 2
Inscription : 20 Juin 2016 22:25

[DB-AL] Chercher plusieurs variables [Résolu]

Message par Xeniluom » 20 Juin 2016 22:40

Bonjour à tous.
Tout d'abord je tiens à vous remercier pour l'aide que vous m'avez apporté, même si cela est mon premier message, car mine de rien, je tombe souvent ici quand je demande a mon pote lilo ou a mon pote google un renseignement. :) (si vous ne connaissez pas lilo, allez jetter un oeil au passage)

Entrons dans mon soucis si vous le voulez bien.
Alors comme je l'ai dit, je tombe souvent ici, et j'ai bien cherché ma solution avant de m'arracher 10% de mes cheveux :)
Ce sujet traite particulièrement mon soucis, sauf que je n'y arrive pas :/ (viewtopic.php?f=7&t=3653#p22260)

Mon but, je suis en train de faire un petit jeu à la troisième personne type RPG (solo pour le moment, mais j'aimerais ensuite faire en sorte de jouer avec mes amis, mais on s'écarte la ^^) avec déplacement à la souris. J'utilise la navigation de Unity avec le clique droit pour le déplacement, et donc naturellement je voudrais target mes cibles avec le bouton gauche (un classique quoi).

Pour le moment, j'arrive à faire 90% de ce que je veux, a savoir target une cible (un cube) et changer de target juste en pointant un autre cube. Ma variable "hitHierarchyName" change en prenant sans soucis le nom de la prochaine cible. Cependant et pour des raisons de confort ultérieur, j'aimerais avoir la liste de mes NPC dans une base de donnée (type mysql ou autre, je me suis pas penché dessus encore) C'est pourquoi, chaque cube possède le script Cible.js qui se chargera d'aller récup toutes les variables du NPC (nom, level vie....) Pour le moment, Cible.js ressemble à ça :

Code : Tout sélectionner

var NpcName : String = "Cible 1";
var NpcLevel : int = 1;
Et voici le script click1.js (J'avoue que le nom est bidon :p)

Code : Tout sélectionner

var hitHierarchyName : String; // Nom du GameObject selectionné
var tagObjet : String = "targetable" ; // Vérifiez bien que le gameObject possède le tag
var limitDetection : float = 250.0 ; // Définir la limite de distance au delà de laquelle le clic n’est plus prit en compte
var NpcName : String;

function Update() {
  if(Input.GetMouseButtonDown(0)){ // Si on clique avec le bouton gauche de la souris
    DetecterObjet();
  }
}

function  DetecterObjet(){
  var ray : Ray = Camera.main.ScreenPointToRay(Input.mousePosition); // Droite (rayon) qui passe par le centre de la caméra et la positon de la souris
  var hit : RaycastHit ;
  
 
  if(Physics.Raycast(ray, hit, limitDetection)){ 
  //Le rayon est lancé. Sa taille sera égale à  limiteDetection. Les objets en contact avec le rayon "ray" sont stockés dans la variable hit.
    if(hit.transform.CompareTag( tagObjet )){ //Si le tag correspond à un GameObject targetable
	hitHierarchyName = hit.transform.name; // hitHierarchyName prend le nom du GameObject dans la "Hierarchy"
	NpcName = GameObject.Find(hitHierarchyName).GetComponent("Cible").NpcName; // on recupère la variable NpcName de l'objet hitHierarchyName dans le script Cible.js
    }
  }
}
Vous l'aurez compris, mon seul soucis ce trouve a cette ligne :

Code : Tout sélectionner

NpcName = GameObject.Find(hitHierarchyName).GetComponent("Cible").NpcName;
J'ai essayé plein de chose, comme se servir de GetComponents ou alors même fixer un gameobject... Rien n'y fait... je déprime :(
Quelqu'un saurait me dire à quel point je suis un boulet? :)
Merci.
Dernière édition par Xeniluom le 20 Juin 2016 22:58, édité 1 fois.

Xeniluom
Messages : 2
Inscription : 20 Juin 2016 22:25

Re: [DB-AL] Chercher plusieurs variables

Message par Xeniluom » 20 Juin 2016 22:58

:pleur4: :pleur4: :pleur4:
Je ne sais pas combien de temps je viens de passer sur une :rougefaché: !#@ :rougefaché: d'erreur de débutant....

Alors aux noobs comme moi qui ne savent pas que dans l'inspector notre cher Unity affiche le nom de nos scripts avec une MAJUSCULE alors qu'il n'y en a pas.......... :pleur4: :pleur4: :pleur4:

Du coup, tout marche impec quand on marque juste :

Code : Tout sélectionner

NpcName = GameObject.Find(hitHierarchyName).GetComponent(cible).NpcName;
:snif:

Et fallait virer les doubles quote aussi cela dit :)

Avatar de l’utilisateur
F@B
Messages : 1844
Inscription : 01 Août 2013 10:41
Contact :

Re: [DB-AL] Chercher plusieurs variables [Résolu]

Message par F@B » 21 Juin 2016 06:55

c'est pour ça que par convention on comment toujours un variable pas une minuscule !
le fonctions elles par une majuscule.

au moins on y vois plus clair
ʕ·͡ᴥ·ʔ ==> Mon Portfolio <== ʕ·͡ᴥ·ʔ

Merci de lire et de prendre en considération la Nétiquette des Forums avant de poster un sujet !

Verrouillé

Revenir vers « (Js) Javascript »