2017-08-29 4 views
0

Hé les gars, j'ai travaillé sur un jeu de type 2D en forme de terrariums, à partir d'un tutoriel que j'ai trouvé sur Youtube. J'ai utilisé des Quads comme des blocs. Le lien vers la série est:Unity 5: Raycast ne trouve pas de blocs

https://www.youtube.com/watch?v=KONw5GX0Ixs

La seule différence est que je suis dans un projet 2D plutôt que d'une 3D. J'essaie d'implémenter un système d'exploration de données, mais les clics ne sont pas détectés beaucoup moins les blocs sur lesquels je clique. Le système ne détecte même pas le clic, encore moins les blocs sur lesquels je clique. Je suis nouveau au codage, donc je ne suis pas sûr de savoir comment résoudre ce problème, tout est utile, merci.

Mon code est:

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

public class Mining : MonoBehaviour { 
    public Vector2 direction; 
    void Update() { 

    if (Input.GetMouseButtonDown (0)) { 
      Vector3 c = Camera.main.ScreenToWorldPoint (Input.mousePosition); 

      RaycastHit2D hit2D = Physics2D.Raycast(this.gameObject.transform.position, direction); 
      Debug.Log ("hello"); 

      if (hit2D.collider.gameObject != null) { 
       Debug.Log (hit2D.collider.gameObject); 
       Destroy (hit2D.collider.gameObject); 
      } 
    } 
    } 
} 
+3

Le message "Bonjour" n'est pas imprimé? Êtes-vous sûr que ce script est attaché à un objet actif dans la scène? –

+0

@TheJavatar ouais il est attaché à un objet gameobject dans la scène –

+0

@TheJavatar Je mets l'instruction if au-dessus de l'instruction if, je reçois cette erreur NullReferenceException: Référence de l'objet non définie à une instance d'un objet Mining.Update() (at Assets/Scripts/Mining.cs: 16) –

Répondre

0

Tout d'abord, changer

Input.GetMouseButtonDown(0) 

à

Input.GetMouseButton(0) 

comme ses

Retourne si oui ou le bouton de la souris donné est maintenu enfoncé.

dites-moi si cela résoudra votre problème. Si non, je vais essayer de comprendre sth out :)