본문으로 건너뛰기
Unity C# 기초집LESSON 22

사운드와 피드백

난이도초급
예상 시간40분
선수지식21강 결과 화면

22강. 사운드와 피드백

1. 이번 강의에서 해결할 문제

점수는 바뀌지만 성공과 실패가 즉시 느껴지지 않습니다. GameSession에 사운드 재생 코드를 넣지 않고 결과 이벤트를 표현 계층에 연결합니다.

2. 학습 목표

3. 핵심 개념

AudioClip은 소리 에셋이고 AudioSource는 Scene에서 재생하는 Component입니다. 피드백은 규칙을 결정하지 않고 이미 확정된 결과를 표현합니다. 외부 유료 에셋 없이 직접 만든 짧은 음원이나 라이선스가 명확한 무료 에셋만 사용합니다.

4. 단계별 실습

C# · GameSession에 결과 이벤트 추가

GameSession.cs
public event System.Action<bool> SortResolved;

public void RegisterSort(PackageTypeData actual, PackageTypeData accepted)
{
if (State != GameState.Playing || actual == null) return;
bool correct = actual == accepted;
if (correct) Score += actual.Score;
else Lives = Mathf.Max(0, Lives - 1);
if (Lives == 0) State = GameState.GameOver;
SortResolved?.Invoke(correct);
NotifySnapshot();
}

C# · 파일 경로: Assets/DeliverySorter/Scripts/Feedback/SortFeedback.cs

SortFeedback.cs
using System.Collections;
using UnityEngine;
using UnityEngine.UI;

public sealed class SortFeedback : MonoBehaviour
{
[SerializeField] private GameSession session;
[SerializeField] private AudioSource audioSource;
[SerializeField] private AudioClip correctClip;
[SerializeField] private AudioClip wrongClip;
[SerializeField] private Image flashImage;

private void OnEnable() => session.SortResolved += Play;
private void OnDisable()
{
if (session != null) session.SortResolved -= Play;
}

private void Play(bool correct)
{
audioSource.PlayOneShot(correct ? correctClip : wrongClip);
StopAllCoroutines();
StartCoroutine(Flash(correct ? Color.green : Color.red));
}

private IEnumerator Flash(Color color)
{
flashImage.color = new Color(color.r, color.g, color.b, 0.25f);
yield return new WaitForSecondsRealtime(0.12f);
flashImage.color = Color.clear;
}
}

Inspector 연결 작업

GameHUD의 전체 화면 투명 Image, AudioSource와 두 Clip을 연결합니다. AudioSource의 Play On Awake는 끄고 볼륨을 낮게 시작합니다.

5. 코드가 동작하는 이유

GameSession은 성공 여부를 발행할 뿐 어떤 음원이나 색을 쓸지 모릅니다. Feedback은 그 결과를 받아 한 AudioSource에서 PlayOneShot하고, timeScale 0에서도 복구되도록 Realtime 대기를 사용합니다.

6. 자주 하는 실수와 해결법

7. 직접 실습

8. 이해 점검 질문 3개

9. 핵심 요약

MINI QUIZ

사운드와 피드백 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“사운드와 피드백”의 역할과 의존성을 판단하는 올바른 기준은 무엇인가요?
  2. 문제 2“사운드와 피드백” 실습 중 ‘Clip 참조 null’ 상황을 발견했습니다. 본문과 일치하는 설명은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

22강. 사운드와 피드백 미완료 상태