Jump to content
Unity Insider Forum

Maus über BoxCollider2D erkennen


SloppeD

Recommended Posts

Hey, ich habe da eine Frage.. und zwar wollte ich erkennen ob meine Maus gerade über einem BoxCollider2D ist, OnMouseOver will ich nicht benutzen, da ich sehr viele Blöcke im Spiel habe und mein Boolean etwas rumbuggt :/

"Ich möchte ein Loch in die Wand bohren, aber einen Bohrer will ich nicht benutzen, weil meine Wand sehr dick ist und meine Steckdose etwas rumbuggt :/"

 

Was auch immer du für eine Lösung ohne OnMouseOver selber bauen wirst, sie wird nicht performanter laufen als OnMouseOver, weil OnMouseOver nichts weiter tut als das, was es muss.

Und dass "dein Boolean rumbuggt" ist Problem deines Codes, nicht von OnMouseOver.

Link zu diesem Kommentar
Auf anderen Seiten teilen

using UnityEngine;

using System.Collections;

 

namespace Game

{

public class Block2 : MonoBehaviour

{

public static bool canBuild = true;

 

public int hitsNeeded = 5;

 

int hit = 0;

 

// Use this for initialization

void Start ()

{

 

}

 

// Update is called once per frame

void Update ()

{

 

}

 

void OnMouseOver()

{

print("over");

canBuild = false;

}

 

void OnMouseDown()

{

print("down");

hit = hit + 1;

 

if (hit == hitsNeeded)

{

canBuild = true;

Destroy(gameObject);

}

}

 

void OnMouseExit()

{

print("exit");

canBuild = true;

}

}

}

 

In jedem Block steckt dieses Script und wenn ich mehrere Blöcke nebeneinander baue reagiert OnMouseOver bei einigen nicht mehr, das ist mein Problem.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn hit=hitsNeeded setzt du canBuild=true (obwohl es bei OnMouseOver false gesetzt wird).

Das heißt wenn 5mal gecklickt wird, zerstörst du das gameObject.

 

Ich würde das ganze mit OnMouseDown probieren und immer mit einem Linecast auf einen Collider abfragen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...