the-grandmaster Geschrieben 23. Juli 2016 Melden Share Geschrieben 23. Juli 2016 Ich möchte meinen Player langsam in Richtung Klick drehen. using UnityEngine; using System.Collections; public class Move : MonoBehaviour { public float speed = 1f; void Start () { } void Update () { if(Input.GetMouseButtonDown(0)) { Plane playerPlane = new Plane(Vector3.up, transform.position); Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition); float hitdist = 0.0f; if (playerPlane.Raycast (ray, out hitdist)) { Vector3 targetPoint = new Vector3(ray.GetPoint(hitdist).x, transform.position.y, ray.GetPoint(hitdist).z); Quaternion targetRotation = Quaternion.LookRotation(targetPoint - transform.position); transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, speed * Time.deltaTime); } } } } Das habe ich bis jetzt. Aber leider dreht sich das Objekt pro Klick nur ein kleines stück, ich muss also dauerklicken machen. Sollte aber doch durchlaufen? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
MarcoMeter Geschrieben 23. Juli 2016 Melden Share Geschrieben 23. Juli 2016 Deine Rotationslogik sollte außerhalb von Input.GetMouseButtonDown liegen bzw. könntest du die Rotationslogik dann auch eine Coroutine machen lassen. Jedenfalls so wie es jetzt da steht wird logischerweise nur etwas bei einem Klick ausgeführt. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
the-grandmaster Geschrieben 23. Juli 2016 Autor Melden Share Geschrieben 23. Juli 2016 Ich verstehe nicht so ganz was ich wie auslagern kann Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
malzbie Geschrieben 23. Juli 2016 Melden Share Geschrieben 23. Juli 2016 Na du setzt einfach eine boolsche Variable auf true, die du woanders im Code abfragst. Wenn die Variable true ist, dann wird gedreht. Wenn nicht dann wird nicht gedreht. So wie du das jetzt machst, kann es nicht gehen, denn du nutzt GetMouseButtonDown ! Down bedeutet, es wird nur einmalig der Moment ausgewertet, wo die Maus von nicht gedrückt auf gedrückt über geht. Bei Up ist es genau andersherum. Down bedeutet nicht , dass was gemacht wird solange gedrückt wird. Willst du das machen, dann nutze einfach GetMouseButton() ohne Up oder Down. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
the-grandmaster Geschrieben 23. Juli 2016 Autor Melden Share Geschrieben 23. Juli 2016 Das klappt jetzt soweit.... wie mache ich das, das nur Klicks in einen bestimmten Umkreiss gewertet werden? Habe es jetzt so versucht. if(Input.GetMouseButton(0) && Vector3.Distance(transform.position, Player.transform.position) < Ent) aber ds scheint nicht zu gehen? Den Player habe ich in Unity zugewiesen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
MarcoMeter Geschrieben 23. Juli 2016 Melden Share Geschrieben 23. Juli 2016 if(Input.GetMouseButton(0) && Vector3.Distance(transform.position, Player.transform.position) < Ent) aber ds scheint nicht zu gehen? Der Fehler könnte bei transform.position liegen. Entweder verwendest du die Koordinaten des Mauszeigers oder du entsendest einen RayCast und nutzt die Position des Auftreffens (z.B. Auftreffen auf den Boden). Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
the-grandmaster Geschrieben 23. Juli 2016 Autor Melden Share Geschrieben 23. Juli 2016 Ich habe mir jetzt übelegt in der Bildschirm mitte einen bereich zu suche mit hochMin = Screen.height / 2 - 50; so das ich vier daten habe und nur wenn wenn der Mauszeiger in dem Bereich ist soll GetMouseButton ausgeführt werden. nur wie frage ich die position des Mauszeigers ab? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
TobLine Geschrieben 25. Juli 2016 Melden Share Geschrieben 25. Juli 2016 Hi, ich würde das wie folgt angehen: -Es gibt ein Gameobject mit einem Boxcollider der deinen Bereich angibt. -Bei GetMousButton überprüfst du dann mit einem Linacast oder Raycast ob die Maus in dem Collider oder außerhalb ist. 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.