Jump to content
Unity Insider Forum

Probleme mit Drag and Drop und transform.position


Recommended Posts

Hallo zusammen,

ich bin noch recht neu in Unity3d und habe im Moment einfach etwas zuviel Zeit also habe ich mich mal angefangen mich damit zu geschäftigen. C# Grundkenntnise sind noch aus dem Studium vorhanden.

Im westenlichen habe ich angefangen dieses Tutorial durchzuarbeiten: https://www.youtube.com/watch?v=ZW6RCKVnqT4&index=1&list=PLivfKP2ufIK78r7nzfpIEH89Nlnb__RRG

Das hat auch alles soweit geklappt, bis zum DragnDrop.

Immer wenn ich die Maustaste wieder loslasse, bleibt das Icon nicht an der Mausposition stehen sondern springt Wild herum.

Die Bilder 1 -3 Zeigen das Handling.

Die ItemData.cs mit dem DragnDrop Handling.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
public class ItemData : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{

    public Item item;
    public int amount = 1;
    private Transform originalParent;
    private Vector2 offset;

    public void OnBeginDrag(PointerEventData eventData)
    {
        if(item != null)
        {
            offset = eventData.position - new Vector2(this.transform.position.x, this.transform.position.y);
            originalParent = this.transform.parent;
            this.transform.SetParent(this.transform.parent.parent);
            this.transform.position = eventData.position -offset;
            
        }
    }

    public void OnDrag(PointerEventData eventData)
    {
        if (item != null)
        {
            this.transform.position = eventData.position -offset;

        }     
    }

    public void OnEndDrag(PointerEventData eventData)
    {        if(item != null)
        {
            this.transform.SetParent(originalParent);
            this.transform.position = originalParent.transform.position;
        }

    }

}

 

Hab schon in den Kommentaren zu den Videos geguckt aber auch nicht gefunden was Hilft, auch weiteres Suchen nach DragNDrop Problemen und transform.postion problemen hat mich nicht weiter gebracht. Der Canvas Render Mode ist Screen Space Overlay.

Irgendjemand eine Idee woran das liegen kann?

Grüße

Screenshot_1.png

Screenshot_2.png

Screenshot_3.png

ItemData.cs

Link zu diesem Kommentar
Auf anderen Seiten teilen

Der hat im Video ein Layoutelement dem Item hinzugefügt und damit das Icon vom Layout gelöst und somit springt es nicht mehr. Part 5a 14:40.

Zudem setzt er im 5. Teil einfach das Item immer wieder an den seine Ausgangsposition zurück, ein echtes Platzieren in einen neuen Slot kommt erst in den nachfolgenden Teilen...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...