본문 바로가기

IT이야기/unity,c#

unity] 오브젝트 피격제어 예제!

최근 유니티로 작업하면서 사용했던 소스 정리겸 예제를 올려본다.

 

기능은 2개. 하나는 사운드출력이고

 

또 하나는 파티클 재생이다. 

 

아 물론 hp를 -시키는 방식으로 구현하였다.

 

정해진 물체에 닿았을때 피격 대상의 함수를 호출하여 동작한다.

 

//여기는 변수 설정.

    public int HP;

    private AudioSource fireSound;

    public AudioClip background;

    public AudioClip fireHit;

    public ParticleSystem smoke;

    Vector3 pos;

 

    // Start is called before the first frame update

    void Start()

    {

//시작할떄 오디오 소스인 배경음을 재생하고 현재 오브젝트의 포지션을 가져온다.

//playoneshot은 한번만 재생하며 반복 재생하고 싶을시 밑을 참조.

        fireSound = GetComponent<AudioSource>();

        fireSound.PlayOneShot(background);

        pos = this.gameObject.transform.position;

 

    }

 

    public void Out()

    {

 

       //Out 함수 호출시 지정해놨던 파티클 오브젝트를 소환!

            Instantiate(smoke,pos, Quaternion.Euler(-90f, 0, 0));

    //그와 종시에 히트 사운드를 1회 재생한다. 

            fireSound.PlayOneShot(fireHit);

  //정해진 횟수만큼 -하며 0이 되었을때 오브젝트 비활성화 밑 사운드 재생을 끔.

            HP -= 1;

            if (HP == 0)

            {

                gameObject.SetActive(false);

                GetComponent<AudioSource>().Stop();

            }

    }

 

대충 이런식으로 응용해서 사용할 수 있다