Beispiel #1
0
    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);
    }
Beispiel #2
0
    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);
    }