[RESOLU]Position d'un object en tant que vecteur d'un raycast

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
sami12
Messages : 2
Inscription : 13 Avr 2018 14:24

[RESOLU]Position d'un object en tant que vecteur d'un raycast

Message par sami12 » 13 Avr 2018 14:40

[DB-AL]

Bonjour, je viens à peine d'intégrer l'utilisation de vecteurs et j'ai eu une erreur en utilisant un vecteur dans un Raycast et un Debug.DrawRay.

J'ai eu l'erreur suivante, "Error CS0103, the name "vect" does not exist in the current context".

Je voulais faire un Raycast qui s'oriente vers un objet, ou bien un Raycast qui suit l'orientation d'une face lui appartenant (si l'objet tourne, le Raycast tourne aussi).

C'est la dernière idée qui m'intéresse le plus, mais je suis encore un débutant, et je n'ai pas l'impression que ça existe.
Je sens vraiment que mon erreur doit être assez stupide mais j'ai regardé mille et fois la doc et certains tutos sans être sûr d'avoir tout compris et sans pouvoir trouver mon erreur, voici mon code:

Code : Tout sélectionner


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class raycast: MonoBehaviour {

  public Transform target;
  public GameObject autre;

  void Start() 
  {
      Vector3 vect= autre.transform.position;
       
  }


  void Update() 
  {


    Debug.Log(autre.transform.position.x);
      
    Debug.DrawRay(transform.position, vect * 10, Color.red);

    RaycastHit hit;

    if(Physics.Raycast(transform.position, vect, out hit)) {

      transform.LookAt(target);

    } 

  }

}

ps: j'ai bien sûr enlever tout le superflue

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6214
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Position d'un object en tant que vecteur d'un raycast

Message par boubouk50 » 13 Avr 2018 16:50

Problème de Scope, c'est à dire de portée des données.
Tu déclares vect dans le Start (), donc il n'est accessible que dans le Start ().
Il faut qu'il soit déclaré dans la classe:

Code : Tout sélectionner

public class raycast: MonoBehaviour {

  public Transform target;
  public GameObject autre;
  private Vector3 vect;

  void Start() 
  {
 	vect= autre.transform.position;
  }
  ...
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

sami12
Messages : 2
Inscription : 13 Avr 2018 14:24

Re: Position d'un object en tant que vecteur d'un raycast

Message par sami12 » 13 Avr 2018 23:14

Merci beaucoup pour ta réponse, et je viens aussi rajouter quelque chose pour ceux qui sont intéressés, si l'objet (d'où provient le Raycast) n'est pas au centre (0 x, 0 y, z) ça ne marche pas (résultat très bizarre), du coup vous devez;

Code : Tout sélectionner

vect= autre.transform.position - transform.position;


Avatar de l’utilisateur
Iwa
Messages : 1131
Inscription : 25 Avr 2012 16:20
Contact :

Re: Position d'un object en tant que vecteur d'un raycast

Message par Iwa » 19 Avr 2018 12:23

Hello à toi,

Merci de penser le prochain coup à éditer ton post quand il est résolu (premier message du topic).
"N'est stupide que la stupidité Monsieur..." - Forest Gump
... sauf si tu lis pas ça :)

Si tu as tout ce qu'il te faut, merci de penser à basculer ton sujet en [RESOLU] en éditant ton tout premier post ;)

Répondre

Revenir vers « (C#) CSharp »