Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 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 Coedgy · Sep 18, 2018 at 09:44 PM · c#animationunity 5animator controller

Cant get Animator Controller to work properly

So I have a shelf on a desk that slides in and out. Now when I press E on it, it first doesnt do anything, but on the second press it opens and closes right after.

So here is screenshot of my a-controller: alt text

And here is the code that opens and closes it on button press:

    void OnUse()
     {
         Debug.Log("IT WORKSSS");
         if(anim.GetBool("IsClosed") == true)
         {
             anim.SetTrigger("OpenShelf");
             anim.SetBool("IsClosed", false);
         }
         else
         {
             anim.SetTrigger("CloseShelf");
             anim.SetBool("IsClosed", true);
         }
screenshot-5.png (9.0 kB)
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
0
Best Answer

Answer by kevojo · Sep 19, 2018 at 08:06 PM

I'm not sure why you have both two triggers and two bools for it. You could do this with only one trigger.

 //Create a trigger called 'toggleShelfState' or something
 
 if (Input.GetKey(keycode.E))
     {
         anim.setTrigger("ToggleShelfState");
     }

As for setting up the transition - simply set one transition from and to. (Make the default state closed i guesss), uncheck "has exit time", and ensure they both have the same "toggleShelfState" condition. This should allow you to go back and forth between them no problem.

If you wanted to use a bool condition instead, you could do that.

 //create a bool called "ShelfOpen" or something like that
 
 if (Input.GetKey(keycode.E))
     {
         anim.setbool("ShelfOpen", !(anim.getbool("ShelfOpen")));
     }

This will have essentially the same toggling effect - it will set the open state to the opposite of whatever it is when you press the button. Then just set transitions, ensure exit time is disabled, and set the condition for opening it to be ShelfOpen = true, and the condition for it closing is ShelfOpen = false

Comment
Add comment · Show 6 · 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 Coedgy · Sep 19, 2018 at 08:25 PM 0
Share

Does this let me spam it while animation is not done?

avatar image kevojo Coedgy · Sep 19, 2018 at 08:39 PM 0
Share

well without any modifications to my code, yes, although if you don't have an interruption source on the transition, it will finish before moving on to the next transition- however if you use the trigger option, it will queue up a trigger activation, so if you push E while it is transitioning to closed, it will immediately open again because it was triggered (these triggers don't stack). With the bool version, It will also wait to transition till the current transition is finished (if there is no interruption source), but it will not check whether it needs to transition or not till after it has finished - this means that if you spam the button, it will depend on whether you did it an even amount of times or an odd amount of times. If you want to prevent both of these, do this:

  if (Input.Get$$anonymous$$ey(keycode.E))
      {
          if (!(anim.GetAnimatorTransitionInfo(0).IsName("Base Layer.Closed -> Base Layer.Open")  || anim.GetAnimatorTransitionInfo(0).IsName("Base Layer.Open-> Base Layer.Closed")))
             {
                anim.setbool("ShelfOpen", !(anim.getbool("ShelfOpen")));
              }
      }

That is checking if either of those transitions are playing, and will return false if they are. That will only allow you to modify the bool (or set the trigger) after a transition has finished.

avatar image Coedgy kevojo · Sep 19, 2018 at 09:42 PM 0
Share

So I keep having this problem that it doesnt move from Closed to open? Here is my code:

     public void Initialize()
     {
         anim = animObject.GetComponent<Animator>();
         anim.SetBool("IsClosed", true);
     }
 
     // Update is called once per frame
     void Update () {
         
     }
 
     void OnUse()
     {
         
         Debug.Log("IT WOR$$anonymous$$SSS");        
         if(anim.GetBool("IsClosed"))
         {
             if (!(anim.GetAnimatorTransitionInfo(0).IsName("Base Layer.Closed -> Base Layer.Open") || anim.GetAnimatorTransitionInfo(0).IsName("Base Layer.Open-> Base Layer.Closed")))
             {
                 anim.SetBool("IsClosed", !(anim.GetBool("IsClosed")));
             }
         }
 
     }

It just keeps looping at the "Closed" in this pic: http://prntscr.com/kweja5

Show more comments
avatar image
0

Answer by UnityCoach · Sep 18, 2018 at 11:27 PM

To properly handle open/close, you actually need 4 states : close, opening, open, closing. You don't even need the trigger, the boolean value is enough. You can have a look at this video, in which I touch on the topic.

Hope this helps.

Comment
Add comment · Show 8 · 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 Coedgy · Sep 19, 2018 at 05:45 PM 0
Share

It gives me this error: alt text

alt text

ss.png (15.8 kB)
avatar image UnityCoach Coedgy · Sep 19, 2018 at 06:08 PM 0
Share

This is odd. Do you have any script running ?

avatar image Coedgy UnityCoach · Sep 19, 2018 at 06:46 PM 0
Share

It went away but the animation does not play... Here is screenshot: http://prntscr.com/kwcl7v

Show more comments
avatar image kevojo · Sep 19, 2018 at 08:07 PM 0
Share

You wouldn't need 4 states. If it's something simple like a shelf opening and closing, you can have 2 static poses, the shelf opened, and the shelf closed. The transition between the two will interpolate and you can control how many frames it takes for the speed.

avatar image UnityCoach kevojo · Sep 19, 2018 at 08:19 PM 0
Share

I agree with you. It works with 2 states, but then you can close while it's still opening, and vice versa.

avatar image kevojo UnityCoach · Sep 19, 2018 at 08:41 PM 0
Share

Only if it has an interruption source - otherwise (as I state it a different thread) it will wait till transition is finished, but it will still allow you to stack a closing/opening command while it is transitioning - so you need to check if it is in transition before taking the input.

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

642 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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

Hello! I have some issues with animations. 1 Answer

What would be the best way to do something based on the animation state of the character? 0 Answers

Is there a new retargetting system for the animation in 5.5? 1 Answer

Object colour at a location 2 Answers

Skin issues with Spine 1 Answer


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