Jump to content
Unity Insider Forum

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


Mali97
 Share

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 to comment
Share on other sites

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 to comment
Share on other sites

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

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

Loading...
 Share

×
×
  • Create New...