コード例 #1
0
    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);
        }
    }
コード例 #2
0
 private void Awake()
 {
     instance = this;
 }