Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • 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
0
Question by s_guy · Nov 18, 2013 at 09:41 PM · animatordisabletransition

Best way to disable "Any State" transitions in the Animator after they've occurred?

Started playing with the Animator and found that transitions out of "Any State" often occur when I don't want them to (because the state I'm transitioning into also qualifies as "any state").

Found this post on the forums with an official reply.

http://forum.unity3d.com/threads/148665-Mecanim-quot-Any-State-quot

 AnimatorStateInfo nextState = animator.GetNextAnimatorStateInfo(0) ; // get next state on layer 0
 
 if( nextState != null && nextState.name == "Base Layer.DeathState")
 {
 animator.SetBool("DeahtBoolean", false);
 }

In my opinion, this is kind of klunky. Has a better way emerged since this post from 2012? Preferably, there will be a way that can be done within Animator.

Comment
Add comment · Show 1
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 s_guy · Nov 18, 2013 at 09:47 PM 0
Share

Ugh... and AnimatorStateInfo is (now?) a non-nullable value type. So, the code from this older Unity reply won't work as-is. Still tinkering...

3 Replies

· Add your reply
  • Sort: 
avatar image
0
Best Answer

Answer by s_guy · Nov 18, 2013 at 10:07 PM

Ok, the code posted by the Unity dev, that I reposted, is all kinds of broken / stale.

What I did was add an animation event on the first frame of the animation for the new state.

http://docs.unity3d.com/Documentation/Components/animeditor-AnimationEvents.html

That event calls a function on that Animator's object that makes the transition condition from AnyState untrue.

This is still kind of roundabout, but at least it works and seems relatively clean. Please post if you know of a better way.

Update: I stumbled upon the (apparently undocumented) Animator Parameter type "Trigger", which seems to be a bool that sets itself false as soon as the transition occurs. This is the answer I was looking for.

Comment
Add comment · 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
1

Answer by Antares · Jan 10, 2014 at 06:12 PM

What I found out that I could use for my purposes was to directly play that animation instead of turning a bool true.

http://docs.unity3d.com/Documentation/ScriptReference/Animator.Play.html

So you should change "animator.SetBool("DeahtBoolean", true);" To

     animator.Play("DeahtAnimationStateName");

So you just dont use the "Any State" and does the same job.

Comment
Add comment · 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
0

Answer by savagent · Feb 02, 2014 at 09:39 AM

You can now (Unity 4) use triggers to handle this sort of thing. A trigger acts similar to a boolean parameter except it is consumed by the transition (i.e. automatically set back to false).

Comment
Add comment · 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

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.

Follow this Question

Answers Answers and Comments

19 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 avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Animator not switching states properly 3 Answers

Smooth transition with Animator.Play or similar? 2 Answers

Complex condition of animator transition via script 2 Answers

2D animations transitioning too quickly and looping before finishing 2 Answers

2D animation transitions turn all components visible 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