|
|
|
 Code Snippets Beispiele für Rotationen & Physik | | | |
 ![Einen Kommentar (einer Stelle[markiert]) hinzufügen](imgs/iconaddobject.gif)
|  Rotationen: Euler vs. Quaternion var geo_laenge : float = 0.0; var geo_breite : float = 0.0;
function Update() { var dt : float = Time.deltaTime; FliegUmDieErde_Quaternion(dt); //FliegUmDieErde_Euler(dt); }
function FliegUmDieErde_Quaternion (dt : float) { var dx : float = Input.GetAxis("Horizontal") * 100.0 * dt; var dy : float = Input.GetAxis("Vertical") * 100.0 * dt; var dz : float = 0; if (Input.GetKey(KeyCode.Y)) dz = -1; if (Input.GetKey(KeyCode.X)) dz = 1; transform.parent.Rotate(transform.right, dy, Space.World); transform.parent.Rotate(transform.up, -dx, Space.World); transform.parent.Rotate(transform.forward, -dz, Space.World); }
function FliegUmDieErde_Euler (dt : float) { var dx : float = Input.GetAxis("Horizontal") * 180.0; var dy : float = Input.GetAxis("Vertical") * 180.0; geo_laenge += dx * dt; geo_breite += dy * dt; transform.parent.rotation.eulerAngles = Vector3(geo_breite, -geo_laenge, 0.0); } | | (Hardmeier Dario B) 22-4-2009 / 23:12 |  |
|  Physik: Schrittverfahren var px : Vector3 = Vector3.zero; // Ort var pv : Vector3 = Vector3.zero; // Geschwindigkeit var pa : Vector3 = Vector3.zero; // Kraft
var sonne : Transform; var sonne2 : Transform;
function Start () { pv = new Vector3(2.5, 0.0, 2.5); }
function Update () { var dt : float = Time.deltaTime; var alpha = 20.0; var alpha2 = 10.0;
// Kraft auf 0 pa = Vector3.zero; // erster Planet if ((sonne.position - px).magnitude > 0.0001) pa += alpha * (sonne.position - px) / Mathf.Pow((sonne.position - px).magnitude, 3);
// zweiter Planet if ((sonne2.position - px).magnitude > 0.0001) pa += alpha2 * (sonne2.position - px) / Mathf.Pow((sonne2.position - px).magnitude, 3); // Konstante Kraft pa += Vector3(-2.0, 0.0, -1.0); // Steuerung pa += new Vector3(Input.GetAxis("Horizontal") * 8.0, 0, Input.GetAxis("Vertical") * 8.0); pv = pv + pa * dt; // Reibung var reibung : float = 0.0; pv = pv * (1 - reibung); px = px + pv * dt; transform.position = px; } | | (Hardmeier Dario B) 22-4-2009 / 23:12 |  |
|
|
|