요약: 이 페이지에서는 MMF를 사용하지 않고도 이벤트와 트윈을 사용하여 객체를 제어하는 방법을 설명합니다.

테이블 내용
  • 왜 트윈과 이벤트를 사용해야 하나요?
  • Feel에서의 이벤트
  • 트윈

 

왜 트윈과 이벤트를 사용해야 하나요?

Feel은 MMF Player와 150개 이상의 피드백을 통해 에디터에서만 많은 작업을 수행할 수 있게 해주지만, 코드를 통해 직접 거의 모든 작업을 수행할 수도 있습니다.

예를 들어, 코드를 통해 직접 MMF Player를 생성하고 원하는 피드백을 추가한 후 MMF Player를 재생할 수 있습니다. 또한, 플레이어의 모든 값을 매우 쉽게 수정할 수도 있습니다.

하지만 때로는 복잡한 마이크로 상호작용을 설정하고 싶지 않고, 한 줄의 코드로 간단하게 효과를 추가하고 싶을 때가 있습니다. 원하는 것이 단순할 때, MMF Player를 사용하는 것은 과도할 수 있으며, 피하고 싶을 수도 있습니다. 괜찮습니다. Feel은 매우 독립적인 아키텍처를 제공하여 이벤트와 트윈을 통해 거의 모든 작업을 수행할 수 있게 합니다.

 

Feel에서의 이벤트

많은 피드백과 시스템은 다른 클래스 및 컴포넌트와 통신하기 위해 이벤트를 사용합니다. 그 좋은 예로, 고급이지만 매우 간단한 사운드 관리자 MMSoundManager가 있습니다. 이는 피드백을 통해 제어하거나 한 줄짜리 이벤트를 사용하여 코드로 제어할 수 있습니다.

예를 들어, 이벤트를 사용하여 UI 사운드 트랙을 일시 정지하는 방법은 다음과 같습니다:

MMSoundManagerTrackEvent.Trigger(MMSoundManagerTrackEventTypes.PauseTrack,MMSoundManager.MMSoundManagerTracks.UI);

 

대부분의 셰이커(shaker)도 이벤트를 통해 제어할 수 있습니다. 셰이커에 대해 더 알고 싶다면, 셰이커 클래스 자체를 열어보세요. 해당 클래스는 일반적으로 관련된 이벤트도 정의하고 있습니다. 또는 해당 이벤트를 호출하는 피드백 클래스를 살펴볼 수도 있습니다.

다음은 몇 가지 예입니다:

// 간단한 카메라 흔들림 트리거, 이 이벤트는 MMCameraShaker 또는 MMCinemachineCameraShaker에 의해 처리됩니다
MMCameraShakeEvent.Trigger(duration: 1f, amplitude: 5f, frequency: 20f, amplitudeX: 5f, amplitudeY: 5f, amplitudeZ: 5f, infinite: false, channelData: new MMChannelData(MMChannelModes.Int, 0, null), false);

// 0.5초 동안 페이드 아웃 트리거, Ease-In Overhead 곡선을 따라, 이 이벤트는 MMFader에 의해 처리됩니다
MMFadeEvent.Trigger(0.5f, 0f, MMTween.MMTweenCurve.EaseInOverhead, 0, false, Vector3.zero);

// 리버브 흔들림 이벤트 트리거, 지정된 애니메이션 곡선을 따라 0에서 1까지 0.5초 동안 리버브 값을 흔들림
MMAudioFilterReverbShakeEvent.Trigger(someAnimationCurve, 0.5f, 0f, 1f);

 

관심 있는 셰이커를 확인하여 코드 어디에서나 이벤트를 통해 어떻게 해당 셰이커를 타겟팅할 수 있는지 알아보세요.

 

 

트윈

객체를 이동시키거나 값을 원점에서 목적지로 보간해야 할 때 MMF Player를 사용하고 싶지 않다면, MMTween 라이브러리를 간단히 사용할 수 있습니다.

예를 들어, 아래 코드는 대상 객체를 1초 동안 이징-인 엘라스틱 곡선을 따라 위로 이동시킵니다:

MMTween.MoveTransform(this, TargetTransform, new Vector3(0, 0, 0), new Vector3(0, 5, 0), null, 0f, 1f, MMTween.MMTweenCurve.EaseInElastic);

 

MoveTransform은 코루틴이므로, 완료되면 어떤 작업을 수행하도록 yield할 수도 있습니다.

또한 MMTween.MoveRectTransform 또는 MMTween.RotateTransformAround와 같은 다른 트윈 메서드에도 관심이 있을 수 있습니다.

같은 트윈 라이브러리를 사용하여 시간 경과에 따라 값을 단순히 보간할 수도 있습니다. Lerp와 유사하지만 더 많은 제어가 가능합니다. 대부분의 일반적인 유형을 지원하므로 도구 상자에 추가하기 좋은 도구입니다.

예를 들어, 이징-아웃 바운스 곡선을 따라 0과 5 사이의 중간 값으로 float 값을 트윈하는 방법은 다음과 같습니다:

 

float someValue = MMTween.Tween(currentTime: 0.5f, initialTime: 0f, endTime: 1f, startValue:0f, endValue:5f, MMTween.MMTweenCurve.EaseOutBounce);

 

동일한 MMTween.Tween 메서드는 Vector2, Vector3 및 Quaternion도 지원합니다. 이에 대해 더 알고 싶다면 MMTween 클래스를 확인해보세요.

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

MMSoundManager  (0) 2024.07.14
MMTools  (0) 2024.07.13
Nice Vibrations  (0) 2024.07.13
Recipes  (0) 2024.07.11
Add juice to your game using springs  (0) 2024.07.10

+ Recent posts