C Sharp – die besten Beiträge

Unity Raycast / Gebäude anklicken?

Ich versuche aktuell ein Panel zu öffnen, wenn man auf ein platziertes Gebäude klickt (2D in Grid System)Das hier ist der kritische Code Ausschnitt:

void Update() {
  if (!Input.GetMouseButtonDown(0)) return;
  //if (EventSystem.current != null && EventSystem.current.IsPointerOverGameObject()) return;

  Vector3 worldPos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
  Vector2 point2D = new Vector2(worldPos.x, worldPos.y);

  RaycastHit2D hit = Physics2D.Raycast(point2D, Vector2.zero, 0f);

  Debug.Log($"Klick bei {point2D}, Treffer: {(hit.collider != null ? hit.collider.name : "kein Treffer")}");
  Debug.DrawLine(worldPos + Vector3.left * 0.2f, worldPos + Vector3.right * 0.2f, Color.green, 1f);
  Debug.DrawLine(worldPos + Vector3.up * 0.2f, worldPos + Vector3.down * 0.2f, Color.green, 1f);

  if (hit.collider != null) {
    var b = hit.collider.GetComponent<Building>();
    if (b != null) {
      Debug.Log($"Gebäude getroffen: {b.name}");
      StartCoroutine(OpenMenuDelayed(b));
      return;
    }
  }

  UIManager.Instance.ShowBuildingMenu(null);
} 

Die Kommentierte Zeile (die dritte) ist das Problem, sobald sie reingenommen wird kann ich das Gebäude nicht mehr anklicken (andere Tiles schon). Ich debugge jetzt schon etwas länger, weiß aber nicht wie ich das lösen soll (bin noch etwas neu bei Unity). Das Problem ist, dass ohne die diese Zeile es möglich ist durch UI Fragmente zu klicken, wie Buttons oder Menüs.

C Sharp, Unity

Meistgelesene Beiträge zum Thema C Sharp