Пример #1
0
    //create bullet
    public static GameObject CreateBullet(float x, float y, Quaternion rot, float damage, float speed, Boolean sentByRemote, Boolean firedByWhale, WeaponTypes weaponUsed)
    {
        GameObject bullet = new GameObject("Bullet");

        bullet.transform.position   = new Vector2(x, y);
        bullet.transform.localScale = new Vector2(0.5F, 0.5F);

        if (firedByWhale)
        {
            bullet.layer = 11;
        }
        else
        {
            bullet.layer = 10;
        }

        SpriteRenderer renderer = bullet.AddComponent <SpriteRenderer>();
        BoxCollider2D  collider = bullet.AddComponent <BoxCollider2D>();

        collider.size = new Vector2(0.25F, 0.1F);
        BulletPhysicsScript physics = bullet.AddComponent <BulletPhysicsScript>();

        physics.canCollide = sentByRemote;
        Rigidbody2D body = bullet.AddComponent <Rigidbody2D>();

        body.mass = 1F;
        body.collisionDetectionMode = CollisionDetectionMode2D.Continuous;
        body.gravityScale           = 0;

        bullet.transform.rotation = rot;
        physics.bulletDamage      = damage;
        if (weaponUsed.Equals(WeaponTypes.nematocyst))
        {
            renderer.sprite = SpriteHandler.jellySpineSprite;
        }
        else if (weaponUsed.Equals(WeaponTypes.harpoonGun))
        {
            renderer.sprite = SpriteHandler.harpoonSprite;
        }
        else if (weaponUsed.Equals(WeaponTypes.eggBazooka))
        {
            renderer.sprite = SpriteHandler.eggSprite;
        }
        renderer.sortingOrder = -2;

        body.AddRelativeForce(new Vector2(speed, 0), ForceMode2D.Impulse);

        return(bullet);
    }