• Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
1
Question by electricsauce · Jan 21, 2013 at 12:06 AM · mecanim

Mecanim state change question

Is it possible to set a mecanim animation state through script? For example, I would like my character dying animation available to all other states without having to manually create a transition between all of them.

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

2 Replies

· Add your reply
  • Sort: 
avatar image
8

Answer by PixelPiledriver · Dec 10, 2013 at 06:07 PM

Yes you can change states by script. Use CrossFade(string stateName, float transitionDuration). Here is a simplified C# example.

     Animator anim = GetComponent<Animator>();
 
     if(Input.GetKeyUp(KeyCode.W))
       anim.CrossFade("WalkUp", 0f)
 
     else if(Input.GetKey(KeyCode.S))
       anim.CrossFade("WalkDown", 0f);

Be aware that this bypasses transitions. Use it wisely and it can be very helpful.,

Comment
Add comment · Show 1 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image Hola Soy Edu Feliz Navidad · Aug 07, 2014 at 06:53 PM 0
Share

Thats right, it worked perfectly for me, we only have to take care because the string is case sensitive.

avatar image
1

Answer by jwinn · Jan 21, 2013 at 12:42 AM

As far as I know, there isn't a way to change the state by script yet.

For the dying animation, you can add this as a transition from the "Any State": http://d.pr/i/v4sX

"Any State is a special state which is always present. It exists for the situation where you want to go to a specific state regardless of which state you are currently in."

Comment
Add comment · Show 3 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image electricsauce · Jan 21, 2013 at 01:40 AM 0
Share

It works almost perfectly. The only problem is that it also considers the death state when checking ifDead is true, so the animation loops. But, it's nothing a little convoluted logic can't fix. Thanks for your help.

avatar image jwinn · Jan 21, 2013 at 01:57 AM 0
Share

I just use the following in my controller, similar to how grab and wave are set to false in the mecanim example. It sets the boolean to false once you're in that state:

if( currentBaseState.nameHash == deathState){ anim.SetBool("isDead", false); }

"deathState" is set earlier:

static int deathState = Animator.StringToHash("Base.Die");

avatar image sotirosn · Oct 11, 2013 at 08:40 AM 0
Share

So really it is a super pain in the ass to fire a single state change event in mecanim?

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

12 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

How to Properly blend three jump animations with mecanim 2 Answers

Mecanim and 3Drt.com model problem 0 Answers

why is the animator controller ignoring transitions? 1 Answer

Mecanim - Rotate Generic GameObject and play Animation 0 Answers

How do I get Live Feedback in the Animator window to reflect Animations Parameters driven by Uscript taking place during Play? 2 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges