Particle System runs in Editor but not when instantiated

I have a prefab with a Particle System component attached to it, set to Play On Awake. When I drag the prefab into the Scene View I see the desired effect properly rendered, both in the Scene View and in the Game View. However, when I instantiate the very same prefab from within a script, the particles don’t display. The are being calculated because, after entering Play mode a and having the object instantiated, when I click on it I can see the little window “Particle Effect” in the Scene View showing me the Play/Stop buttons and the particle count and speed range. Except, no particles. Any ideas?
EDIT the prefab works fine if I drag it into the scene, create a new particle system, parent it to the original gameobject and update the prefab. But it doesn’t work when instantiated if the particle system is a component attached to the same gameobject.

The instantiation script just takes a public variable holding a prefab and does this:

Instantiate(PrefabAsteroid,, Quaternion.identity);

If the prefab, in the Unity Editor, has a Particle System component, the particles don’t render. However, if I redefine the prefab (still in the Unity Editor) by adding a child Particle System to the object (i.e. the Particle System has its own Transform component but otherwise uses the same exact particle settings), then the particles render.

OK I’ve figured it out thanks to @KittenSnipes’ comments above. Writing my own answer here in the hope it helps someone. The project I’m working on is 2D. The prefab I was instantiating has a script with a property which sets the scale of the object based on a variable called “phase” (think of an Asteroids clone):

public int Phase
    get { return phase; }
        phase = value;
        float newScale = 1.0f / Mathf.Pow(2, phase);
        transform.localScale = new Vector2(newScale, newScale);
        pointValue = (phase + 1) * 2; = "Asteroid (Phase " + phase + ")";

This was working just fine in the game, until I added the Particle System Component, which apparently doesn’t like Scale to be zero on the Z axis (which I think is what happening here). I’ve changed the offending line to:

transform.localScale = new Vector3(newScale, newScale, 1);

And now the Particle System Component behaves as it should (or rather, does what I should have told it to do in the first place…) The rest doesn’t need to change. Instantiating with Vector2 doesn’t affect this. The problem was only related to the scaling issue.
Thanks @KittenSnipes, you’ve been very helpful!

Had a similar issue, but completely different cause. I wrote about it here