์ง„์งœ ๋ฏธ์•ˆํ•ด ์„ค๋ช… ์—ด์‹ฌํžˆ ํ•ด์คฌ๋Š”๋ฐ ์•„์ง ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋Œ€ํ•œ ๊ฐœ๋…์ด ์™„๋ฒฝํžˆ ์ž๋ฆฌ๋ฐ•ํ˜€์žˆ์ง€๊ฐ€ ์•Š์•„์„œ ๋ช‡๋ช‡ ๋ฌธ์žฅ์€ ์ดํ•ด๋ฅผ ๋ชปํ–ˆ๋‹ค

์ผ๋‹จ ์ตœ๋Œ€ํ•œ ๋งํ•ด์ค€๊ฑธ๋กœ ์ฐพ์•„๋ณด๋‹ˆ๊นŒ


์ง„์งœ๋กœ ๊ฒŒ์ž„ ์‹œ์ž‘์„ ์‹œํ‚ค๋‹ˆ๊นŒ ์˜ค๋””์˜ค์†Œ์Šค์— ํ• ๋‹นํ•ด๋†จ๋˜ ์ปดํฌ๋„ŒํŠธ๋“ค์ด ๋‹ค ๋น ์ ธ๋‚˜๊ฐ€๊ณ  null์ด ๋ผ ์žˆ๋”๋ผ๊ณ 

์ด๊ฑฐ ์–ด์ผ€ ํƒ€๊ฐœํ•ด์•ผ ํ•˜๋‹ˆ ์ง„์งœ



78e98671e0cb2ab266b8d0a6418972323290aa9ca104c46e9099e8e847accc589cc6c50842130479



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

public class SoundManager : MonoBehaviour
{
ย  ย  public AudioSource[] DdgSFX; ย  ย // ์˜ค๋””์˜ค์†Œ์Šค
ย  ย  public AudioClip[] DdgClip; ย  ย  // ์˜ค๋””์˜คํด๋ฆฝ
ย  ย  public enum Ddg { MoveUp, MoveDown, OnGround, PlusScore }; ย // ๊ฐ ์ƒํƒœ์˜ ์—ด๊ฑฐํ˜•
ย  ย  int cursor; ย  ย  // ๋ช‡ ๋ฒˆ์งธ ์žˆ๋Š”์ง€์— ๋”ฐ๋ฅธ ์ธ๋ฑ์Šค๊ฐ’

ย  ย  private void Awake() {
ย  ย  ย  ย  DdgSFX = GetComponents<AudioSource>();
ย  ย  ย  ย  DdgClip = GetComponents<AudioClip>();
ย  ย  }

ย  ย  public void DdgPlaySound(Ddg type)
ย  ย  {
ย  ย  ย  ย  switch(type)
ย  ย  ย  ย  {
ย  ย  ย  ย  ย  ย  case Ddg.MoveUp:
ย  ย  ย  ย  ย  ย  ย  ย  DdgSFX[cursor].clip = DdgClip[0];
ย  ย  ย  ย  ย  ย  ย  ย  break;
ย  ย  ย  ย  ย  ย  case Ddg.MoveDown:
ย  ย  ย  ย  ย  ย  ย  ย  DdgSFX[cursor].clip = DdgClip[1];
ย  ย  ย  ย  ย  ย  ย  ย  break;
ย  ย  ย  ย  ย  ย  case Ddg.OnGround:
ย  ย  ย  ย  ย  ย  ย  ย  DdgSFX[cursor].clip = DdgClip[2];
ย  ย  ย  ย  ย  ย  ย  ย  break;
ย  ย  ย  ย  ย  ย  case Ddg.PlusScore:
ย  ย  ย  ย  ย  ย  ย  ย  DdgSFX[cursor].clip = DdgClip[3];
ย  ย  ย  ย  ย  ย  ย  ย  break;
ย  ย  ย  ย  }
ย  ย  ย  ย  DdgSFX[cursor].Play();
ย  ย  ย  ย  cursor = (cursor + 1) % DdgSFX.Length;
ย  ย  }
}


์˜ค๋””์˜ค ๊ด€๋ฆฌ ์Šคํฌ๋ฆฝํŠธ