How can I rotate a particle effect?

I’m building a project based on the space shooter tutorial. In part three of the tutorial (about 8 minutes in to the video), we use a particle system to add an engine flare effect. The problem I’m trying to solve is that when I rotate the ship, I cannot get the engine flare to rotate with it. Even changing the Transform of the game objects doesn’t seem to affect this. you can see the problem in my screen cap. The engine flare is pointing straight up and down despite the rotation of the Player game object. How can I rotate this particle effect?

I know this question is old, but for those who are still looking for a solution, what you can do is:

  1. Go to your particle Renderer module
  2. Change the Render Mode option to Billboard
  3. Change the Render Alignment option to Local
  4. Now you can rotate your particles using the transform of the object.

PS.: I tested this on Unity 2018.1

Are we only giving hints now? Fine with me:
(partial spoiler):

Like many other things, particles can use xyz world space, which means they ignore facing and always use x=right … . This is good for a rolling, flaming log, where you always want +y to be up, for rising flame and smoke.

Or they can use localSpace, which means they use the xyz of their transform.

The setting has sort of an odd name, but it uses the words “space”, “local” and “global.”

(spoiler alert)
For Lady Stark there’s dead, and there’s dead.

also:

Simulation Space

[edit]
Whoops! My answer is completely wrong. I was getting mixed up with the older particle system.

Depending on which shape you select, the particles should always fire the way the transform is pointing. Sphere is always 360, hemisphere is always within 90 degrees of forwards, cone always aims the way the transform goes.

It’s very difficult to make a particleSystem that doesn’t spin when you do (except for a sphere, for obvious reasons.)

SimulationSpace is merely whether old particles track your motion.

Now, down in ForceOverLifeTime and VelocityOverLifetime, the settings for Local/Global really do pick which coord system to use. But not many people use those. For example, “thruster flames” are easy to make with a tight cone and sizeOverTime.

I faced the same problem while working with the Space Tutorial.
What worked for me is setting for both part_jet_flare and part_jet_core particle systems the start rotation in FixedUpdate() to be the same as the player object - i used two player objects with the second one to be inverted and I instantiated them in the game controller script.

pSys.startRotation = gameObject.transform.rotation.eulerAngles.y * Mathf.Deg2Rad;

Also check this answer too.

use a quad/plane as under Render/ Rendermode/ Mesh. Then choose your particle material. Then You’ll be able to rotate your particle in 3d space.

:sigh: @boinst2 @ThreeLizardGames @Vickylance

If you are working off of the space shooter tutorial, I just figured out that you can’t rotate the ‘particles’, because they aren’t actually pure particles, but textures ingeniously used with the ‘Particles/Additive’ Shader, which, apparently, won’t rotate in any easy fashion that I’ve found so far. I’m somewhat of a newbie myself, but, if you click on part_jet_flare, then, in the Inspector, click on ‘Particle System’, check off ‘Force over Lifetime’ and set ‘Z’ -3, you can rotate ‘Player’, and the particles will rotate properly, but the texture that they are made from won’t. Personally, I put this down to a bug in Unity, as any texture that is used as a particle should rotate with the particle system. If someone knows something that I’m missing that doesn’t involve (re)writing a shader, I’d appreciate hearing about it.

Hope this helps!

Thanks for all the answers. I update one solution.

Vector3 vecDir = vecPosEnd - vecPosStart;
ParticleSystem.MainModule mainMod = yourParticleSys.mainMod;
mainMod.startRotation = Mathf.Atan2(-vecDir.y, vecDir.x) ;