Jump to content
Unity Insider Forum

Leaderboard


Popular Content

Showing content with the highest reputation on 06/29/2018 in all areas

  1. 1 point
    Also ein Fehler ist schon mal "between", der Distanzwert den du mit Vector3.Distance zurück bekommst, ist immer ein Float-Wert. Des weiteren, willst du die Aktion in jedem Frame machen? Denke nicht, deshalb solltest du sie in eine Methode stecken und am Anfang in der Start-Methode aufrufen. Andernfalls wird die Funktion 60 mal die Sekunden aufgerufen. Desweiteren, Vector3.Distance ist ein Float-Wert, schon 0.004 ist zwar für dich 0, nicht aber für das Scrtipt, probiers mal so: #pragma strict var object : Transform; var between: float = 0; funktion Start(){ Position(); } function Position () { between = Vector3.Distance(transform.position,object.transform.position); if (between < 5){ object.transform.position = new Vector3((object.transform.position.x + between), object.transform.position.y, object.transform.position.z); } } Ich hab gerade kein VS auf, daher, sorry wenn ich mich verschrieben habe. Du kontrollierst erst mal die Distanz zwischen beiden Objekten. Die Distance habe ich in der if-Abfrage mal auf 5 gesetzt. Die zulässige Distanz wäre zwei mal die hälfte beider Objekte, dann würden sie Kante an Kante liegen. Wie du das gern willst, kannst du das nun so haben wollen oder eine feste Ausrichtung machen, wenn du es neu positionierst. Dies machst du mit dem Inhalt der if-Abfrage. Hierbei setzt du das Objekt nun neu und verschiebst seine X-Achse mit dem Abstand. Statt Between könntest du auch sagen, ich will genau von Mitte zu Mitte 10 Einheiten haben.

Announcements

Hy, wir programmieren für dich Apps(Android & iOS):

Weiterleitung zum Entwickler "daubit"



×