private IEnumerator PlaySword(NodeCollider.NodeHit grabbedNode, float attackSpeed) { float slashTime = attackSpeed / 3f; while (true) { slashTime += Time.deltaTime; Node updatedNode = UpdateNode(grabbedNode); Vector2 direction = GetNodeDirection(updatedNode); transform.position = updatedNode.position; transform.rotation = Quaternion.FromToRotation(Vector3.right, direction); if (slashTime >= attackSpeed) { slashTime -= attackSpeed; BloodParticlesManager.Play(updatedNode.position + Vector2.right / 10, direction); ScreenShake.Play(); } if (slashTime > attackSpeed / 3f) { swordSprite.transform.localPosition = Vector3.right / 10 + Vector3.down / 10; } else { swordSprite.transform.localPosition = Vector3.left / 20 + Vector3.down / 10; } yield return(null); } }
private void Awake() { instance = this; }