leeyunjeong010422 / MiniGameProject

0 stars 0 forks source link

[Feat] 랜덤 위치에서 로켓(파티클) 날라오기 구현 #21

Closed leeyunjeong010422 closed 1 month ago

leeyunjeong010422 commented 1 month ago

카메라가 보여지는 부분 오른쪽 랜덤 위치에서 로켓이 생성되어 플레이어가 있는 왼쪽으로 이동하도록 구현

leeyunjeong010422 commented 1 month ago

코드 작성하는 거에 있어 굉장히... 헷갈렸던 부분임!! ViewportToWorldPoint를 사용했음

private IEnumerator SpawnParticles()
{
    while (true)
    {
        int randomCount = Random.Range(1, 3);

        for (int j = 0; j < randomCount; j++)
        {

            //카메라 뷰포트에서 오른쪽 끝 부분의 월드 좌표(뷰포트 좌표 (1, y, z))
            //카메라 이해: https://ansohxxn.github.io/unitydocs/camera/
            //          : https://m.blog.naver.com/corncho456/221727952827
            Vector2 spawnPosition = mainCamera.ViewportToWorldPoint(new Vector2(1, Random.Range(0.2f, 0.8f)));
            spawnPosition.y += Random.Range(-spawnArea.y, spawnArea.y); //Y축 범위에서 랜덤하게 위치 설정

            // 파티클 생성
            ParticleSystem newParticle = Instantiate(particle, spawnPosition, Quaternion.identity);
            newParticle.Play();
            activeParticles.Enqueue((newParticle, Time.time)); //생성된 파티클과 생성 시간 추가
        }

        yield return waitForSpawnInterval;
    }
}