- Home /
transform.rotation vs Quaternion.Euler
I am using this to instantiate an object:
 Instantiate (spell, transform.position + transform.forward * 2, transform.rotation);
However when I switched to:
 Instantiate (spell, transform.position + transform.forward * 2, SprayDirection());
 Quaternion SprayDirection() {
         Quaternion spreadAngle;
         float spread = Random.Range (spreadMax * -1, spreadMax);
         spreadAngle =  Quaternion.Euler( transform.rotation.x , transform.rotation.y, transform.rotation.z);
         return spreadAngle;
     }
The object is always instantiated in the same direction, regardless of the actual rotation of the transform.
Answer by phxvyper · Jun 20, 2016 at 04:45 AM
A Euler Angle is an angle that you would think of as between 0 degrees and 360 degrees. transform.rotation is NOT a Euler Angle, it is a Quaternion.
3D Euler angles are represented by a Vector3 in Unity.
However, I'm assuming you want to multiply spread by the angle, so this is what you should do:
 Quaternion SprayDirection() {
     float spread = Random.Range(spreadMax * -1, spreadMax);
 
     // Get the eulerAngles of transform.rotation, multiply that vector by spread, then convert it back into a Quaternion
     // using Quaternion.Euler(Vector3 eulerAngles)
     return Quaternion.Euler(transform.eulerAngles * spread);
 }
Here is the docs for Quaternion.Euler: https://docs.unity3d.com/ScriptReference/Quaternion.Euler.html
transform.rotation: https://docs.unity3d.com/ScriptReference/Transform-rotation.html
and transform.eulerAngles: https://docs.unity3d.com/ScriptReference/Transform-eulerAngles.html
Your answer does explain the difference between the two. Thank you. Hover I found the solution by using:
  Instantiate (spell, transform.position + transform.forward * 2, transform.rotation* SprayDirection());
Your answer
 
 
             Follow this Question
Related Questions
Look at like rotating around y axis 1 Answer
ConfigurableJoint - angular positions (rotation) problem 1 Answer
Make Quaternion affected by float 1 Answer
Quaternion Slerp help 1 Answer
Reverse rotations problems... 2 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                