Making different attacks with same input but in order.
For example: 1 click = first attack 2; clicks = first and second attack. I've tried this :
void Start () {
IEnumerator Atk1() {
anim.SetBool ("isAtk1", true);
rb.constraints = RigidbodyConstraints2D.FreezePositionX | RigidbodyConstraints2D.FreezeRotation;
yield return new WaitForSeconds(0.5f);
anim.SetBool ("isAtk1", false);
rb.constraints = RigidbodyConstraints2D.FreezeRotation;
}
IEnumerator Atk2() {
anim.SetBool ("isAtk2", true);
rb.constraints = RigidbodyConstraints2D.FreezePositionX | RigidbodyConstraints2D.FreezeRotation;
yield return new WaitForSeconds(0.5f);
anim.SetBool ("isAtk2", false);
rb.constraints = RigidbodyConstraints2D.FreezeRotation;
click = 0;
}}
void Update () {
//atk1 code
if (Input.GetMouseButtonDown(0))
{ click++;
}
if (Input.GetMouseButton(0) && click == 1)
{
StartCoroutine(Atk1());
}
if (Input.GetMouseButton(0) && click == 2)
{
StartCoroutine(Atk2());
} }
This will make the first animation play with 1 click, the second click will not make the 2nd animation play, but will return the click to 0.
Also: When I spam clicks, because it updates in frames, it incrementes click a lot, so it will never return to zero because it will never go to Enumerator Atk2... How can i control that?
Answer by sixstrings_17 · May 30, 2019 at 04:27 PM
It's working now, i'm just stupid...
IEnumerator Atk1() {
anim.SetBool ("isAtk1", true);
rb.constraints = RigidbodyConstraints2D.FreezePositionX | RigidbodyConstraints2D.FreezeRotation;
yield return new WaitForSeconds(0.5f);
anim.SetBool ("isAtk1", false);
rb.constraints = RigidbodyConstraints2D.FreezeRotation;
}
IEnumerator Atk2() {
anim.SetBool ("isAtk2", true);
rb.constraints = RigidbodyConstraints2D.FreezePositionX | RigidbodyConstraints2D.FreezeRotation;
yield return new WaitForSeconds(0.5f);
anim.SetBool ("isAtk2", false);
rb.constraints = RigidbodyConstraints2D.FreezeRotation;
}
Update:
Debug.Log("is: "+ click); if (click >= 2) { click = 0; } if (Input.GetMouseButton(0) && click == 0)
{
click++;
StartCoroutine(Atk1());
}
if (Input.GetMouseButton(0) && click == 1)
{
click++;
StartCoroutine(Atk2());
}
Your answer
Follow this Question
Related Questions
Problem with combo attack -1 Answers
any triple mouse click c# script? 2 Answers
how can i make simple combo attack,, 0 Answers
how to make combo attack, 1 button do 3 things 2 Answers
Specific key combination not working 0 Answers