Jump to content
Unity Insider Forum

Objekt Rotation behält sich nicht


Mozart53
 Share

Recommended Posts

Wieso behält sich die Rotation nicht, obwohl ich sage, dass sie es soll?

 

public class MemoryCard : MonoBehaviour
{
    public int id;

    public float targetHeight = 0.7f;
    public float targetRotation = -90f;

    private void OnMouseDown()
    {
        FindObjectOfType<GameManager>().clicked(this);
    }

    private void Update()
    {
        float height = Mathf.MoveTowards(transform.position.y, targetHeight, 3 * Time.deltaTime);
        transform.position = new Vector3(transform.position.x, height, transform.position.z);

        Quaternion qtr = Quaternion.Euler(targetRotation, transform.transform.rotation.y, transform.rotation.z); //HIER
        transform.rotation = Quaternion.Lerp(transform.rotation, qtr, 10 * Time.deltaTime);
    }
}

 

Link to comment
Share on other sites

Ich gehe davon aus, dass es an der ständigen Umrechnung von Quaternion (was ein Vector4 ist) zu Euler (was ein Vector3 ist) und umgekehrt liegt.
Da wird es immer leichte Ungenauigkeiten geben.

Warum machst du es nicht so wie mit der Position?
Du willst doch scheinbar nur um die X Achse lerpen, es soll also zur -90 hin gehen.

Nimm dir also einmalig die Ausgangsrotation deines Objektes, z.B. in der Start(), und speichere sie in einer Vector3 Variable ab.

Jetzt lerpst du nur den x Wert dieses Vector3 und übergibst ihn dann wieder der Variable. Diesen nutzt du dann für dein Objekt.

Also so etwa:

Vector3 myEulers; // hier speichere ich die Grundausrichtung rein
float targetRotation= -90f;
void Start(){
  myEulers= transform.localEulerAngle; // hier hole ich mir die Grundausrichtung vom transform. Aber die lokalen Werte, falls es ein Kindobjekt ist
}
void Update(){
  myEulers.x=Mathf.Lerp(myEulers.x, targetRotation, 10*Time.DeltaTime); // nur das x vom Vector3 wird gelerpt.
  transform.localEulerAngles= myEulers; // jetzt alles dem transform übergeben
}

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...