Dies ist seit einer Woche ein Problem. Ich kann es nicht herausfinden. Ich versuche, mein U-Boot um seine Y-Achse zu drehen, sobald es auf dem Kopf steht. Es dreht sich an meiner Mausposition.C# Einheit Fehler kann nicht mein U-Boot auf seiner y-Achse spiegeln
Dieser Code dreht mein U-Boot auf Mausposition, die perfekt ist.
Vector3 RayPos = cam.WorldToScreenPoint(transform.position);
Vector3 dir = Input.mousePosition - RayPos;
float angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;
Quaternion rotation = Quaternion.AngleAxis(angle, Vector3.forward);
transform.rotation = Quaternion.Slerp(transform.rotation, rotation,
rotateSpeed * Time.deltaTime);[sub flipping y][1]
Jetzt ist dieser Code mein Problem. Sobald mein Sub auf den Kopf geht, dreht es sich um (y), aber es macht es nur einmal und dann, wenn ich den richtigen Weg zurück gehe, wird es nicht mehr (y) kippen.
Debug.Log(Mathf.Abs(Vector3.Dot(transform.up, Vector3.up)));
if (Mathf.Abs(Vector3.Dot(transform.up, Vector3.down)) < 0.125f)
{
if (Mathf.Abs(Vector3.Dot(transform.right, Vector3.down)) > 0.825f)
{
SubTrans.localScale = new Vector3(transform.localScale.x, -1,
transform.localScale.z);
}
else
{
SubTrans.localScale = new Vector3(transform.localScale.x, 1,
transform.localScale.z);
}
}
Dies ist das zweite Mal, dass Sie diese Frage stellen. Sie erhalten keine Antworten, weil es schwierig ist, Ihr Problem zu verstehen. Vielleicht solltest du ein animiertes gif anzeigen, wie das Problem aussieht. – Programmer