Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 11 Next capture
2021 2022 2023
1 capture
11 Jun 22 - 11 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 TheZiggy · Jul 15, 2015 at 08:43 PM · c#animationtriggermecanim

Trigger Activated Multiple Times From One Click

In Mecanim, I have a couple trigger values that activate animations. I have a C# script reading the input, but when the mouse is clicked, for example, it may read in multiple clicks in one frame. This ends up activating the trigger twice in a row, making the animation glitchy. How do I prevent this from happening?

Here's part of my code. As you can see, I even check to see if the animation is playing to prevent reading in multiple clicks, but I guess this doesn't account for the transition time or something.

 if(Input.GetKey(swing)) {
     if(!anim.GetCurrentAnimatorStateInfo(0).IsName("Swing")) {
             anim.SetTrigger("Swinging");
     }
 }
Comment
Add comment · Show 3
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 barbe63 · Jul 16, 2015 at 04:21 PM 0
Share

$$anonymous$$aybe try with this: http://docs.unity3d.com/ScriptReference/Animator.GetAnimatorTransitionInfo.html

avatar image TheZiggy · Jul 16, 2015 at 06:15 PM 0
Share

@barbe63: The documentation provides almost nothing. Do you know how I'd go about using that?

avatar image barbe63 · Jul 16, 2015 at 06:46 PM 0
Share

Well, the doc say it returns an AnimatorTransitionInfo which is kind of a start.

$$anonymous$$aybe something like:

 AnimatorTransitionInfo transInfo = anim.GetAnimatorTransitionInfo(0);
 if(transInfo.nameHash!=Animator.StringToHash("Swigging"))
     anim.SetTrigger("Swinging");

2 Replies

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

Answer by TheZiggy · Jul 17, 2015 at 04:25 PM

I fixed the problem, /u/FluxCapacimator on Reddit came up with the answer. Link to the reddit post: https://www.reddit.com/r/Unity3D/comments/3dal4g/trigger_activated_multiple_times_from_one_click/

Here's the code that fixed the problem:

 // in your class
 float nextswing = 0;
 ...
 // in your update
 if( Input.GetKey(x) && Time.time > nextswing  )
 {
     swing();
     nextswing = time.time + 0.5f;
 }
Comment
Add comment · Show 2 · 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 meat5000 ♦ · Jul 17, 2015 at 04:26 PM -1
Share

You should link the URL in which you found the answer and properly credit the person.

avatar image TheZiggy · Jul 17, 2015 at 05:28 PM 0
Share

@meat5000: Good call. I fixed the post.

avatar image
1

Answer by hexagonius · Jul 16, 2015 at 04:38 PM

Use GetKeyDown. It will only trigger once

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 TheZiggy · Jul 16, 2015 at 06:14 PM 0
Share

I need the person to be able to hold down the mouse button, so that won't work. Thanks for the suggestion though.

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

5 People are following this question.

avatar image avatar image avatar image avatar image avatar image

Related Questions

C# - Trigger Animation with Raycasting? 1 Answer

Mecanim Trigger Stays too long true 1 Answer

What is the proper way to wait for an Animator Controller to update? 1 Answer

Create 2D box colliders based on current frame of animation 0 Answers

Multiple Cars not working 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