Unity 3d show specific frame of animation

14,465

The animator component is used to control transition between many animation clips. If you're going to playing an animation clip on a gameobject, an animation component is proper, not the animator. Remove the animator and add an animation component to your background gameobject in the inspector. If you set animation property to field_back_anim, your gameobject will animate well. Manipulation codes should be changed like below.

Animation ani = background.GetComponent<Animation>();
ani["field_back_anim"].time = 0.5f;
ani["field_back_anim"].speed = 0;
Share:
14,465
gabrjan
Author by

gabrjan

Updated on June 04, 2022

Comments

  • gabrjan
    gabrjan almost 2 years

    I'm trying new unity 3d options for 2d games. I'm trying to create background that changes depending on actions i made. So if i press button one i get sprite one as background and if two i get sprite two. Since I have 32 options, I figure out the best way would be to have an Animator, that changes frame depending on button click. So i created animator and animation. But the problem is I can't set time to where to stop animation to show selected frame.

    I'm trying like that:

    Animator ani=background.GetComponent<Animator>();
    ani.animation["field_back_anim"].time=0.5f;
    ani.speed=0;
    

    But it fails at second line with that error:

    MissingComponentException: There is no 'Animation' attached to the "background" game object, but a script is trying to access it.
    You probably need to add a Animation to the game object "background". Or your script needs to check if the component is attached before using it.
    

    However if I do no code the animation just plays trough all 16 frames. So i gues there is animation after all.

    On the background GameObject I have 2 components first is sprite renderer and second is animator. When I open animator in Animator view i see there green rectangle saying Any state and yellow one with "field_back_anim". I don't get what i'm doing wrong.

    I will also except any other solution that does the following.

    Thanks!

  • gabrjan
    gabrjan over 10 years
    That is a solution, but I would steel like to know if it's possible in the way I started it. Thanks!