Jump to content
Unity Insider Forum

Frage: genau bis 90 Grad rotieren


Reggie()

Recommended Posts

Hallo.

Ich möchte, dass ein Objekt sich um genau 90 Grad dreht. In der Update() dreht es sich pausenlos. 

ist bei 

Tansform.Rotate(new Vector3(90,0,0) * Time.deltaTime);

die 90 nicht der Ziel-Wert?

ich habe versucht das mit einer Bedingung auf Transform.rotation.x abzufangen und zu beenden. ohne Erfolg.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nein,

wenn du 'Rotate()' in die Update Methode schreibst, wird das Object jeden Frame um die '90 * Time.deltaTime' um die x-Achse gedreht.

Also dreht sich dein Objekt dauerhaft mit 90° pro Sekunde.

 

Wenn man nach 'rotate 90 degree smooth' sucht, findet z.B. das hier: https://answers.unity.com/questions/1202034/smooth-90-degree-rotation-on-keypress.html

Link zu diesem Kommentar
Auf anderen Seiten teilen

Habe nun folgenden Code

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Rotator : MonoBehaviour {

	public GameObject topSide;
	public float speed;

	IEnumerator RotateMe(Vector3 byAngles, float inTime) 
	{    
		var fromAngle = topSide.transform.rotation;
		var toAngle = Quaternion.Euler(topSide.transform.eulerAngles + byAngles);

		for(var t = 0f; t < 1; t += Time.deltaTime/inTime) 
		{
			transform.rotation = Quaternion.Slerp(fromAngle, toAngle, t);
			yield return null;
		}
	}
	void Start () 
	{
		StartCoroutine(RotateMe(Vector3.left * 90, 0.8f));
	}
}

da rührt sich garnix :(

Link zu diesem Kommentar
Auf anderen Seiten teilen

Klar geht das auch ohne Coroutine^

Quaternion targetRotation;
float rotSpeed;

void Awake(){
 setTargetRotationEuler(new Vector3(90, 0, 0));
}

void Update(){
 transform.rotation = Quaternion.RotateTowards(transform.rotation, targetRotation, rotSpeed * Time.deltaTime);
}

void setTargetRotationEuler(Vector3 rot){
 targetRot = Quaternion.Euler(rot);
}

 

Mir würden auch noch drei andere Wege einfallen, wie man das umsetzen könnte..

Welcher Weg der beste ist kommst stark auf deinen Zusammenhang an..

 

Edit:

Möchtest du 'transform' drehen, oder das GameObject 'topSide' ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

also, ich will einen sich öffnenden Würfel machen. Auf Youtube habe ich nix dazu gefunden. Ich habe es fast geschafft. alle Seiten und der Deckel klappen auseinander. Aber der Decker sollte an eine der Seiten "hängen" und wenn sich die Seite dreht, sollte der Deckel sich mitdrehen (kompliziert zu erklären..)

Kann ich meine szene irgendwo hochladen, damit ihr euch die angucken könnt?

Link zu diesem Kommentar
Auf anderen Seiten teilen

EXAKT DAS :) Animation weiss ich auch nicht wie das geht, daher wollte ich es als 3D-Modell machen und dabei noch was lernen (Unity ist mir immernoch in vielen Dingen ein Rätsel)

ps: woher hast du das? Ist das in 3D? ich würde gern in meinem Spiel loot in so einem Würfel aufdecken

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...