unity cookbook 15

9
UNITY COOKBOOK SHOT BY. INS PART 15 사사사 & 사사사

Upload: jihun-soh

Post on 15-Apr-2017

75 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Unity cookbook 15

UNITY COOKBOOKSHOT BY. INS

PART 15사운드 & 코루틴

Page 2: Unity cookbook 15

카세트와 테이프

유니티에서 제공하는 사운드는 ‘ fmod’ 이라는 음향 미들웨어를 탑재하고 있습니다 .기능 자체는 ‘ Audio Source Component’ 로 구성되어 있고 사용자가 손쉽게 다룰 수 있습니다 .이해를 돕고자 카세트 (Audio Source) 에 테이프 (Clip) 를 넣고 재생하는 구성 방식이라고 말 할 수 있습니다 .

( 1 / 7 )

Audio Clip

Audio Source

Page 3: Unity cookbook 15

평면사운드와 입체사운드

Audio Source 에는 여러 기능이 있는데 그 중 ‘ Spatial Blend’ 이라는 기능을 보겠습니다 .우리가 알고있는 사운드는 평면 사운드라고 볼 수 있고 스피커를 통해 100% 볼륨과 직관적인 소리를 제공합니다 .하지만 ‘ Spatial Blend’ 기능은 입체 사운드를 지원하여 조절바를 높일수록 객체로부터의 나는 소리를 입체적으로 듣습니다 .

( 2 / 7 )

평면사운드 / 입체사운드

반복재생강제 음소거

볼륨조정

Page 4: Unity cookbook 15

사운드를 재생하자 #1

실제로 물체가 굴러 떨어질 때 충돌 효과음 내는 스크립트를 작성해봅시다 . 위와 같은 코드를 입력하시고굴러 떨어질 객체에 ‘ Rigidbody’, ‘Audio Source’, 직접 제작한 스크립트를 Add Component 하고충돌 효과음 4 개를 넣고 충돌 될 때 마다 랜덤으로 충돌 사운드가 재생 될 것입니다 .

( 3 / 7 )

Page 5: Unity cookbook 15

사운드를 재생하자 #2

하지만 이는 문제점이 있습니다 . 재생시킬 수 있는 음원이 하나 뿐이라 다수의 사운드를 재생 시킬 때는 이전 사운드를무시한 채로 새로 재생되는 겁니다 . 이를 해결하기 위해 나온 것이 ‘ PlyClipAtPoint’ 인데 이 함수를 실행하는 순간‘Hierarchy View’ 의 ‘ Audio Source’ 가 달린 빈 객체를 원하는 지점 (AtPoint) 으로 생성하여 재생시켜줍니다 .그리고 재생이 끝난 사운드는 알아서 소멸합니다 .

( 4 / 7 )

# 구를 때 마다 객체를 생성해 소리를 낸다 .

Page 6: Unity cookbook 15

코루틴 (coroutine)

코루틴이란 프로그램의 중심 코드 (Main Routine) 외의 다른 Routine 을 ‘ Sub Routine’ 이라고 부릅니다 .이러한 진입하는 지점을 복수 개를 가질 수 있는 서브루틴을 ‘ Coroutine’ 이라고 합니다 .이는 일종의 쓰레드로 식별할 수 있고 메인 루트 도중에 다른 길로 빠져 별도로 실행하기 때문에 사용에 편리합니다 .코루틴은 Java 에서 먼저 나왔고 유니티 또한 이러한 코루틴 사용방도를 권장하고 있습니다 .

( 5 / 7 )

Page 7: Unity cookbook 15

코루틴을 사용하자

코루틴의 정의를 알았으니 사용해보도록 합시다 . 우선 ‘ Sub Routine’ 를 만들기 위해 ‘ IEnumerator’ 형식의 함수를 만들고1 초 마다 박스가 위로 올라가는 기능을 만들었습니다 . 코드를 보면 ‘ yield return new WaitForSeconds(1f)‘ 를 보실 수 있는데말 그대로 ‘ 1 초 후 실행‘ 입니다 . 위 조건을 만족하지 못하였을 시 그 자리에서 return 돼버립니다 .‘Sub Routine’ 을 실행하기 위해선 ‘ StartCoroutine’ 으로 이름만 지정하면 됩니다 .

( 6 / 7 )

# 1 초마다 올라가는 박스

Page 8: Unity cookbook 15

코루틴 심화

코루틴은 여러 방면으로 그 쓰임새를 명확하게 알 수 있습니다 . Update 함수가 아니더라도 여러 서브루틴 만으로도적 인공지능을 간단하게 만들어 버릴 수 있죠 . 심지어 유니티 상에서의 네트워크 송ㆍ수신에도 코루틴이 쓰이기도 합니다 .1 초마다 데이터를 갱신할 때 말이죠 . 지금까지 사운드와 코루틴에 대해서 알아보았습니다 .

( 7 / 7 )

# RPG Enemy Code Flow # yield 제어자

Page 9: Unity cookbook 15

Thank You !