Example #1
0
    public void Initialise(string arrowID, Archer player, float power)
    {
        name        = arrowID;
        this.player = player;
        rb2d        = GetComponent <Rigidbody2D>();

        float   projectileX     = player.GetChief().GetComponent <Chief>().GetPrevious().x;
        float   projectileY     = player.GetChief().GetComponent <Chief>().GetPrevious().y;
        Vector2 projectileThrow = new Vector2(projectileX, projectileY);
        Vector2 pom             = new Vector2(player.GetChief().GetComponent <Chief>().GetController().LookHorizontal(), player.GetChief().GetComponent <Chief>().GetController().LookVertical());
        var     rad             = Mathf.Atan2(pom.y, pom.x);

        rb2d.rotation    = rad * Mathf.Rad2Deg - 90;
        projectileThrow += new Vector2(randomSpread * 2 * (Random.value - 0.5f), randomSpread * 2 * (Random.value - 0.5f));
        rb2d.AddForce(projectileThrow * 500 * power);
    }