Jump to content
Unity Insider Forum

Obj Dragable in Area


Iboshido

Recommended Posts

hey leute,

ich hab ein Obj_Block und ein leeres Obj_dragable_area mit einem BoxCollider2d, haken im "is trigger" gesetzt. Also ich würde gerne das Obj_Block mit der Maus zum ziehen können, aber auch nur wenn Obj_Block im Obj_dragable_area ist. Bisher sieht der code wie folgt aus:

//im  Obj_Block

void OnMouseDown()// Funktion wird aufgerufen wenn linke Maustaste gedrückt wird
    {
        //püft ob Spieler-Colider == Mausposition und isPicking== false
        if (Block_collider.GetComponent<CircleCollider2D>().bounds.Contains((Vector2)Camera.main.ScreenToWorldPoint(Input.mousePosition)) && !isPicking) 
        {
            isPicking = true;
        }

    }


    void OnMouseDrag()// Funktion wird aufgerufen wenn wenn linke Maustaste gedrückt und Maus in Bewegung
    {
        if (isPicking)
        {
            rb2d.MovePosition(Camera.main.ScreenToWorldPoint(Input.mousePosition));//setze Spieler-Position gleich Mausposition
        }
    }

    void OnMouseUp()// Funktion wird aufgerufen wenn wenn linke Maustaste los gelassen
    {
        isPicking = false;
        
    }

Was müsste ich ergänzen um Obj_block nur im Obj_dragable_area bewegen zu dürfen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi.

Du müsstest überprüfen, ob sich das Objekt im der Area befindet. Wenn das Objekt in der Area befindet, könntest Du einen bool auf true setzen, z.B isInArea = true. Anderfalls auf false. Dann kannst Du den bool mit in der OnMouseDrag in die If-Anweisung stecken.
 

if (isPicking && isInArea == true)
{
	rb2d.MovePosition(Camera.main.ScreenToWorldPoint(Input.mousePosition));//setze Spieler-Position gleich Mausposition
}

MfG Felix

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...