private void Fire() { float speed = power * maximumImpulse / loadedBubble.GetComponent <Rigidbody2D>().mass; float angle = Mathf.Sign(fireDirection.y) * Vector3.Angle(Vector3.right, fireDirection); if (power == 1) { angle = Random.Range(angle - spreadAngle, angle + spreadAngle); } loadedBubble.transform.parent = null; Bubble bubble = loadedBubble.GetComponent <Bubble>(); bubble.PositionChanged -= UpdatePosition; bubble.PositionFixed -= Fire; bubble.IsTouchable = false; if (power == 1) { bubble.HasMaxImpulse = true; } bubble.ApplyImpulse(speed, angle); Destroy(trajectoriesContainer); Fired(loadedBubble); }