본문 바로가기

Unity/Unity 스파르타

15주차 - 화염 방사기 기믹 만들기

728x90

1. 화염 방사기 파티클 만들기

2. 후일 방패로 화염을 막을 수 있게 만들 것이기 때문에 기물 앞까지만 파티클을 생성되게 만들어야 하고 , 기물 뒤에있는 오브젝트에는 타격이 가지않게 레이 조절 하기

 

 

1. 화염 방사기 파티클 만들기

불을 내뿜는 것 처럼 보여주기 위해 Shape은 Edge로 일자로 파티클을 생성되게 만들어주기

파티클의 생명주기와, 속도들을 조절해주기.

Color over Lifetime 으로 시간에 따라 색을 변경해줌으로 좀더 불을 내뿜는 것처럼 보여주기.

Size over Lifetime으로 파티클을 작아졌다가 점점 커지게

가장 중요한 Noise로 불이 뿜어져 나오는 것처럼 만들어주기

나중에 쉐이더 작업으로 더 다듬어 주기.

2. 파티클 생명 조절과 레이 조절

화염이 뿜는 방향에 플레이어나 파괴가능한 기물이 있다면 파괴시키기.

파괴되지않는 기물의 경우 화염이 기물앞까지만 파티클이 생성, 뒤에있는 오브젝트들은 안전하게 레이 줄여주기.

레이의 경우 화염범위 만큼 레이를 3개를 만들어 주고, 레이가 하나라도 오브젝트를 탐지하면 그만큼 레이길이를 줄여주기

파티클의 생명의 경우 초기에 파티클의 생명주기를 변수로 받아놓고

var main = particle.main;
lifeTime = main.startLifetime.constant;

레이가 오브젝트를 감지했을 때 오브젝트와의 거리를 사용해 파티클의 생명주기를 조절해 마치 오브젝트에 의해 파티클이 저지되는 것처럼 만들어주기

 void CheckHit(RaycastHit2D hit)
    {
        curRate = hit.distance;

        if(hit.collider.gameObject.TryGetComponent(out IDamageable damageable))
        {
            damageable.TakeDamage();
            Debug.Log("hit");
        }

        flame.particle.Stop();
        flame.particle.Play();
        flame.particle.startLifetime = 0.2f * hit.distance;

    }

728x90