Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

20.12.2012, 16:14

Unity 3D "SmoothFollow" Skript Problem

Hallo

Der Titel wirkt vielleicht nicht wirklich einleuchtend da es nicht möglich ist das Problem schnell zu erklären, daher ist hier eine längere Version:

Ich habe für ein Unity 3D Rennspiel das "Smooth Follow" Skript runtergeladen, es bewirkt dass die Kamera einem Ziel (In meinem Fall dem Auto) gedämpft folgt. Funktioniert soweit auch, nun ist mir aber aufgefallen dass sich die Seite von der das Auto gefilmt wird ändert sobald das Auto eine Querneigung besitzt. Das bedeutet dass das Auto zb. von Vorne gefilmt wird wenn der Wagen eine Strecke entlang fährt welche nach oben geht.
Ich möchte aber dass man das Auto immer von hinten sieht, wie kann man das Problem lösen?
Ich hab ein paar Bilder um es zu verdeutlichen:
»Jussuv« hat folgende Bilder angehängt:
  • Unity 2012-12-20 16-09-18-36.jpg
  • Unity 2012-12-20 16-08-24-51.jpg
Dieser Satz ist eine Lüge!

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

2

20.12.2012, 16:18

Wie soll dir da jemand helfen ohne das Skript zu kennen?
Das was du schreibst ist im Prinzip folgendes:
Hallo, ich habe im Internet irgendwo irgendeinen Code geladen. Dieser Code verhält sich nicht wie ich mir das wünsche. Wie änder ich das?

Da kann dir so niemand helfen;)
Du könntest dir den Code zum Beispiel angucken und versuchen so umzuschreiben, dass sichergestellt ist, dass die Kamera immer hinter dem Auto sind. Die Kamera könnte zum Beispiel immer in einem bestimmten Bereich hinter dem Auto liegen müssen. So dass sie sich nicht zu weit weg bewegt und nicht zu weit weg gedreht wird. Oder du lädst ein anderes Skript. Unity liefert soweit ich das weiß aber auch von Haus aus schon solche Skripte.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

3

20.12.2012, 16:23

@Schorsch: Sorry, hab vergessen ihn zu posten ;)


Das Skript:

// The distance in the x-z plane to the target
var distance = 10.0;
// the height we want the camera to be above the target
var height = 5.0;
// How much we
var heightDamping = 2.0;
var rotationDamping = 3.0;

// Place the script in the Camera-Control group in the component menu
@script AddComponentMenu("Camera-Control/Smooth Follow")


function LateUpdate () {
// Early out if we don't have a target
if (!target)
return;

// Calculate the current rotation angles
wantedRotationAngle = target.eulerAngles.y;
wantedHeight = target.position.y + height;

currentRotationAngle = transform.eulerAngles.y;
currentHeight = transform.position.y;

currentRotationAngle = Mathf.LerpAngle (currentRotationAngle, wantedRotationAngle, rotationDamping * Time.deltaTime);

// Damp the height
currentHeight = Mathf.Lerp (currentHeight, wantedHeight, heightDamping * Time.deltaTime);

// Convert the angle into a rotation
currentRotation = Quaternion.Euler (0, currentRotationAngle, 0);

// Set the position of the camera on the x-z plane to:
// distance meters behind the target
transform.position = target.position;
transform.position -= currentRotation * Vector3.forward * distance;

// Set the height of the camera
transform.position.y = currentHeight;

// Always look at the target
transform.LookAt (target);
}

Ich habe mir das Skript schon mehrmals angesehen, ich finde aber keine Möglichkeit es entsprechen zu ändern ohne das Skript zu zerstören
Dieser Satz ist eine Lüge!

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

4

20.12.2012, 17:21

Du hast doch nen Winkel den du berechnest. Wenn du jetzt möchtest, dass die Kamera hinter dem Auto bleibt, dann berechne dir den Minimal- und Maximalwinkel. Dann hast du es ja eigentlich schon.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Werbeanzeige