SlideShare a Scribd company logo
UNITY COOKBOOK
SHOT BY. INS
PART 15
사운드 & 코루틴
카세트와 테이프
유니티에서 제공하는 사운드는 ‘fmod’이라는 음향 미들웨어를 탑재하고 있습니다.
기능 자체는 ‘Audio Source Component’로 구성되어 있고 사용자가 손쉽게 다룰 수 있습니다.
이해를 돕고자 카세트(Audio Source)에 테이프(Clip)를 넣고 재생하는 구성 방식이라고 말 할 수 있습니다.
( 1 / 7 )
Audio Clip
Audio Source
평면사운드와 입체사운드
Audio Source 에는 여러 기능이 있는데 그 중 ‘Spatial Blend’ 이라는 기능을 보겠습니다.
우리가 알고있는 사운드는 평면 사운드라고 볼 수 있고 스피커를 통해 100% 볼륨과 직관적인 소리를 제공합니다.
하지만 ‘Spatial Blend’ 기능은 입체 사운드를 지원하여 조절바를 높일수록 객체로부터의 나는 소리를 입체적으로 듣습니다.
( 2 / 7 )
평면사운드 / 입체사운드
반복재생
강제 음소거
볼륨조정
사운드를 재생하자 #1
실제로 물체가 굴러 떨어질 때 충돌 효과음 내는 스크립트를 작성해봅시다. 위와 같은 코드를 입력하시고
굴러 떨어질 객체에 ‘Rigidbody’, ‘Audio Source’, 직접 제작한 스크립트를 Add Component 하고
충돌 효과음 4개를 넣고 충돌 될 때 마다 랜덤으로 충돌 사운드가 재생 될 것입니다.
( 3 / 7 )
사운드를 재생하자 #2
하지만 이는 문제점이 있습니다. 재생시킬 수 있는 음원이 하나 뿐이라 다수의 사운드를 재생 시킬 때는 이전 사운드를
무시한 채로 새로 재생되는 겁니다. 이를 해결하기 위해 나온 것이 ‘PlyClipAtPoint’ 인데 이 함수를 실행하는 순간
‘Hierarchy View’의 ‘Audio Source’가 달린 빈 객체를 원하는 지점(AtPoint)으로 생성하여 재생시켜줍니다.
그리고 재생이 끝난 사운드는 알아서 소멸합니다.
( 4 / 7 )
# 구를 때 마다 객체를 생성해 소리를 낸다.
코루틴(coroutine)
코루틴이란 프로그램의 중심 코드(Main Routine) 외의 다른 Routine을 ‘Sub Routine’이라고 부릅니다.
이러한 진입하는 지점을 복수 개를 가질 수 있는 서브루틴을 ‘Coroutine’ 이라고 합니다.
이는 일종의 쓰레드로 식별할 수 있고 메인 루트 도중에 다른 길로 빠져 별도로 실행하기 때문에 사용에 편리합니다.
코루틴은 Java에서 먼저 나왔고 유니티 또한 이러한 코루틴 사용방도를 권장하고 있습니다.
( 5 / 7 )
코루틴을 사용하자
코루틴의 정의를 알았으니 사용해보도록 합시다. 우선 ‘Sub Routine’를 만들기 위해 ‘IEnumerator’ 형식의 함수를 만들고
1초 마다 박스가 위로 올라가는 기능을 만들었습니다. 코드를 보면 ‘yield return new WaitForSeconds(1f)‘를 보실 수 있는데
말 그대로 ‘1초 후 실행‘ 입니다. 위 조건을 만족하지 못하였을 시 그 자리에서 return 돼버립니다.
‘Sub Routine’을 실행하기 위해선 ‘StartCoroutine’으로 이름만 지정하면 됩니다.
( 6 / 7 )
# 1초마다 올라가는 박스
코루틴 심화
코루틴은 여러 방면으로 그 쓰임새를 명확하게 알 수 있습니다. Update 함수가 아니더라도 여러 서브루틴 만으로도
적 인공지능을 간단하게 만들어 버릴 수 있죠. 심지어 유니티 상에서의 네트워크 송ㆍ수신에도 코루틴이 쓰이기도 합니다.
1초마다 데이터를 갱신할 때 말이죠. 지금까지 사운드와 코루틴에 대해서 알아보았습니다.
( 7 / 7 )
# RPG Enemy Code Flow # yield 제어자
Thank You !

More Related Content

