# rotation3D

> Override the 3D rotation of particles this system emits.

## Definition

* **Type:** Property
* **Namespace:** [UnityEngine](/engine/6000.0/script-reference/unityengine.md)
* **Assembly:** UnityEngine.ParticleSystemModule

```csharp
public Vector3 rotation3D { get; set; }
```

### Remarks

Note that the values are Euler angles. Additional Resources: [ParticleSystem.Particle.rotation3D](/engine/6000.0/script-reference/unityengine/particlesystem/particle/rotation3d.md).

### Examples

```csharp
using UnityEngine;

// In this example we have a Particle System emitting aligned particles; we then emit and override the rotation every 2 seconds.
public class ExampleClass : MonoBehaviour
{
    private ParticleSystem system;

    void Start()
    {
        // A simple particle material with no texture.
        Material particleMaterial = new Material(Shader.Find("Particles/Standard Unlit"));

        // Create a Particle System.
        var go = new GameObject("Particle System");
        go.transform.Rotate(-90, 0, 0); // Rotate so the system emits upwards.
        system = go.AddComponent<ParticleSystem>();
        go.GetComponent<ParticleSystemRenderer>().material = particleMaterial;
        var mainModule = system.main;
        mainModule.startRotation3D = true;

        // Every 2 seconds we will emit.
        InvokeRepeating("DoEmit", 2.0f, 2.0f);
    }

    void DoEmit()
    {
        // Any parameters we assign in emitParams will override the current system's when we call Emit.
        // Here we will override the rotation. All other parameters will use the behavior defined in the Inspector.
        var emitParams = new ParticleSystem.EmitParams();
        emitParams.rotation3D = new Vector3(45.0f, 20.0f, 35.0f);
        system.Emit(emitParams, 10);
    }
}
```
