Ich habe Probleme mit diesem für einige Zeit jetzt verlassen. Ich habe GameObject, eine Kugel, die mein Spieler auf einem 3D-Terrain ist. Ich habe eine Kamera, die immer auf einem festen Abstand von dem Spieler, es folgt, wo er mit folgenden Skript geht:Kamera immer hinter Spieler in Unity3d
public GameObject player;
private Vector3 offset;
// Use this for initialization
void Start() {
offset = transform.position - player.transform.position;
}
void LateUpdate() {
transform.position = player.transform.position + offset;
}
So weit so gut. Was ich eigentlich will, ist, dass die Kamera mit dem Player rotiert, also immer in die Richtung schaut, in der sich die Kugel bewegt, aber immer im selben festen Abstand hinter dem Player bleibt, so dass der Player immer in der Kameraansicht sichtbar ist .
Es gibt viele Skripte, aber das Problem mit den Onces, die ich bisher gesehen habe, ist, dass die Kamera tatsächlich mit dem Player rotiert, aber weil der Player tatsächlich eine rollende Kugel ist, rollt und dreht sich die Kameraansicht auch.
Das beste Skript, das ich bisher gefunden habe, ist unten, aber dieses hat das selbe Problem wie die anderen Onces, die Kamera rollt mit dem Player.
public Transform target;
public float distance = 3.0f;
public float height = 3.0f;
public float damping = 5.0f;
public bool smoothRotation = true;
public bool followBehind = true;
public float rotationDamping = 10.0f;
void Update() {
Vector3 wantedPosition;
if(followBehind)
wantedPosition = target.TransformPoint(0, height, -distance);
else
wantedPosition = target.TransformPoint(0, height, distance);
transform.position = Vector3.Lerp (transform.position, wantedPosition, Time.deltaTime * damping);
if (smoothRotation) {
Quaternion wantedRotation = Quaternion.LookRotation(target.position - transform.position, target.up);
//Quaternion ownRotation = Quaternion.RotateTowards;
transform.rotation = Quaternion.Slerp (transform.rotation, wantedRotation, Time.deltaTime * rotationDamping);
}
else transform.LookAt (target, target.up);
}
Kann mir bitte jemand helfen?
Ist Ihr _Camera_ 'GameObject' ein Kind der Sphäre? – Hristo
Nein. Ich habe das versucht, aber es hatte das gleiche Ergebnis. – HB1963
Haben Sie versucht, die 'smoothRotation' Funktion zu entfernen (in Ihrem Fall die' if' Anweisung)? – Hristo