More from Jihun Soh

Unity cookbook 21
Unity cookbook 21Unity cookbook 21
Unity cookbook 21
Jihun Soh
 
Unity cookbook 20
Unity cookbook 20Unity cookbook 20
Unity cookbook 20
Jihun Soh
 
Unity cookbook 19
Unity cookbook 19Unity cookbook 19
Unity cookbook 19
Jihun Soh
 
Unity cookbook 18
Unity cookbook 18Unity cookbook 18
Unity cookbook 18
Jihun Soh
 
Unity cookbook 17
Unity cookbook 17Unity cookbook 17
Unity cookbook 17
Jihun Soh
 
Unity cookbook 16
Unity cookbook 16Unity cookbook 16
Unity cookbook 16
Jihun Soh
 
Unity cookbook 14
Unity cookbook 14Unity cookbook 14
Unity cookbook 14
Jihun Soh
 
Unity cookbook 13
Unity cookbook 13Unity cookbook 13
Unity cookbook 13
Jihun Soh
 
Unity cookbook 12
Unity cookbook 12Unity cookbook 12
Unity cookbook 12
Jihun Soh
 
Unity cookbook 11
Unity cookbook 11Unity cookbook 11
Unity cookbook 11
Jihun Soh
 
Unity cookbook 10
Unity cookbook 10Unity cookbook 10
Unity cookbook 10
Jihun Soh
 
Unity cookbook 9
Unity cookbook 9Unity cookbook 9
Unity cookbook 9
Jihun Soh
 
Unity cookbook 8
Unity cookbook 8Unity cookbook 8
Unity cookbook 8
Jihun Soh
 
Unity cookbook 7
Unity cookbook 7Unity cookbook 7
Unity cookbook 7
Jihun Soh
 
Unity cookbook 6
Unity cookbook 6Unity cookbook 6
Unity cookbook 6
Jihun Soh
 
Unity cookbook 5
Unity cookbook 5Unity cookbook 5
Unity cookbook 5
Jihun Soh
 
Unity cookbook 4
Unity cookbook 4Unity cookbook 4
Unity cookbook 4
Jihun Soh
 
Unity cookbook 3
Unity cookbook 3Unity cookbook 3
Unity cookbook 3
Jihun Soh
 
Unity cookbook 1
Unity cookbook 1Unity cookbook 1
Unity cookbook 1
Jihun Soh
 

More from Jihun Soh (19)

Unity cookbook 21
Unity cookbook 21Unity cookbook 21
Unity cookbook 21
 
Unity cookbook 20
Unity cookbook 20Unity cookbook 20
Unity cookbook 20
 
Unity cookbook 19
Unity cookbook 19Unity cookbook 19
Unity cookbook 19
 
Unity cookbook 18
Unity cookbook 18Unity cookbook 18
Unity cookbook 18
 
Unity cookbook 17
Unity cookbook 17Unity cookbook 17
Unity cookbook 17
 
Unity cookbook 16
Unity cookbook 16Unity cookbook 16
Unity cookbook 16
 
Unity cookbook 14
Unity cookbook 14Unity cookbook 14
Unity cookbook 14
 
Unity cookbook 13
Unity cookbook 13Unity cookbook 13
Unity cookbook 13
 
Unity cookbook 12
Unity cookbook 12Unity cookbook 12
Unity cookbook 12
 
Unity cookbook 11
Unity cookbook 11Unity cookbook 11
Unity cookbook 11
 
Unity cookbook 10
Unity cookbook 10Unity cookbook 10
Unity cookbook 10
 
Unity cookbook 9
Unity cookbook 9Unity cookbook 9
Unity cookbook 9
 
Unity cookbook 8
Unity cookbook 8Unity cookbook 8
Unity cookbook 8
 
Unity cookbook 7
Unity cookbook 7Unity cookbook 7
Unity cookbook 7
 
Unity cookbook 6
Unity cookbook 6Unity cookbook 6
Unity cookbook 6
 
Unity cookbook 5
Unity cookbook 5Unity cookbook 5
Unity cookbook 5
 
Unity cookbook 4
Unity cookbook 4Unity cookbook 4
Unity cookbook 4
 
Unity cookbook 3
Unity cookbook 3Unity cookbook 3
Unity cookbook 3
 
Unity cookbook 1
Unity cookbook 1Unity cookbook 1
Unity cookbook 1
 

