본문 바로가기
Game Lab

[FMOD Studio]Audio System in Unity

by 토리총 2026. 6. 10.

 

using문을 작성한다

 

 

coin(아이템) 획득되면 > 원샷 사운드 재생 메서드

private void OnTriggerEnter2D() 
{
    if (!collected) 
    {
        collectParticle.Play();
        CollectCoin();
    }
}

private void CollectCoin() 
{
    collected = true;
    visual.gameObject.SetActive(false);

    emitter.Stop();
    AudioManager.instance.PlayOneShot(FMODEvents.instance.coinCollected, this.transform.position);

    GameEventsManager.instance.CoinCollected();
}

 

 

 

이벤트 참조

 


별도의 FMODEvent 스크립트 만들기

 

프로젝트가 커질 경우 아래의 방식으로 작업하는 편이 좋다.

 

 

 

 

Coin 스크립트 수정 방법

 

아래 코드로 수정!

 

완성된 코드

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using FMODUnity;

[RequireComponent(typeof(StudioEventEmitter))]
public class Coin : MonoBehaviour
{
    //[SerializeField] private EventReference coinCollectedSound;

    private SpriteRenderer visual;
    private ParticleSystem collectParticle;
    private bool collected = false;

    private StudioEventEmitter emitter;

    private void Awake() 
    {
        visual = this.GetComponentInChildren<SpriteRenderer>();
        collectParticle = this.GetComponentInChildren<ParticleSystem>();
        collectParticle.Stop();
    }

    private void Start()
    {
        emitter = AudioManager.instance.InitializeEventEmitter(FMODEvents.instance.coinIdle, this.gameObject);
        emitter.Play();
    }

    private void OnTriggerEnter2D() 
    {
        if (!collected) 
        {
            collectParticle.Play();
            CollectCoin();
        }
    }

    private void CollectCoin() 
    {
        collected = true;
        visual.gameObject.SetActive(false);

        emitter.Stop();
       
        //AudioManager.instance.PlayOneShot(coinCollectedSound, this.transform.position);

        AudioManager.instance.PlayOneShot(FMODEvents.instance.coinCollected, this.transform.position);

        GameEventsManager.instance.CoinCollected();
    }

}

 


FMODEvent를 한 데 모아서 관리

ㄴ한 곳에서 모든 이벤트 참조를 볼 수 있음

   ㄴ다른 스크립트의 코드도 더 깔끔해짐

'Game Lab' 카테고리의 다른 글

[Week14] 캐릭터, 맵, 프롭 만들기  (0) 2026.06.11
[Week13] 캐릭터 디자인  (0) 2026.06.10
[Week13] 엘레베이터 + UI SFX 제작  (0) 2026.06.08
[FMOD Studio]Bank  (0) 2026.06.06
[FMOD Studio]Instruments/Logic tracks/Parameter  (0) 2026.06.05