작업자 : 장병래
spark의 경우 일정한 딜레이를 가지고
임의의 위치에 파괴와 생성이 반복되는 기믹이기 때문에 아래와 같이 코드를 작성했습니다.
public class spark : MonoBehaviour
{
    public float delay = 3.0f;
    void Start()
    {
        float x = Random.Range(-2.0f, 2.0f);
        float y = Random.Range(-3.0f, 1.3f);
        transform.position = new Vector2(x, y);
    }
    // Update is called once per frame
    void Update()
    {
        Destroy(gameObject, delay);
    }
}
fire의 경우 랜덤 위치에 생성되는것은 spark와 같지만 중력을 가지고 떨어지는 형태로
특정 좌표(y 좌표가 -6 이하일 경우)가 되면 파괴되기 위해 아래 코드를 작성했습니다.
public class fire : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        float x = Random.Range(-2.0f, 2.0f);
        float y = Random.Range(4f, 6f);
        transform.position = new Vector2 (x, y);
    }
    // Update is called once per frame
    void Update()
    {
        if(transform.position.y < -6.0f)
        {
            Destroy(gameObject);
        }
    }
}

Instantiate, InvokeRepeating 함수를 사용했습니다.
void makeSpark()
{
    Instantiate(spark);
}
void makeFire()
{
    Instantiate(fire);
}