Синтаксис:
Используется csharp
//Триггер: Атака
public void Attack(bool IsAttack) {
attacking = IsAttack;
}
public void Attack(bool IsAttack) {
attacking = IsAttack;
}
Все что касается атаки:
Синтаксис:
Используется csharp
//Анимация атаки
animator.SetBool ("attackCheck", AttackCheck);
//Атака
if (attacking && AttackCheck) {
AttackCheck = false;
StartCoroutine ("Attacking");
}
IEnumerator Attacking () {
audioController.PlayOneShot (audioFakeHit);
animator.SetBool ("attack", true);
yield return new WaitForSeconds (.001f);
animator.SetBool ("attack", false);
Vector2 rayOrigin = new Vector2 (transform.position.x + 0.05f * directionX, transform.position.y + 0.7f);
RaycastHit2D hit = Physics2D.Raycast (rayOrigin, Vector2.right * directionX, 1f, collisionMask);
Debug.DrawRay(rayOrigin, Vector2.right * directionX * 1f,Color.red);
print ("Удар");
if (hit.collider) {
//Звук удара "Попал"
audioController.PlayOneShot (audioTrueHit);
hit.transform.GetComponent<Controller2D> ().Health -= 1;
Debug.Log ("Попал");
}
yield return new WaitForSeconds (.39f);
AttackCheck = true;
}
animator.SetBool ("attackCheck", AttackCheck);
//Атака
if (attacking && AttackCheck) {
AttackCheck = false;
StartCoroutine ("Attacking");
}
IEnumerator Attacking () {
audioController.PlayOneShot (audioFakeHit);
animator.SetBool ("attack", true);
yield return new WaitForSeconds (.001f);
animator.SetBool ("attack", false);
Vector2 rayOrigin = new Vector2 (transform.position.x + 0.05f * directionX, transform.position.y + 0.7f);
RaycastHit2D hit = Physics2D.Raycast (rayOrigin, Vector2.right * directionX, 1f, collisionMask);
Debug.DrawRay(rayOrigin, Vector2.right * directionX * 1f,Color.red);
print ("Удар");
if (hit.collider) {
//Звук удара "Попал"
audioController.PlayOneShot (audioTrueHit);
hit.transform.GetComponent<Controller2D> ().Health -= 1;
Debug.Log ("Попал");
}
yield return new WaitForSeconds (.39f);
AttackCheck = true;
}
Если я нажимаю и держу кнопку, то "воин" атакует до тех пор пока кнопка не отпущена, как мне сделать так, что бы при нажатии он атаковал один раз, т.е. чтобы атаковать несколько раз - нужно было бы нажать кнопку несколько раз?
И еще вопрос: могу ли я непосредственно привязать анимацию к событию "PointerDawn" без проверки дополнительной булевой переменной?