/// <summary>
    /// Basic function to instantiate a projectile
    /// </summary>
    /// <param name="dir"></param>
    /// <param name="force"></param>
    void LaunchProjectile(Vector2 dir, float force)
    {
        GameObject      projectileObject = Instantiate(projectilePrefab, rigidbody2D.position + Vector2.up * 1f, Quaternion.identity);
        ProjectileEnemy projectile       = projectileObject.GetComponent <ProjectileEnemy>();

        projectile.Launch(dir, force);
    }
Exemple #2
0
    /// <summary>
    /// Launches projectile
    /// </summary>
    protected virtual void Launch()
    {
        GameObject projectileObject = Instantiate(projectilePrefab, rigidbody2D.position + Vector2.up * 0.5f, Quaternion.identity);

        ProjectileEnemy projectile = projectileObject.GetComponent <ProjectileEnemy>();

        projectile.Launch(dir, 120);
    }
Exemple #3
0
    void Attack()
    {
        GameObject projectileObject = Instantiate(projectilePrefab, rigidbody2d.position + Vector2.up * 0.5f, Quaternion.identity);

        ProjectileEnemy projectile = projectileObject.GetComponent <ProjectileEnemy>();

        projectile.Launch(lookDirection, 300);
    }
    void Launch()
    {
        animator.SetTrigger("Launch");
        GameObject      projectileObject = Instantiate(projectilePrefab, rigidbody2D.position + Vector2.up * 0.5f, Quaternion.identity);
        ProjectileEnemy projectile       = projectileObject.GetComponent <ProjectileEnemy>();

        projectile.Launch(new Vector2(0, -1), 500);
        playSound(launchSound);
    }
    override public IEnumerator Perform(Enemy enemyScript)
    {
        Vector3         directionToPlayer = (enemyScript.player.transform.position - enemyScript.transform.position).normalized;
        GameObject      projectileObject  = Instantiate(projectilePrefab, enemyScript.transform.position + directionToPlayer, Quaternion.identity, enemyScript.transform);
        ProjectileEnemy projectile        = projectileObject.GetComponent <ProjectileEnemy>();

        projectile.Launch(directionToPlayer, 300);
        return(base.Perform(enemyScript));
    }
    override public IEnumerator Perform(Enemy enemyScript)
    {
        if (animator == null)
        {
            animator = enemyScript.GetComponent <Animator>();
        }

        Vector3 directionToPlayer = (enemyScript.player.transform.position - enemyScript.transform.position).normalized;

        animator.SetFloat("Move X", directionToPlayer.x);
        animator.SetTrigger("Attack");

        yield return(new WaitForSeconds(1));

        GameObject      projectileObject = Instantiate(projectilePrefab, enemyScript.transform.position + directionToPlayer, Quaternion.identity);
        ProjectileEnemy projectile       = projectileObject.GetComponent <ProjectileEnemy>();

        projectile.Launch(directionToPlayer, 300);

        yield return(base.Perform(enemyScript));
    }