Unity cookbook 15

  • 1. UNITY COOKBOOK SHOT BY. INS PART 15 사운드 & 코루틴
  • 2. 카세트와 테이프 유니티에서 제공하는 사운드는 ‘fmod’이라는 음향 미들웨어를 탑재하고 있습니다. 기능 자체는 ‘Audio Source Component’로 구성되어 있고 사용자가 손쉽게 다룰 수 있습니다. 이해를 돕고자 카세트(Audio Source)에 테이프(Clip)를 넣고 재생하는 구성 방식이라고 말 할 수 있습니다. ( 1 / 7 ) Audio Clip Audio Source
  • 3. 평면사운드와 입체사운드 Audio Source 에는 여러 기능이 있는데 그 중 ‘Spatial Blend’ 이라는 기능을 보겠습니다. 우리가 알고있는 사운드는 평면 사운드라고 볼 수 있고 스피커를 통해 100% 볼륨과 직관적인 소리를 제공합니다. 하지만 ‘Spatial Blend’ 기능은 입체 사운드를 지원하여 조절바를 높일수록 객체로부터의 나는 소리를 입체적으로 듣습니다. ( 2 / 7 ) 평면사운드 / 입체사운드 반복재생 강제 음소거 볼륨조정
  • 4. 사운드를 재생하자 #1 실제로 물체가 굴러 떨어질 때 충돌 효과음 내는 스크립트를 작성해봅시다. 위와 같은 코드를 입력하시고 굴러 떨어질 객체에 ‘Rigidbody’, ‘Audio Source’, 직접 제작한 스크립트를 Add Component 하고 충돌 효과음 4개를 넣고 충돌 될 때 마다 랜덤으로 충돌 사운드가 재생 될 것입니다. ( 3 / 7 )
  • 5. 사운드를 재생하자 #2 하지만 이는 문제점이 있습니다. 재생시킬 수 있는 음원이 하나 뿐이라 다수의 사운드를 재생 시킬 때는 이전 사운드를 무시한 채로 새로 재생되는 겁니다. 이를 해결하기 위해 나온 것이 ‘PlyClipAtPoint’ 인데 이 함수를 실행하는 순간 ‘Hierarchy View’의 ‘Audio Source’가 달린 빈 객체를 원하는 지점(AtPoint)으로 생성하여 재생시켜줍니다. 그리고 재생이 끝난 사운드는 알아서 소멸합니다. ( 4 / 7 ) # 구를 때 마다 객체를 생성해 소리를 낸다.
  • 6. 코루틴(coroutine) 코루틴이란 프로그램의 중심 코드(Main Routine) 외의 다른 Routine을 ‘Sub Routine’이라고 부릅니다. 이러한 진입하는 지점을 복수 개를 가질 수 있는 서브루틴을 ‘Coroutine’ 이라고 합니다. 이는 일종의 쓰레드로 식별할 수 있고 메인 루트 도중에 다른 길로 빠져 별도로 실행하기 때문에 사용에 편리합니다. 코루틴은 Java에서 먼저 나왔고 유니티 또한 이러한 코루틴 사용방도를 권장하고 있습니다. ( 5 / 7 )
  • 7. 코루틴을 사용하자 코루틴의 정의를 알았으니 사용해보도록 합시다. 우선 ‘Sub Routine’를 만들기 위해 ‘IEnumerator’ 형식의 함수를 만들고 1초 마다 박스가 위로 올라가는 기능을 만들었습니다. 코드를 보면 ‘yield return new WaitForSeconds(1f)‘를 보실 수 있는데 말 그대로 ‘1초 후 실행‘ 입니다. 위 조건을 만족하지 못하였을 시 그 자리에서 return 돼버립니다. ‘Sub Routine’을 실행하기 위해선 ‘StartCoroutine’으로 이름만 지정하면 됩니다. ( 6 / 7 ) # 1초마다 올라가는 박스
  • 8. 코루틴 심화 코루틴은 여러 방면으로 그 쓰임새를 명확하게 알 수 있습니다. Update 함수가 아니더라도 여러 서브루틴 만으로도 적 인공지능을 간단하게 만들어 버릴 수 있죠. 심지어 유니티 상에서의 네트워크 송ㆍ수신에도 코루틴이 쓰이기도 합니다. 1초마다 데이터를 갱신할 때 말이죠. 지금까지 사운드와 코루틴에 대해서 알아보았습니다. ( 7 / 7 ) # RPG Enemy Code Flow # yield 제어자