This site uses strictly necessary cookies. More Information

X- 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

### Welcome to Unity Answers

The best place to ask and answer questions about development with Unity.

To help users navigate the site we have posted a site navigation guide.

If you are a new user to Unity Answers, check out our FAQ for more information.

Make sure to check out our Knowledge Base for commonly asked Unity questions.

If you are a moderator, see our Moderator Guidelines page.

We are making improvements to UA, see the list of changes.

### Follow this Question

### Related Questions

How do I make an angle with the X axis, Y axis, and Z axis and not rotate AROUND the axis? 0 Answers

Make an object point to another which keeping its forward along an axis 0 Answers

made a camera relative movement, but it works weird when player rotates. 0 Answers

Check if rotation (only on Y axis) of some object toward another is finshed? 0 Answers

Trouble with Camera Rotation Math 2 Answers