Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
general [2020/04/10 18:32]
paul [Rotations]
— (current)
Line 1: Line 1:
-====== General ====== 
- 
-===== Rotations ===== 
-Unity uses 3 rotation systems. [[https://www.youtube.com/watch?v=kYOtk5a6_x4|Intro to Quaternion Rotations (in Unity)]] 
- 
-  - Euler Angers - rotation about x, y, z axis 
-  - Angle Axis - A normalized Vector3 representing the axis about which to rotate by float angle amount 
-  - Quaternions - Angle Axis rotation representation that have been scaled to improve performance. 
- 
- 
-==== Calculations ==== 
-<code c#> 
- 
-// Get the direction to a camera 
-Vector3 directionToCamera = Camera.main.transform.position - transform.position; 
- 
-transform.rotation = Quaternion.FromToRotation(Vector3.back, directionToCamera); 
-</code> 
-==== Quaternions ==== 
- 
-They are in the form of ''x, y, z, w''. They are always normalized, so ''x² + y² + z² + w² = 0'' 
- 
-=== Creating Quaternions === 
-<code c#> 
-// This has to be normalized. We generally never use this 
-Quaternion rotation = new Quaternion(0,0,0,1); 
- 
-// You usually create a rotation in euler and then convert to quaternion. 
- 
-==== Convertions ==== 
-<code c#> 
-// Convert from Quaternion to Euler: 
-Vector3 inEuler = quaternionRotation.eulerAngles; 
- 
-// Convert Euler to Quaternion 
-Quaternion inQuaternion = Quaternion.Euler(inEuler); 
- 
-// To Angle-Axis 
-Quaternion randomQuaternion = Random.rotation; 
-float angle; 
-Vector3 axis; 
- 
-randomQuaternion.ToAngleAxis(out angle, out axis); 
- 
-// And back 
-Quaternion rotation = Quaternion.AngleAxis(angle,axis); 
-</code> 
  
  • general.1586543538.txt.gz
  • Last modified: 2020/04/10 18:32
  • by paul