Jump to content
Unity Insider Forum

Einen Ball bewegen als Spieler


Footloose

Recommended Posts

Hey :)

Ich hab da eine kleine Frage.
Und zwar habe ich einen Ball:

58da6b43a1d8b_Screenshot(79).thumb.png.5018e4d42913817e089fd2fb10994136.png

Wie ihr im Bild schon sehen könnt schaut der etwas nach unten, obwohl er eigentlich geradeaus schaut.
Die Augen sind ein eigenständiges Objekt. Ich möchte dass die immer geradeaus zeigen (also später in Blickrichtung des Spielers).

Ich möchte also dass sich nur die Kugel dreht und zwar nicht von selbst (daher ein Cube Collider) sondern
nur wenn der Spieler die Kugel auch bewegt. Wie mache ich das?

Edit: Es geht nicht darum wie man etwas dreht, sondern wie ich nur ein Objekt drehe.
Also die Datei (.obj) besteht aus 3 Objekten, der Sphere, also die Kugel, sowie den weißen und schwarzen Augen.
Und nur eines davon will ich bewegen.

Liebe Grüße :) 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hey,

Deine 3 Objekte sind einzelen? Also lassen sich die Komponenten einzeln aus dem Mainobjekt ziehen? Falls ja würde ich einfach den Body in einen Script ansprechen und diesen rotieren lassen.

Bsp:

 

public Transform Body;

void rotateBody(){
if(Input.GetKey(KeyCode.W)){

Body.rotate(0,0.1,0);

}
}

Ist jetzt kein vollständiger Code sondern nur ein Denkanstoß.

MfG Timm

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich würde einfach die Augen nicht der Kugel unterordnen und mit dem Standard-Follow-Script die Position der Augen an die Kugel heften:

public Transform target;

void LateUpdate()
{
  transform.position = target.position;
}

Die Blickrichtung wird etwas kniffliger. Deine Kugel wird sich nach ein paar mal um die Kurve rollen völlig krumm gedreht haben. Da ist dann nichts mehr mit Blickrichtung auslesen.

Du musst die Rotation des Augen-Objekts entsprechend von etwas anderem auslesen. Möglich wäre z.B. Rigidbody.velocity der Kugel, und dann Transform.forward der Augen darauf setzen, bzw. auf eine Kopie des Vektors mit y = 0.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du kannst es entweder wie @Sascha beschreibt machen und mit der Velocity arbeiten oder einfach direkt den Input nehmen und daraus die Blickrichtung berechnen. Die Frage ist, ob Du auch nach unten gucken willst, wenn er runterfällt oder hochgucken, wenn er springt. Dann wäre das mit der Velocity wesentlich einfacher.

Ansonsten nimmst Du einfach X- und Z-Achse deines Inputs, baust daraus einen Vector(x, 0, z) und lässt die Augen relativ vom Körper da hingucken, ggf. noch mit etwas Lerp, damit es "smooth" ist.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...