요약: 이 페이지에서는 MMRadio 시스템을 사용할 수 있는 다양한 방법을 다룹니다.

테이블 내용
  • MMRadio란 무엇인가요?
  • MMRadio 사용 방법
  • 라디오 신호
  • MMRadio를 피드백과 함께 사용하기

 

MMRadio란 무엇인가요?

MMRadio는 다른 객체의 속성을 제어하려고 할 때마다 사용자 지정 코드를 작성하는 번거로움을 해소하기 위해 만들어진 시스템입니다. 코드 한 줄도 작성하지 않고 객체의 속성을 읽고 새로운 값을 쓸 수 있도록 설계되었습니다. MMRadio라는 이름은 Broadcaster가 객체의 값을 읽고 이를 "방송"할 수 있게 하고, 여러 Receivers가 이 입력을 듣고 자신의 타겟에 값을 적용할 수 있도록 하기 위해 붙여졌습니다.

예를 들어, 거대한 GTA 같은 레벨이 있고, 캐릭터의 체력을 반영하여 레벨의 모든 램프가 밝기를 조절하도록 하고 싶다고 가정해봅시다(건강할 때는 매우 밝고, 손상되었을 때는 거의 꺼지는 램프). 램프에 캐릭터의 체력을 확인하는 클래스를 추가할 수 있지만, 이는 비용이 많이 들 수 있습니다. 더 나은 패턴은 캐릭터가 맞을 때마다 이벤트를 트리거하고, 램프가 이를 듣고 강도를 변경하는 것입니다. MMRadio를 사용하면 단 한 줄의 코드도 작성하지 않고 이를 수행할 수 있으며, 값이 변경될 때만 (아주 적은) 비용이 들기 때문에 매우 효율적입니다.

 

 

MMRadio 사용 방법

MMRadio의 예제는 MMRadioDemo 씬에서 확인할 수 있습니다(경로: Feel/MMTools/Tools/MMRadio). 재생 버튼을 누르면 여러 개의 큐브가 한 번에 비교적 높은 속도로 움직이는 것을 볼 수 있습니다. 이들은 모두 계층 패널의 TestBroadcaster에 의해 제어됩니다. 이를 연구하거나, 새로운 것을 만들기 위해 비활성화할 수 있습니다.

빈 객체를 생성하고, MMRadioBroadcaster 컴포넌트를 추가합니다. Emitter 슬롯에 계층 구조에서 Cube1 객체를 드래그합니다. Component에서 Transform을 선택하고, Property에서 position을 선택합니다. TargetAxis는 X로 남겨둡니다. 나머지 설정은 기본값으로 두지만, 리맵 규칙과 방송할 채널을 정의할 수 있습니다. 씬의 나머지 부분은 이미 채널 0을 듣도록 설정되어 있으므로, 다음 단계로 넘어갑니다.

재생 버튼을 누르면 아무 일도 일어나지 않는 것이 정상입니다. 이제 Cube1 객체를 선택하고 X축(빨간색 축)으로 이동하면, 다른 모든 큐브가 Cube1의 움직임에 따라 Y축 방향으로 동기화되어 움직이는 것을 볼 수 있습니다. 이것이 MMRadio 시스템의 작동 방식입니다.

다른 큐브를 선택하여 어떻게 설정되어 있는지 확인할 수 있습니다. 모든 큐브는 MMRadioReceiver 컴포넌트를 가지고 있으며, 여기서도 position 속성을 대상으로 합니다. 하지만 이번에는 y축을 수정하도록 지정합니다. 또한, 임의의 곱셈값, 리맵 규칙, 청취할 채널 등을 정의할 수 있습니다.

 

 

라디오 신호

우리가 본 것처럼, 어떤 객체어떤 값이든 방송할 수 있습니다. 따라서 게임의 어떤 클래스든 이 작업을 수행할 수 있습니다. 하지만 지속적으로(또는 한 번) 수준을 방출하여 방송할 수 있는 준비된 "신호" 클래스도 있습니다. 기본 사용 방법은 이러한 신호 클래스를 브로드캐스터와 같은 객체에 추가하거나 그 아래에 중첩하여 배치한 후, 해당 객체를 브로드캐스터의 TargetObject 슬롯에 드래그하고, Component 드롭다운에서 신호를 선택한 다음 Level 속성을 선택하는 것입니다.

Feel에는 두 가지 내장 신호 클래스와 사용자 정의 신호를 생성할 수 있는 MMRadioSignal 추상 클래스가 포함되어 있습니다:

  • MMRadioSignalAudioAnalyzer: 이 신호 클래스는 MMAudioAnalyzer를 대상으로 설정하고 특정 비트를 청취할 수 있게 해줍니다.
  • MMRadioSignalGenerator: 이 신호 클래스는 기본 곡선을 결합하여 신호를 생성하고 사용자 정의할 수 있게 해줍니다. 신호의 지속 시간(초 단위)에서 곡선 구성 요소에 이르기까지 많은 매개변수를 조정하여 고유한 신호를 만들 수 있습니다. 사인파, 펄스, 톱니파, 애니메이션 곡선, 노이즈, 트윈 등을 추가하고 결합하여 고유한 신호를 제작할 수 있습니다. 라이브 미리보기를 통해 매우 쉽게 조정할 수 있습니다.

 

MMRadio를 피드백과 함께 사용하기

피드백을 사용하여 신호를 트리거할 수도 있습니다. 이를 위해 MMFeedbackRadioSignal이 설계되었습니다. 다른 피드백처럼 추가하고, 인스펙터에서 대상 신호를 설정할 수 있습니다. 또한 지속 시간, 글로벌 곱셈값 및 타임스케일을 정의할 수 있습니다. 이는 OneTime 모드 신호에서만 사용하도록 설계되었습니다.

 

 

'유니티 에셋 > Feel' 카테고리의 다른 글

MMSceneLoading  (0) 2024.07.14
MMProgressBar  (1) 2024.07.14
MMSequencer  (2) 2024.07.14
MMAudioAnalyzer  (1) 2024.07.14
MMSoundManager  (0) 2024.07.14

+ Recent posts