2016-05-13 2 views
0

Voici mon code:Unity - coup raycast, mal collisionneur

using UnityEngine; 

public class InputController : MonoBehaviour { 

    void Update() { 
     if (Input.GetMouseButtonUp(0)) { 
      var hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero); 

      if (hit.collider != null) { 
       var e = hit.collider.gameObject; 

       Debug.Log(e.transform.position.x + ":" + e.transform.position.y); 
      } 
     } 
    } 
} 

Lorsque je clique/toucher une cellule, parfois le coup est bon et la cellule se révèle, parfois le coup est toujours faux (il est comme Je touche la mauvaise cellule) et parfois cela dépend de la position de mon clic (voir les images ci-dessous). Je clique sur la partie gauche de la cellule, la console dit que je clique sur la cellule à gauche

Je clique sur la partie droite de la cellule, la console dit que je clique sur la bonne cellule (et la révèle). Dans ce cas c'est gauche/droite mais ça peut être haut/bas, un coin ... good raycast

Je ne sais pas si mon problème est très bien expliqué désolé, et mon anglais n'est pas parfait ... Don N'hésitez pas à me demander plus de détails!

+1

S'agit-il d'une interface utilisateur sous une toile ou simplement une image-objet? S'il vous plaît poster une capture d'écran de l'image réelle dans la scène avec l'une des cellules sélectionnées. Je veux voir les propriétés de la cellule. – Programmer

Répondre

0

Ok, je trouve le problème.

La cellule de gauche avait une échelle de 2 de sorte qu'elle chevauche la cellule de droite.

0

I Devinez Voici un problème avec le chevauchement du collisionneur. vous devez juste réinitialiser tout le collisionneur et le vérifier, est-il chevaucher sur n'importe quel objet ou non?

vous pouvez vérifier colider sur le mode de jeu, allumer "Gizmo". donc vous verrez tout le collisionneur et le vérifierez-vous encore est-il chevauchant là-bas ou pas?