public void OnUpdate() { if (--turn > 0) { return; } if (spawner.OutOfRange(asteroid.position)) { asteroid.position = spawner.Position(); AsteroidUtils.ApplyImpulse(asteroid.gameObject.GetComponent <Rigidbody2D>()); } turn = FrameInterval; }
public void Subdivide() { Vector3 pos = gameObject.transform.position; gameObject.transform.position = spawner.Position(); Rigidbody2D rb = gameObject.GetComponent <Rigidbody2D>(); AsteroidUtils.ApplyImpulse(rb); if (health <= 0) { return; } CreateAsteroid(spawner, health - 1, pos); CreateAsteroid(spawner, health - 1, pos); }
public static void CreateAsteroid(IPositionSpawner spawner) { CreateAsteroid(spawner, InitialHealth, spawner.Position()); }