private void SpawnProjectile(Vector2 direction) { var projectileClone = (GameObject)Instantiate(ProjectilePrefab, transform.position + new Vector3(0, 0, 1), transform.rotation); //Fix self-projectiles collisions Physics2D.IgnoreCollision(projectileClone.GetComponent <Collider2D>(), GetComponent <Collider2D>()); var projectileDestroyer = projectileClone.AddComponent <AwayFromCameraObjDestroyer>(); projectileDestroyer.Range = AbsObjSpawner.GetCameraCircumcircleRadius() + ProjectileDestroyOffset; var projectileCloneMc = projectileClone.GetComponent <ObjMovementController>(); projectileCloneMc.Direction = direction; projectileCloneMc.GetComponent <Rigidbody2D>().velocity = GetComponent <Rigidbody2D>().velocity; projectileCloneMc.ApplyVelocity(SpeedDifferenseVelocity * ObjProjectileVelocity); ScoreManager.Subtract(1f); }
private void GlobCollision(Collision2D collision) { Destroy(collision.gameObject); var food = (GameObject)Instantiate(FoodPrefab, transform.position, transform.rotation); food.transform.localScale = transform.localScale; var foodDestroyer = food.AddComponent <AwayFromCameraObjDestroyer>(); foodDestroyer.Range = AbsObjSpawner.GetCameraCircumcircleRadius() + FoodDestroyOffset; var foodCloneMc = food.GetComponent <ObjMovementController>(); foodCloneMc.Direction = gameObject.GetComponent <ObjMovementController>().Direction; var explosionClone = (GameObject) Instantiate(ExplosionPrefab, collision.gameObject.transform.position, collision.gameObject.transform.rotation); explosionClone.transform.localScale = collision.gameObject.transform.localScale * 2.5f; Destroy(gameObject); }