Jump to content
Unity Insider Forum

Objekt per Touch an eine andere Stelle bewegen (2D)


Mali97

Recommended Posts

Hallo zusammen,

ich hänge seit ein paar Tagen an einem Script, welches ich aus einem YouTube-Tutorial habe. Ich bin leider noch Anfängerin, aber für mich sieht es logisch aus und in dem Tutorial (6 Jahre alt) hat es auch funktioniert. Seit dem ich das Script drin habe, empfielt Unity den SafeMode :(

Wie die Überschrift sagt, soll man das Bild per Touch über den Bildschirm ziehen können und wo anders plazieren können.

Vielen lieben Dank im Voraus, Mali

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;

public class DragController : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{
    public static GameObject mydraggablesprite;
    Vector3 starPosition;
    float zDistanceToCamera;
    Vector3 touchOffset;

    public void OnBeginDrag(PointerEventData eventData)
    {
        mydraggablesprite - gameObject;
        starPosition = transform.position;
        zDistanceToCamera = Mathf.Abs(starPosition.z - Camera.main.transform.position.z);
        touchOffset = starPosition - Camera.main.ScreenToWorldPoint
            (new Vector3(Input.mousePosition.x, Input.mousePosition.y, zDistanceToCamera));

    }

    public void OnDrag(PointerEventData eventData)
    {
        if (Input.touchCount > 1)
            return;

        transform.position - Camera.main.ScreenToWorldPoint
            (new Vector3(Input.mousePosition.x, Input.mousePosition.y, zDistanceToCamera)) + touchOffset;
    }

    public void OnEndDrag(PointerEventData eventData)
    {
        mydraggablesprite - null;
        touchOffset = Vector3.zero;
    }
}

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn ein Script nicht kompiliert, hast du immer (mindestens) eine Fehlermeldung in deiner Konsole. Die kannst du oben über "Windows -> General -> Console" öffnen. Einmal darin auf Clear drücken, dann verschwinden alle Meldungen, die nicht Compilerfehler sind (also die Fehler, die in deinem Code sind und Unity daran hindern, ihn zu kompilieren und zu benutzen).

Wenn du uns den/die Fehler hier hinkopierst, machst du uns damit das Leben viel einfacher :)

Davon mal abgesehen hast du mehrere Male Zeilen in der Form "a - b" im Code. Zwei Dinge voneinander abziehen ist aber keine vollständige Anweisung. Du musst das Ergebnis auch in irgendeiner Weise benutzen, z.B. indem du es in eine Variable schreibst. Ich nehme aber an, dass du in Wirklichkeit einfach nur "=" schreiben wolltest und nicht "-".

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1 month later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Lädt...
×
×
  • Neu erstellen...