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 /
This question was closed Mar 08, 2020 at 02:26 AM by GBA92 for the following reason:

Found a different solution.

avatar image
0
Question by GBA92 · Mar 06, 2020 at 05:13 PM · c#animation2d-platformercombatmelee attack

2D One, Two, Three Attack Combo

Hello, I need some help with this melee/combat script of mine. I want to make a 3 hit combo attack, but at the moment the two attack animations I have in the code are playing at the same time when you press the listed button. I don't know whether I've made a mistake with the timer or done something wrong in the animator.

 private float attackTimer = 0f;
 private float cooldown   = 1.3f;
 private int combo = 0;         
 
 private bool attack1;
 private bool attack2;
 
 private void MeleeAttack()
     {
         if (Input.GetButtonDown("Attack1") && !attack1 && attackTimer <= 0 && combo == 0)
         {
             attack1 = true;
             attackTimer = cooldown;
 
             playerAttackAnim.SetBool("isAttacking", attack1);
 
             combo++;    
         }
 
         if (attack1)
         {
             if (attackTimer > 0)
             {
                 attackTimer -= Time.deltaTime;
 
                 if (Input.GetButtonDown("Attack1") && !attack2 && attackTimer > 0 && combo == 1)
                 {
                     TransitionToAttack2();
                 }
             }
 
                 else
                 {
                     if (attackTimer < 0)
                     {
                         attackTimer = 0;
                         combo = 0;
 
                         attack1 = false;
                         attack2 = false;
 
                         playerAttackAnim.SetBool("isAttacking", false);
                         playerAttackAnim.SetBool("isAttacking2", false);
                     }
                 }
             }
     }
 
     private void TransitionToAttack2()
     {
         attack2 = true;
         attackTimer = cooldown;
 
         playerAttackAnim.SetBool("isAttacking2", attack2);
 
         combo++;
     }
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 JPhilipp · Mar 07, 2020 at 08:05 AM 0
Share

@GBA92 After perfor$$anonymous$$g attack1, you instantly set attackTimer to cooldown, which is 1.3f and increase the combo to 1. You thereafter immediately check if attackTimer > 0 (which it would be, probably even after subtracting Time.deltaTime) and combo == 1, which it also would be, to transition into attack2. So it looks like your code logic does exactly that -- always do both attacks at once?

avatar image GBA92 JPhilipp · Mar 07, 2020 at 12:48 PM 0
Share

@JPhilipp Yes, but I don't want both attacks perfor$$anonymous$$g at once. I want the timer and combo to follow into the next attack, if not, reset the timer and combo and only play the first attack.

avatar image JPhilipp GBA92 · Mar 07, 2020 at 01:50 PM 0
Share

@GBA92 Exactly, I know -- I just explained to you what you were doing, which is perfor$$anonymous$$g both at once, in case you didn't understand your bug.

2 Replies

  • Sort: 
avatar image
0

Answer by Firox_ · Mar 07, 2020 at 03:05 PM

First I think getting input in function is a very bad idea as the input should be get at each frame.

An other problem is that attackTimer > 0 is always true as it's only when this condition is true you decrement this timer. So for now the condition if (attackTimer > 0) is useless. The decrementation should occured the line before the condition. It would allows you to remove the same condition in the condition with the Input.GetKeyDown.

You should also set the animator bool "isAttacking1" to false in your transition function. I don't think the problem comes from here but it's cleaner since when you are in the 2nd attack the 1st should end.

Otherwise what are you calling "are playing at the same time" ? The 2 animations are occured at same time ? (which should be impossible as 2 states can't be avctive at same time so I don't think it's what you mean) Or the 2 bools are set to true together so just the 2nd animation is playing ?

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 GBA92 · Mar 07, 2020 at 07:37 PM

Closing this thread. I found a different solution elsewhere to fix my problem. It works a lot better than the code I was using before.

 private void MeleeAttack()
     {
         if (timeStamp < Time.time && Input.GetButtonDown("Attack1") && combo < maxCombo)
         {
             combo++;
             Debug.Log("Attack " + combo);
             timeStamp = Time.time + cooldown;
         }
 
         if ((Time.time - timeStamp) > cooldown)
         {
             combo = 0;
             playerAttackAnim.SetBool("isAttacking", false);
             playerAttackAnim.SetBool("isAttacking2", false);
             playerAttackAnim.SetBool("isAttacking3", false);
         }
 
         if (combo == 1)
         {
             playerAttackAnim.SetBool("isAttacking", true);
         }
 
         if (combo == 2)
         {
             playerAttackAnim.SetBool("isAttacking2", true);
             playerAttackAnim.SetBool("isAttacking", false);
         }
 
         if (combo == 3)
         {
             playerAttackAnim.SetBool("isAttacking3", true);
             playerAttackAnim.SetBool("isAttacking2", 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

Follow this Question

Answers Answers and Comments

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

my 2d character is not going to next animation state from one 0 Answers

animation state is stuck 0 Answers

my 2d character is stucks at fall state 1 Answer

Multiple Cars not working 1 Answer

(2D) What is the best way to implement a run-and-shoot animation? 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