it seems to be a classic LocalSpace issue.
Taking your Thruster_Side as an example, Flame_Axis/Flame_Axis2 are used for the PlanarAlignedQuad billboarding mode. Thus, if you want them to be transformed appropriately by your emitter's transforms, you need to make sure those two fields have the proper transformation modes.
Then, by nesting your script evolver within a Localspace Evolver, what it does:
- Transform from World to Local all fields marked with "Rotate" or "Translate" or "Rotate/Translate"
- Execute your script evolver with all fields transformed (here AxisFlame will be float3(1, 0, 0))
- Transform back from Local to World (AxisFlame will now have its original float3(1, 0, 0) transformed correctly in worldspace, relative to the emitter transforms)
- The renderer will now billboard using the correctly transformed axis
Also, as shown in the picture below, feel free to use "scene.axisSide()/scene.axisUp()/scene.axisForward()" which will be replaced by the correct value depending on your project's axis system. Say you switch from Unity to UE4, it'll save some time.
Hope this helps