< Return to Video

Unity 5 Audio: Upgrading Unity 4 Project Audio Part 2: Snapshots and Exposed Parameters

  • 0:01 - 0:03
    파트 2에서는 계속해서
  • 0:03 - 0:06
    Nightmares 서바이벌 슈터 프로젝트를
  • 0:06 - 0:09
    Unity 4에서 Unity 5로 업그레이드하겠습니다.
  • 0:09 - 0:12
    파트 1을 못보셨다면 이 동영상을 보기 전에
  • 0:12 - 0:14
    확인하시기 바랍니다.
  • 0:14 - 0:16
    이 버전의 Nightmares 프로젝트에는
  • 0:16 - 0:18
    새로운 UI 시스템으로 생성한
  • 0:18 - 0:20
    일시정지 메뉴가 있습니다.
  • 0:21 - 0:23
    일시정지 메뉴는
  • 0:23 - 0:26
    Esc 키를 누르면 호출되는데,
  • 0:26 - 0:30
    MenuCanvas에 붙어 있는 Pause Manager라는 스크립트를 사용합니다.
  • 0:30 - 0:32
    이 스크립트에 대해서는
  • 0:32 - 0:34
    동영상 후반부에서 자세히 다루도록 하겠습니다.
  • 0:34 - 0:36
    이런 유형의 UI를 만드는 법에 관해 자세한 사항은
  • 0:36 - 0:39
    아래 링크된 학습 자료를 참고하십시오.
  • 0:39 - 0:41
    스크립트 작성으로 넘어가기 전에
  • 0:41 - 0:44
    믹서에 한 가지 작업을 더 하겠습니다.
  • 0:44 - 0:46
    Music 그룹과 Soundeffects 그룹의
  • 0:46 - 0:49
    볼륨을 스크립트 컨트롤에 나타나게하여
  • 0:49 - 0:52
    스냅샷 시스템을 사용하지 않고 직접
  • 0:52 - 0:55
    설정할 수 있게 할 것입니다.
  • 0:55 - 0:57
    Music 그룹을 클릭하고
  • 0:58 - 1:00
    볼륨 파라미터를 오른쪽 버튼 클릭하고
  • 1:00 - 1:03
    Expose To Script를 선택합니다.
  • 1:04 - 1:06
    Soundeffects 그룹에 대해서도 마찬가지로 합니다.
  • 1:10 - 1:13
    이제 Exposed Parameters 리스트에서
  • 1:13 - 1:15
    두 파라미터의 이름을 지정합니다.
  • 1:16 - 1:18
    첫 번째 나타나게될 파라미터는
  • 1:19 - 1:20
    musicVol,
  • 1:21 - 1:23
    두 번째는
  • 1:24 - 1:25
    sfxVol로 하겠습니다.
  • 1:25 - 1:28
    파라미터 이름을 더블클릭하면
  • 1:28 - 1:30
    언제든 이름을 변경할 수 있습니다.
  • 1:30 - 1:32
    프로젝트에서 오디오 설정을 마쳤으니
  • 1:32 - 1:34
    이제 스크립트 컨트롤을
  • 1:34 - 1:36
    추가해 보겠습니다.
  • 1:36 - 1:40
    먼저 Pause Manager 스크립트를 편집합시다.
  • 1:40 - 1:43
    MenuCanvas 게임 오브젝트로 가서
  • 1:44 - 1:47
    Pause Manager 스크립트를 더블클릭하여
  • 1:47 - 1:49
    Monodevelop에서 엽니다.
  • 1:49 - 1:52
    어떻게 구성되어 있는지 재빨리 훑어보도록 합시다.
  • 1:52 - 1:54
    네임스페이스 선언에
  • 1:54 - 1:56
    using UnityEngine.UI으로 되어 있는 것은
  • 1:56 - 1:58
    UI 시스템으로부터 몇몇 함수를
  • 1:58 - 2:03
    사용하기 때문인데, 이를테면
  • 2:03 - 2:05
    Canvas 변수 타입 같은 것이죠.
  • 2:05 - 2:07
    또한 현재
  • 2:07 - 2:09
    Unity Editor에서 실행하고 있는지 확인하고 있는데,
  • 2:09 - 2:12
    만일 그렇다면 네임스페이스 선언에
  • 2:12 - 2:14
    using UnityEditor을 추가하게 됩니다.
  • 2:14 - 2:18
    Canvas형 변수
  • 2:18 - 2:21
    canvas를 선언했고 이것은 UI 캔버스입니다.
  • 2:21 - 2:23
    Start 함수에서는
  • 2:23 - 2:25
    getComponent를 이용해 레퍼런스를 가져옵니다.
  • 2:25 - 2:27
    Update 함수에서는
  • 2:27 - 2:31
    Esc 키를 눌렀는지 확인하게 되어 있습니다.
  • 2:31 - 2:33
    만일 Esc를 누른 상태면
  • 2:33 - 2:37
    캔버스 상태를 활성화에서 비활성화로
  • 2:37 - 2:38
    또는 그 반대로 전환합니다.
  • 2:38 - 2:41
    또한 Pause 함수를 호출합니다.
  • 2:41 - 2:43
    Pause 함수에서는
  • 2:43 - 2:46
    Time.timeScale을 설정하게 되는데,
  • 2:46 - 2:48
    먼저 점검을 해서
  • 2:48 - 2:51
    현재 0으로 지정되었으면 1로,
  • 2:51 - 2:54
    그렇지 않으면 0으로 지정합니다.
  • 2:54 - 2:57
    Time.timeScale을 0으로 지정하면
  • 2:57 - 2:59
    게임에 있는 모든 오브젝트의
  • 2:59 - 3:00
    움직임이 멈춥니다.
  • 3:00 - 3:03
    또한 public 함수 Quit가 있는데,
  • 3:03 - 3:05
    여기서는
  • 3:05 - 3:07
    Unity Editor를 사용하고 있는지 점검해서
  • 3:07 - 3:11
    만일 그렇다면 EditorApplication.isPlaying을 거짓(false)으로 지정합니다.
  • 3:11 - 3:14
    그러면 씬의 플레이를 중단하게 되는 거죠.
  • 3:14 - 3:16
    아니면
  • 3:16 - 3:18
    Application.Quit을 호출하게 되고,
  • 3:18 - 3:20
    이것은 애플리케이션 빌드일 것이니,
  • 3:20 - 3:22
    실제로 종료하고 바탕화면으로 나가게 됩니다.
  • 3:22 - 3:24
    이제 이 스크립트에
  • 3:24 - 3:26
    Audio Mixer를
  • 3:26 - 3:29
    제어할 수 있는 요소를
  • 3:29 - 3:30
    몇 가지 추가하려고 합니다.
  • 3:30 - 3:32
    먼저 추가할 것으로는
  • 3:32 - 3:35
    또 하나의 네임스페이스 선언
  • 3:35 - 3:38
    using UnityEngine.Audio입니다.
  • 3:38 - 3:40
    이렇게 해두면
  • 3:40 - 3:44
    UnityEngine.Audio의 멤버를 이용할 수 있습니다.
  • 3:44 - 3:48
    Audio Mixer, Audio Mixer Snapshots 클래스 같은 것들이죠.
  • 3:48 - 3:50
    그리고 public 변수
  • 3:50 - 3:53
    AudioMixerSnapshot 유형 두 개를 추가합니다.
  • 3:53 - 3:55
    이걸 각각 paused와
  • 3:55 - 3:57
    unpaused라고 하겠습니다.
  • 3:57 - 3:59
    파트 1 동영상에서 생성했던 스냅샷에
  • 3:59 - 4:00
    할당될 변수들입니다.
  • 4:01 - 4:05
    Paused 함수 아래에는 새로운 public 함수를 추가합니다.
  • 4:05 - 4:08
    이 함수의 이름은 Lowpass로 하겠습니다.
  • 4:08 - 4:10
    Lowpass에서는
  • 4:10 - 4:13
    Time.timeScale이 현재 0인지 점검합니다.
  • 4:13 - 4:17
    Time.timeScale이 0이면
  • 4:17 - 4:19
    Paused 스냅샷에서 TransitionTo 함수를
  • 4:19 - 4:21
    호출합니다.
  • 4:21 - 4:23
    부동소수점 파라미터
  • 4:23 - 4:25
    timeToReach를 파싱하는데
  • 4:26 - 4:29
    이 경우에는 0.01초입니다.
  • 4:29 - 4:32
    만일 Time.timeScale이 0이 아니면
  • 4:33 - 4:35
    Unpaused 스냅샷에서 TransitionTo 함수를
  • 4:35 - 4:37
    호출합니다.
  • 4:38 - 4:40
    Lowpass 함수를 선언했으니
  • 4:40 - 4:43
    이제 이걸 Pause 함수 안에서
  • 4:43 - 4:44
    호출하겠습니다.
  • 4:44 - 4:47
    스크립트를 저장하고 Unity로 돌아갑시다.
  • 4:50 - 4:52
    에디터에서
  • 4:52 - 4:54
    Pause Manager 스크립터에 이제
  • 4:54 - 4:57
    두 개의 변수 Paused와 Unpaused가 새로 생겼죠.
  • 4:58 - 5:00
    이 변수들을 Asset Picker를 사용해
  • 5:00 - 5:04
    앞서 생성한 AudioMixerSnapshots에 연결할 겁니다.
  • 5:08 - 5:10
    Paused 스냅샷과
  • 5:17 - 5:19
    Unpaused 스냅샷을 선택합니다.
  • 5:20 - 5:22
    씬을 플레이하여 한 번 시험해 봅시다.
  • 5:26 - 5:28
    Esc를 누르면 Paused 스냅샷이 호출된 것이 보이죠.
  • 5:28 - 5:30
    그런 다음에 다시 계속을 클릭하면
  • 5:32 - 5:35
    Unpaused 스냅샷이 재호출되는 것을 알 수 있습니다.
  • 5:35 - 5:37
    잘 실행되는군요.
  • 5:39 - 5:41
    Paused 메뉴에는
  • 5:41 - 5:43
    음악과 사운드 이펙트의
  • 5:43 - 5:45
    볼륨 컨트롤이 있습니다.
  • 5:45 - 5:47
    그래서 이걸 사용해 Audio Mixer를 제어할 수 있는
  • 5:47 - 5:51
    스크립트를 작성하려고 합니다. 먼저 새로운 C# 스크립트를 생성하고,
  • 5:51 - 5:53
    MixLevels라고 하겠습니다.
  • 5:56 - 5:59
    이걸 더블클릭해서 Monodevelop에서 엽니다.
  • 5:59 - 6:01
    이번에도 제일 먼저 할 일은
  • 6:01 - 6:03
    네임스페이스 선언에
  • 6:03 - 6:05
    using UnityEngine.Audio을 추가하는 것입니다.
  • 6:05 - 6:07
    다음으로 AudioMixer 타입의 public 변수
  • 6:07 - 6:10
    masterMixer를 추가합니다.
  • 6:12 - 6:14
    여기서는 Start 함수와 Update 함수가
  • 6:14 - 6:17
    필요하지 않을 것이기 때문에 지우겠습니다.
  • 6:17 - 6:20
    그런 다음에 public 함수
  • 6:20 - 6:22
    SetSfxLvl을 선언하고,
  • 6:22 - 6:24
    SetSfxLvl에
  • 6:24 - 6:26
    부동소수점형 파라미터
  • 6:26 - 6:28
    sfxLvl를 넣습니다.
  • 6:28 - 6:30
    sfxLvl 파라미터를 사용해
  • 6:30 - 6:34
    masterMixer에 부동소수점 값을
  • 6:34 - 6:36
    파싱하고, 그것을 사용해
  • 6:36 - 6:39
    AudioMixer에서
  • 6:39 - 6:42
    Soundeffects 레벨의 볼륨을 변경할 것입니다.
  • 6:42 - 6:45
    여기에는 SetFloat 함수를 사용합니다.
  • 6:45 - 6:48
    SetFloat는 두 개의 파라미터를 가집니다.
  • 6:48 - 6:50
    하나는 문자열로서
  • 6:50 - 6:53
    우리가 설정하려는 파라미터의 이름이고,
  • 6:53 - 6:56
    부동소수점 파라미터로는 값을 지정합니다.
  • 6:56 - 6:59
    문자열 sfxVol을 파싱할 텐데,
  • 6:59 - 7:00
    이것은 앞서 Inspector에 나타나게했던
  • 7:00 - 7:02
    파라미터의 이름입니다.
  • 7:02 - 7:05
    또한 두 번째 public 함수
  • 7:05 - 7:07
    SetMusicLvl을 선언합니다.
  • 7:07 - 7:09
    SetMusicLvl도
  • 7:09 - 7:12
    부동소수점 파라미터를 가지는데, 이 경우에는
  • 7:12 - 7:13
    musicLvl입니다.
  • 7:17 - 7:20
    SetMusicLvl에서도 SetFloat를 사용하여
  • 7:20 - 7:25
    파라미터 musicVol의 값을 설정합니다.
  • 7:25 - 7:27
    스크립트를 저장하고 에디터로 돌아갑시다.
  • 7:28 - 7:30
    에디터에서
  • 7:30 - 7:32
    MixLevels 스크립트를
  • 7:32 - 7:35
    MenuCanvas 게임 오브젝트에 추가합니다.
  • 7:35 - 7:38
    또한 Audio Mixer인
  • 7:38 - 7:40
    Master Mixer를
  • 7:40 - 7:42
    MasterMixer 변수로 선택합니다.
  • 7:44 - 7:46
    다음으로, PausePanel에서
  • 7:46 - 7:49
    EffectsSlider
  • 7:49 - 7:51
    게임 오브젝트를 선택합니다.
  • 7:53 - 7:55
    Slider 스크립트에서 보면
  • 7:55 - 7:57
    이전에는 On Value Changed가
  • 7:57 - 8:00
    GunBarrelEnd 값과
  • 8:00 - 8:03
    Player 오디오 소스를 직접 교체하고 있던 것을 알 수 있습니다.
  • 8:03 - 8:06
    이제 이들을 오디오 믹서에 다시 연결할 수 있습니다.
  • 8:06 - 8:09
    먼저 MenuCanvas를 끌어와 넣습니다.
  • 8:11 - 8:13
    이 게임 오브젝트에서
  • 8:13 - 8:15
    이용할 수 있는 함수 리스트에서
  • 8:15 - 8:17
    MixLevels 스크립트를 선택하고,
  • 8:17 - 8:21
    스크립트에서 SetSfxLvl 함수를
  • 8:21 - 8:23
    선택합니다.
  • 8:23 - 8:25
    Player 오디오 소스를 선택해서 - 버튼을 누르면
  • 8:25 - 8:28
    Player 오디오 소스의 연결을 제거할 수 있습니다.
  • 8:29 - 8:32
    MusicSlider에 대해서도 마찬가지로 합니다.
  • 8:37 - 8:40
    MenuCanvas 게임 오브젝트를 끌어와서 넣고
  • 8:41 - 8:43
    함수 리스트에서 이번에는
  • 8:43 - 8:46
    MixLevels 스크립트, SetMusicLvl을 선택합니다.
  • 8:47 - 8:49
    음악 소리가 -10db 정도면
  • 8:49 - 8:51
    믹서에서 나올 가장 큰 음악 소리로
  • 8:51 - 8:53
    적당하겠다고 결정했기 때문에
  • 8:53 - 8:56
    그것을 슬라이더에 Max Value로 넣어줍니다.
  • 9:00 - 9:02
    또한 Min Value로
  • 9:02 - 9:04
    -80을 지정합니다. 그러면 아무 소리도 안 날 것입니다.
  • 9:09 - 9:12
    EffectsSlider에서도 마찬가지로 할 텐데,
  • 9:12 - 9:14
    이 경우에는 범위는 -80에서
  • 9:16 - 9:17
    0 사이로 합니다.
  • 9:18 - 9:21
    이렇게 셋업하고 씬을 플레이하여
  • 9:21 - 9:22
    시험해 봅시다.
  • 9:24 - 9:25
    Esc를 누르고,
  • 9:27 - 9:28
    Music Volume을 조정합니다.
  • 9:31 - 9:33
    Effects Volume도 내립니다.
  • 9:36 - 9:37
    자, 다 되었습니다.
  • 9:37 - 9:40
    Audio Mixers,
  • 9:40 - 9:43
    SnapShots, Exposed Parameters, Effects에 관한 자세한 사항은
  • 9:43 - 9:45
    아래 링크된 학습 자료를 참고하십시오.
Title:
Unity 5 Audio: Upgrading Unity 4 Project Audio Part 2: Snapshots and Exposed Parameters
Description:

more » « less
Duration:
09:46

Korean subtitles

Revisions