public AsteroidSpec(float size, float speed, int numberOfChildren, AsteroidSpec childSpec) { this.size = size; this.speed = speed; this.numberOfChildren = numberOfChildren; this.childSpec = childSpec; this.hp = (int)(size * 2); }
public void SpawnAsteroid(Vector2 position, AsteroidSpec spec) { GameObject e = Instantiate(asteroid, position, asteroid.transform.rotation); Asteroid n = e.GetComponent <Asteroid>(); n.Initialize(spec); e.transform.parent = transform; }
public void Initialize(AsteroidSpec spec) { this.spec = spec; this.currentHP = spec.hp; // calculate size transform.localScale = transform.localScale * spec.size; // calculate random velocity direction float angle = Random.value * Mathf.PI * 2; Vector2 dir = new Vector2(Mathf.Cos(angle), Mathf.Sin(angle)); GetComponent <Rigidbody2D>().velocity = dir * spec.speed; }
public void SpawnAsteroidOnEdge(AsteroidSpec spec) { SpawnAsteroid(DetermineEdgeSpawnPos(), spec); }
public void SpawnAsteroidInPlayArea(AsteroidSpec spec) { SpawnAsteroid(DeterminePlayAreaSpawnPos(), spec); }