Need different instances of an object to start at different frames in animation loop

I am trying to spawn different instances of the same object. This object (GeoObject) has an animation in which it goes through four different shapes (Square, Circle, Triangle, Star, in that order). However, I want each instance to start at a different shape in that loop. From doing some research, I realized that the simplest way to do that would be to set the NormalizedTime of the animation to a random float value. But the line of code I added to do that doesn’t seem to have an effect. I’m throwing the code below:

public Animator anim;

    // Use this for initialization
    void Start()
    {
        anim = GetComponent<Animator>();

        // Need to write code to create each GeoObject with a different initial shape
        anim.Play("BlueBlobAnimation", 0, Random.Range(0f, 1f));

        // Slows down the animation speed relative to game's framerate
        anim.speed = 0.05f;
    }

I would really appreciate if someone could help me out with this. Thanks!

Can’t you split it into several animation clips? And then string the clips together in the Animator, so that they trigger one after the other. If it’s supposed to loop, then the last clip should transition back to the first. Most likely you want their transitions to be based on their Exit Time, so they play the entire clip before going on to the next.

Then you can add animation parameters, probably triggers, that leads from Any State to the start of each animation clip. That way you can start the Animation, set the appropriate parameter for the shape you want to start with and the animation system should take care of the rest…

Thanks for the reply! I haven’t had time to look at my code again lately, but I will try splitting the animation into several clips when I have time.