示例#1
0
    IEnumerator Attack2()
    {
        yield return(new WaitForSeconds(2f));

        for (int i = 0; i < 5; i += 1)
        {
            CultistProjectile thisProjectile = Instantiate(projectile);

            Vector2 newPosition  = transform.position;
            Vector2 newDirection = (playerLocation - transform.position).normalized;
            thisProjectile.SetPositionAndDirection(newPosition, newDirection);

            yield return(new WaitForSeconds(0.1f));
        }
    }
示例#2
0
    IEnumerator Attack1()
    {
        yield return(new WaitForSeconds(2f));

        CultistProjectile top    = Instantiate(projectile);
        CultistProjectile middle = Instantiate(projectile);
        CultistProjectile bottom = Instantiate(projectile);

        Vector2 directionVector = playerLocation - transform.position;

        float angle;

        if (playerLocation.y >= transform.position.y)
        {
            angle = Vector2.Angle(Vector2.right, directionVector);
        }
        else
        {
            angle = -Vector2.Angle(Vector2.right, directionVector);
        }

        Vector2 midPosition  = transform.position;
        Vector2 midDirection = directionVector;

        middle.SetPositionAndDirection(midPosition, midDirection);

        Vector2 topPosition  = transform.position;
        Vector2 topDirection = new Vector2(Mathf.Cos((angle + 30) * Mathf.Deg2Rad), Mathf.Sin((angle + 30) * Mathf.Deg2Rad));

        top.SetPositionAndDirection(topPosition, topDirection);

        Vector2 bottomPosition  = transform.position;
        Vector2 bottomDirection = new Vector2(Mathf.Cos((angle - 30) * Mathf.Deg2Rad), Mathf.Sin((angle - 30) * Mathf.Deg2Rad));

        bottom.SetPositionAndDirection(bottomPosition, bottomDirection);
    }