Iboshido Geschrieben 16. März 2017 Melden Share Geschrieben 16. März 2017 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 More sharing options...
Felix K. Geschrieben 16. März 2017 Melden Share Geschrieben 16. März 2017 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 More sharing options...
Iboshido Geschrieben 17. März 2017 Autor Melden Share Geschrieben 17. März 2017 und wie genau würde ich überprüfen ob das obj in der area ist? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
TobLine Geschrieben 17. März 2017 Melden Share Geschrieben 17. März 2017 Das kannst du mit ontriggerstay2d und ontriggerexit2d überprüfen: https://docs.unity3d.com/ScriptReference/Collider2D.OnTriggerExit2D.html also bei ontriggerstay2d z.b. isinArea true setzen und bei ontriggerecit2d isinArea false setzen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.