コード例 #1
0
    private void Projectile()
    {
        if (projectileCooldownTime > 0)
        {
            return;
        }

        if (Input.GetButton(k_projectileButton))
        {
            ReportAction();
            projectileCooldownTime = m_chosenProjectile.Cooldown;

            Vector2 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);

            GameObject projectile = Instantiate(m_chosenProjectile.gameObject, transform.position, Quaternion.identity);

            Vector2 direction = (mousePos - (Vector2)transform.position).normalized;
            projectile.transform.right = direction;

            PlayerProjectile playerProjectile = projectile.GetComponent <PlayerProjectile>();

            if (playerProjectile)
            {
                playerProjectile.IncreaseDamage(m_meleeDamageModifier);
            }
            else
            {
                Debug.LogError("No player projectile script on " + projectile.gameObject.name);
            }

            Rigidbody2D projRB = projectile.GetComponent <Rigidbody2D>();
            if (projRB)
            {
                projRB.AddForce(direction * 5f, ForceMode2D.Impulse);
            }
        }
    }