Пример #1
0
 public static void FireProjectile(Vector2 start, Vector2 direction, ProjectileDefinition def)
 {
     for (int i = 0; i < def.projectileCount; i++)
     {
         Projectile proj = ProjectilePool.Instance.RequestProjectile();
         proj.gameObject.layer = def.layer;
         Vector2 drn = GetRandomDirectionPlane(direction, Vector3.forward, def.spreadAngle);
         proj.Fire(start, drn, def);
     }
 }
Пример #2
0
        public void Fire(Vector2 start, Vector2 direction, ProjectileDefinition def)
        {
            definition = def;
            gameObject.SetActive(true);

            transform.position = start;
            transform.rotation = Quaternion.LookRotation(Vector3.forward, Quaternion.Euler(0, 0, 90) * direction);
            body.velocity      = direction.normalized * def.velocity;

            collider.radius = def.collisionRadius;
            lifeTime        = def.lifeTime + Time.time;

            def.OnProjectileFire(this);
        }