작업자 : 장병래

  1. 2d Object → Sprites → Square를 2개 생성합니다.
  2. Images에 각각 spark, fire.png를 추가합니다.
  3. Sprite에 각각 spark, fire를 넣고, Order in Layer를 5로 변경합니다.
  4. 오브젝트의 작동을 위해 spark.cs, fire.cs를 작성했습니다.

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);
        }
    }
}
  1. 중력을 가지고 떨어져야 하기 때문에 Rigidbody 2D를 추가했습니다.

image.png

  1. 지속적으로 생성이 되어야하므로 GameManager.cs에

Instantiate, InvokeRepeating 함수를 사용했습니다.

void makeSpark()
{
    Instantiate(spark);
}

void makeFire()
{
    Instantiate(fire);
}