요약: 이 페이지에는 Feel을 사용하여 일반적인 작업을 몇 가지 단계로 수행하는 방법을 가르쳐주는 '레시피'가 나와 있습니다.
테이블 내용
소개
- 프로젝트에 Feel을 설치하는 방법?
- MMF Player를 사용하여 파티클 시스템을 트리거하는 방법?
- 시네머신 카메라 흔들림을 설정하는 방법 (카메라 흔들림을 설정하는 권장 방법)
- 일반 카메라 흔들림을 설정하는 방법
- 시네머신 임펄스 소스 피드백을 설정하는 방법
- 일반 카메라 흔들림을 설정하지만 여전히 가상 카메라를 타겟팅하는 방법
- Feel을 URP와 함께 사용하는 방법?
- 그럼 MMF Player를 URP 볼륨과 함께 사용하는 방법?
- 실행 시간에 스크립트를 통해 피드백의 속성을 변경하는 방법?
- 피드백을 역재생하는 방법?
- 피드백이 재생 중일 때 되돌리는 방법?
- Playmaker로 MMF Player를 트리거하는 방법?
- 카메라 줌 피드백을 설정하는 방법?
- 시네머신을 사용하여 카메라 줌 피드백을 설정하는 방법?
- 타임라인을 통해 MMF Player를 트리거하는 방법?
- MMFader 및 페이드 피드백을 설정하는 방법?
- 간단한 위치 피드백을 설정하는 방법?
- 목적지로 스케일 피드백을 설정하는 방법?
- MMHealthBar 컴포넌트를 사용하여 자동으로 체력 바를 그리는 방법?
- 플로팅 텍스트를 설정하여 피드백을 통해 재생하는 방법?
- 씬에서 객체를 흔드는 방법?
- MMBlink 컴포넌트를 설정하는 방법
- 피드백을 사용하여 스프링 컴포넌트를 조종하는 방법?
- 랜덤 볼륨으로 무작위 소리를 재생하는 방법?
- 깜빡임 피드백을 설정하는 방법?
- 셰이더 컨트롤러를 설정하고 피드백으로 조종하는 방법?
- 간단한 스프링 컴포넌트를 설정하는 방법?
- 피드백 및 셰이커에 채널 자산을 설정하는 방법?
- 모든 소리를 음소거하는 버튼을 추가하는 방법?
- 3D 소리를 재생하는 방법?
- 플래시 피드백을 트리거하는 방법?
- 스크립트로 구동되는 일시 중지를 설정하는 방법?
- 애니메이션 이벤트를 사용하여 애니메이션에서 MMF Player를 재생하는 방법?
- 후처리 이동 필터 설정 방법
- 참조 홀더 피드백을 사용하는 방법?
- 빌보딩 및 고스트 카메라 설정 방법?
- 위치 셰이커 설정 방법
- MM Progress Bar 설정 방법?
스크립트를 통해 막대 값 제어
- 객체에 스쿼시 및 스트레치 동작을 추가하는 방법?
- UI 요소 호버 효과 설정 방법?
- 코루틴의 나머지 부분을 실행하기 전에 MMF Player가 완료되기를 기다리는 방법?
- 특정 유형의 피드백을 비활성화하는 방법?
- 피드백을 사용하여 씬을 추가로 로드하는 방법?
- 스쿼시 및 스트레치 피드백을 설정하는 방법?
소개
빠르게 Feel을 시작하고 싶으신가요? 이 페이지에는 여러 기본 상황에 따라 따라할 수 있는 간단한 단계가 포함되어 있습니다. 설명 없이 빠른 단계만 제공됩니다. 엔진이 어떻게 작동하는지 더 알고 싶다면 나머지 문서를 확인해보세요. 무엇을 달성하고 싶은지 궁금하거나 이 페이지에 특정 레시피를 보고 싶다면 주저하지 말고 제안해 주세요!
이 중 대부분은 Feel / Unity 버전을 제공하지만, 이는 처음 작성된 컨텍스트를 제공하기 위한 것일 뿐입니다. 하지만 더 높은 버전의 Unity와 Feel에서도 작동할 것으로 보장할 수 있습니다.
프로젝트에 Feel을 설치하는 방법?
프로젝트에Feel을 추가하려면 아래 간단한 단계를 따르세요:
Unity 2022.3.23f1 또는 그 이상의 버전(각 Feel 버전에 필요한 Unity 최소 버전은릴리스 노트를 참조)을 사용하여 새 프로젝트를 생성하고, "3D" 템플릿을 선택합니다.
패키지 매니저를 통해Feel페이지로 이동하여 다운로드 버튼을 클릭한 다음 가져오기(import) 버튼을 클릭합니다.
"Unity 패키지 가져오기" 팝업이 나타날 때까지 기다리고, 모든 항목이 선택되어 있는지 확인한 후(기본적으로 선택되어 있을 것입니다) "가져오기(import)"를 클릭합니다.
Unity의 패키지 매니저를 열고, 최신 버전의Post Processing패키지를 설치합니다.
패키지 매니저에서 최신 버전의Cinemachine패키지를 설치합니다.
패키지 매니저에서 최신 버전의TextMesh Pro패키지를 설치합니다.
패키지 매니저에서 최신 버전의Animation 2D패키지를 설치합니다(이것은 Letters 데모에만 유용합니다).
MMFPlayerDemo씬(또는 다른 데모)을 열고, 재생 버튼을 누르고, 즐기세요.
MMF Player를 사용하여 파티클 시스템을 트리거하는 방법?
Unity 2022.3.23f1(또는 그 이상)에서 새 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)를 가져옵니다.
새 씬을 생성합니다.
새 빈 객체를 생성하고파티클 시스템컴포넌트를 추가합니다.
렌더러(Renderer)패널에서 Material 필드 오른쪽의 점을 클릭하고 FeelSnakeEatParticlesMaterial을 선택하여 파티클 시스템을 조금 더 예쁘게 만듭니다.
Emission펼침 항목에서 RateOverTime을 0으로 설정하고, Bursts 아래의 작은 “+”를 눌러 버스트를 추가합니다(기본 설정으로 충분합니다).
인스펙터 상단에서 StartLifetime을 0.5로 설정합니다.
목록의 펼침 항목에서 SizeOverLifetime을 체크하고, 크기 곡선을 기본 하향 곡선 중 하나로 설정합니다.
파티클 시스템을 재생하면 빠르게 줄어드는 여러 개의 거품이 보일 것입니다.
새 빈 객체를 생성하고 이름을 MyTestFeedbacks로 설정한 다음,MMF Player컴포넌트를 추가합니다.
ParticlesPlay 피드백을 추가하고, 생성한 파티클 시스템을 BoundParticleSystem 슬롯에 드래그합니다.
에디터에서 재생 버튼을 누르고, MyTestFeedbacks 객체를 선택한 다음, MMF Player의 인스펙터에서 녹색 Play 버튼을 누릅니다.
이제 MMF Player를 통해 파티클 시스템을 트리거하는 방법을 알게 되었습니다. 다른 방법으로는 파티클 시스템을 프리팹으로 만들어 ParticleInstantiation 피드백을 사용하는 방법도 있습니다.
시네머신 카메라 흔들림을 설정하는 방법 (카메라 흔들림을 설정하는 권장 방법)
Unity 2022.3.23f1(또는 그 이상)에서 새 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)를 가져옵니다.
패키지 매니저에서 Cinemachine을 가져옵니다.
새 빈 씬을 생성합니다.
큐브를 추가하고 위치를 0,0,0으로 설정합니다.
옵션 1: 자동 셰이커 설정
빈 게임 오브젝트를 생성하고 이름을 MyTestFeedbacks로 설정한 후, MMF Player 컴포넌트를 추가하고 위치를 0,0,0으로 설정합니다.
"Add new feedback" 드롭다운을 통해 새 Cinemachine Impulse 피드백을 추가합니다.
Automatic Setup 펼침 항목을 펼치고 Automatic Shaker Setup 버튼을 누릅니다. 필요한 경우 MainCamera를 선택하고 CinemachineBrain이 추가되어 있는지 확인합니다. 없다면 하나 추가합니다.
에디터에서 재생 버튼을 누르고 MyTestFeedbacks 객체를 선택한 다음, MMF Player의 인스펙터에서 녹색 Play 버튼을 누릅니다.
카메라 흔들림을 확인합니다!
옵션 2: 수동 설정
상단 메뉴의 Cinemachine 메뉴를 통해 새로운 가상 카메라를 생성합니다.
가상 카메라를 선택하고 AddExtensions 드롭다운을 통해 Impulse Listener를 추가합니다.
빈 게임 오브젝트를 생성하고 이름을 MyTestFeedbacks로 설정한 후, MMF Player 컴포넌트를 추가하고 위치를 0,0,0으로 설정합니다.
"Add new feedback" 드롭다운을 통해 새 Cinemachine Impulse 피드백을 추가합니다.
인스펙터에서 RawSignal 필드 끝에 있는 작은 톱니바퀴를 클릭하고 Presets > 6D Shake를 선택합니다. (톱니바퀴 아이콘이 작동하지 않으면 - 알려진 Cinemachine 버그입니다 - Packages/Cinemachine/Presets/Noise/에서 동일한 프리셋을 찾아 임펄스 피드백 인스펙터에 드래그할 수 있습니다.)
인스펙터 하단에서 Velocity를 5,5,5로 설정합니다.
에디터에서 재생 버튼을 누르고 MyTestFeedbacks 객체를 선택한 다음, MMF Player의 인스펙터에서 녹색 Play 버튼을 누릅니다.
카메라 흔들림을 확인합니다!
일반 카메라 흔들림을 설정하는 방법(시네머신 없이)
Unity 2022.3.23f1(또는 그 이상)에서 새 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
새 빈 씬을 생성합니다.
큐브를 추가하고 위치를 0,0,0으로 설정합니다.
옵션 1: 자동 셰이커 설정
빈 게임 오브젝트를 생성하고 이름을 MyTestFeedbacks로 설정한 후,MMF Player 컴포넌트를 추가합니다.
"Add new feedback" > "Camera" > "Camera Shake" 피드백을 추가합니다.
Automatic Setup 펼침 항목을 펼치고Automatic Shaker Setup버튼을 누릅니다.
에디터에서 재생 버튼을 누르고, MyTestFeedbacks 인스펙터에서 Play 버튼을 누르면 카메라가 흔들립니다.
옵션 2: 수동 설정
카메라 위치에 빈 게임 오브젝트를 생성하고 이름을 CameraRig로 설정합니다.
카메라 위치에 빈 게임 오브젝트를 하나 더 생성하고 이름을 CameraShaker로 설정한 후, 이를 CameraRig 아래에 둡니다.
카메라를 CameraShaker 아래에 둡니다 (CameraRig > CameraShaker > MainCamera 구조가 되어야 합니다).
빈 게임 오브젝트를 생성하고 이름을 MyTestFeedbacks로 설정한 후MMF Player컴포넌트를 추가합니다.
"add new feedback" 드롭다운을 클릭하고 PostProcess > Vignette URP를 선택합니다.
인스펙터에서 Remap Intensity Zero를 0.5로 설정합니다.
에디터에서 재생 버튼을 누르고, MyTestFeedbacks 객체를 선택한 다음 MMF Player의 녹색 Play 버튼을 누릅니다.
이제 볼륨 피드백을 트리거하는 방법을 알게 되었습니다. 다른 후처리 필터를 타겟팅하려면 해당 볼륨에 해당 Shaker를 추가하면 됩니다.
실행 시간에 스크립트를 통해 피드백의 속성을 변경하는 방법?
런타임에 피드백의 속성을 변경해야 하는 경우가 많습니다. 물론 가능합니다. 이 예제에서는 Duck 데모에서 Chromatic Aberration 피드백의 강도를 변경하는 방법을 알아보겠습니다. 다른 피드백의 다른 속성에 대해서도 동일한 논리가 적용됩니다.
Unity 2022.3.23f1(또는 그 이상)에서 새 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
FeelDuck 데모 씬을 엽니다.
새 빈 게임 오브젝트를 생성하고 이름을 RuntimeTest로 설정합니다.
Feel 폴더 외부에 새 C# 스크립트를 생성하고 이름을 RuntimeTest로 설정한 다음, 다음 코드를 붙여넣습니다:
using MoreMountains.Feedbacks;
using MoreMountains.FeedbacksForThirdParty;
using MoreMountains.Tools;
using UnityEngine;
public class RuntimeTest : MonoBehaviour
{
public MMF_Player TargetFeedback;
[Range(-100f, 100f)]
public float Intensity = 0f;
[MMInspectorButton("TestFeedback")]
public bool PlayFeedbackBtn;
private MMF_LensDistortion _lensDistortion;
private void Start()
{
// 시작할 때 렌즈 왜곡 피드백 컴포넌트를 저장하여 나중에 이를 타겟으로 할 수 있도록 합니다.
_lensDistortion = TargetFeedback.GetFeedbackOfType<MMF_LensDistortion>();
}
public void TestFeedback()
{
// 피드백을 재생하기 전에 RemapIntensityOne 값을 수정합니다.
// 이것은 Unity의 다른 컴포넌트의 공개 속성을 수정하는 것과 동일하게 수행됩니다.
if (_lensDistortion != null)
{
_lensDistortion.RemapIntensityOne = Intensity;
}
// 그런 다음 MMF_Player를 재생합니다.
TargetFeedback?.PlayFeedbacks();
}
}
장면에UI Image를 추가하고,RectTransform을 설정하여 화면 전체를 덮도록 합니다 (보통 전체 스트레치 및 왼쪽/오른쪽/위/아래 모두 0으로 설정),Image색상을 검정색으로 설정합니다.
MMFader 컴포넌트를 추가합니다. 이 작업은CanvasGroup을 추가하며, Alpha를 0으로 설정합니다.
장면에서 새로운 빈 오브젝트를 생성하고, MMF Player를 추가합니다, Camera > Fade 피드백을 추가합니다.
재생 버튼을 누르고, Feedback을 재생하면 페이더가 페이드 인됩니다 (화면이 검정색으로 페이드). FadeType을 Fade Out으로 변경하면 화면이 다시 정상으로 돌아옵니다, Fade 피드백의 인스펙터에서 설정(지속 시간, 곡선 등)을 원하는 대로 조정할 수 있습니다. 여러 개의 페이더가 있는 경우, 페이더와 피드백의 Channel ID가 일치하는지 확인합니다.
간단한 위치 피드백을 설정하는 방법?
Unity 2022.3.23f1 (또는 그 이상)에서 새로운 프로젝트를 생성하고 Package Manager를 통해 Feel v4.1.2 (또는 그 이상)을 가져옵니다.
새로운 빈 장면을 만듭니다,큐브를 추가하고 위치를 (0,0,0)으로 설정합니다.
새로운 빈 게임 오브젝트를 생성하고, MMF Player 컴포넌트를 추가합니다.
Transform > Position 피드백을 추가합니다.
큐브를 AnimatePositionTarget 슬롯에 드래그합니다.
Transition Mode를 Along Curve로 설정합니다.
AnimatePositionDuration을 1로 설정합니다,AnimateX를 true로 설정합니다.
플레이 버튼을 누르고 피드백을 재생합니다.
목적지로 스케일 피드백을 설정하는 방법?
Unity 2022.3.23f1 (또는 그 이상)에서 새로운 프로젝트를 생성하고 Package Manager를 통해 Feel v4.1.2 (또는 그 이상)을 가져옵니다.
에디터에서 플레이 버튼을 누르고, DestinationScale을 (0.5, 0.5, 0.5)로 설정한 후, 해당 피드백의 Play 버튼을 누릅니다. 큐브가 줄어듭니다.
DestinationScale을 (0, 0, 0)로 설정하고, 해당 피드백의 Play 버튼을 누릅니다. 큐브가 더 작아집니다.
DestinationScale을 (1, 1, 1)로 설정하고, 해당 피드백의 Play 버튼을 누릅니다. 큐브가 원래 크기로 돌아갑니다.
MMHealthBar 컴포넌트를 사용하여 자동으로 체력 바를 그리는 방법?
Unity 2022.3.23f1 (또는 그 이상)에서 새로운 프로젝트를 생성하고 Package Manager를 통해 Feel v4.1.2 (또는 그 이상)을 가져옵니다.
새로운 빈 장면을 만듭니다.
큐브를 생성하고 위치를 (0,0,0)으로 설정합니다.
큐브에 MMHealthBar 컴포넌트를 추가합니다.
재생 버튼을 누르면, 큐브 위에 체력 바가 그려지는 것을 확인할 수 있습니다.
이제 MMHealthBar와 상호작용하여 업데이트하려면 데이터를 전달해야 합니다. 이를 위해 스크립트를 사용하겠습니다.
새로운 C# 클래스를 생성하고, 이름을 TestMMHealthBar로 설정한 후 다음 내용을 붙여넣습니다
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using MoreMountains.Tools;
/// <summary>
/// MMHealthBar 컴포넌트와 상호작용하고 테스트하기 위해 사용되는 간단한 클래스입니다.
/// 사용하려면 MMHealthBar가 있는 오브젝트에 이 클래스를 추가하고, 런타임 시 CurrentHealth 슬라이더를 이동한 후 Test 버튼을 눌러 바를 업데이트합니다.
/// </summary>
public class TestMMHealthBar : MonoBehaviour
{
[Range(0f, 100f)]
public float CurrentHealth = 50f;
protected float _minimumHealth = 0f;
protected float _maximumHealth = 100f;
protected MMHealthBar _targetHealthBar;
[MMInspectorButton("Test")] public bool TestButton;
protected virtual void Awake()
{
_targetHealthBar = this.gameObject.GetComponent<MMHealthBar>();
}
public virtual void Test()
{
if (_targetHealthBar != null)
{
_targetHealthBar.UpdateBar(CurrentHealth, _minimumHealth, _maximumHealth, true);
}
}
}
이 컴포넌트를 큐브에 추가하고, 재생 버튼을 누른 후, 런타임 시 인스펙터에서 CurrentHealth 슬라이더를 이동합니다. Test 버튼을 누를 때마다 체력 바가 업데이트됩니다.
플로팅 텍스트를 설정하여 피드백을 통해 재생하는 방법?
Unity 2022.3.23f1 (또는 그 이상)에서 새로운 프로젝트를 생성하고 Package Manager를 통해 Feel v4.1.2 (또는 그 이상)을 가져옵니다.
빈 장면(또는 자신의 장면)에서 새로운 빈 게임 오브젝트를 생성하고, 이름을 "FloatingTextSpawner"로 설정한 뒤,MMFloatingTextSpawner 컴포넌트를 추가합니다.
프로젝트 패널에서 MMFloatingText 프리팹을 검색한 후, 새로 생성한 스포너의 Pooler 설정 내 PooledSimpleMMFloatingText 슬롯에 드래그합니다.
새로운 빈 오브젝트를 생성하고, 이름을 "TestPlayer"로 설정한 뒤, 위치를 (0,0,0)으로 설정하고,MMF Player컴포넌트를 추가합니다.
새로운 UI >Floating Text피드백을 추가합니다.
에디터에서 플레이 버튼을 누른 후, MMF Player의 녹색 Play 버튼을 누르면 "100" 텍스트가 매번 생성됩니다.
추가 기능: 강도 제어 추가
강도 제어를 추가하려면, 다음 클래스처럼 "use intensity as value"를 체크하여 MMF Player의 강도를 피드백에 적용할 수 있습니다. 이를 테스트하려면, 프로젝트에서 다음 코드를 포함한 새 클래스를 생성한 후, 위의 단계를 완료한 후 TestIntensityAsValue 컴포넌트를 MMF Player에 추가합니다. 에디터에서 플레이 버튼을 누른 후, TriggerFeedback 버튼을 누르면 매번 랜덤 값이 표시됩니다. 물론, 실제로는 랜덤 값 대신 데미지 값을 전달하는 것이 더 적합할 것입니다! 값이 반올림되지 않은 것을 알 수 있는데, 이를 변경하고 싶다면 Floating Text 피드백에서 반올림 방법을 선택할 수 있습니다.
using MoreMountains.Feedbacks;
using UnityEngine;
public class TestIntensityAsValue : MonoBehaviour
{
[MMFInspectorButton("TriggerFeedback")]
public bool TriggerFeedbackButton;
private MMF_Player _myPlayer;
private void Start()
{
// 시작할 때 MMF Player 컴포넌트를 가져옵니다
_myPlayer = this.gameObject.GetComponent<MMF_Player>();
}
private void TriggerFeedback()
{
float randomIntensity = Random.Range(0f, 100f);
_myPlayer.PlayFeedbacks(this.transform.position, randomIntensity);
}
}
더 나아가 : 런타임에서 값 변경
MMF_FloatingText의 Value 속성을 동적으로 원하는 값으로 변경할 수 있으며, 다른 모든 속성도 변경할 수 있습니다. 아래 예제에서는 값을 랜덤 float로 설정하고, 색상을 멋진 그라데이션으로 설정합니다.
using MoreMountains.Feedbacks;
using UnityEngine;
public class TestModifyAtRuntime : MonoBehaviour
{
[MMFInspectorButton("TriggerFeedback")]
public bool TriggerFeedbackButton;
private MMF_Player _myPlayer;
private Gradient gradient;
private GradientColorKey[] colorKey;
private GradientAlphaKey[] alphaKey;
private void Start()
{
// 시작할 때 MMF Player 컴포넌트를 가져옵니다
_myPlayer = this.gameObject.GetComponent<MMF_Player>();
}
private void TriggerFeedback()
{
float randomValue = Mathf.Round(Random.Range(0f, 100f));
MMF_FloatingText floatingText = _myPlayer.GetFeedbackOfType<MMF_FloatingText>(); // 참고: 이는 플레이어에 하나의 floating text 피드백만 있는 경우를 가정합니다. 더 고급 방법은 문서를 참조하세요.
// 랜덤 값을 디스플레이 값으로 적용합니다
floatingText.Value = randomValue.ToString();
// 멋진 색상을 설정합니다
gradient = new Gradient();
// 상대 시간 0과 1 (0%와 100%)에서 색상 키를 채웁니다
colorKey = new GradientColorKey[2];
colorKey[0].color = Color.red;
colorKey[0].time = 0.0f;
colorKey[1].color = Color.blue;
colorKey[1].time = 1.0f;
// 상대 시간 0과 1 (0%와 100%)에서 알파 키를 채웁니다
alphaKey = new GradientAlphaKey[2];
alphaKey[0].alpha = 1.0f;
alphaKey[0].time = 0.0f;
alphaKey[1].alpha = 0.0f;
alphaKey[1].time = 1.0f;
gradient.SetKeys(colorKey, alphaKey);
floatingText.ForceColor = true;
floatingText.AnimateColorGradient = gradient;
_myPlayer.PlayFeedbacks(this.transform.position);
}
}
씬에서 객체를 흔드는 방법?
Unity 2022.3.23f1 (또는 그 이상)에서 새로운 프로젝트를 생성하고 Package Manager를 통해 Feel v4.1.2 (또는 그 이상)을 가져옵니다.
새로운 장면에서 큐브를 생성합니다.
큐브에 MMWiggle 컴포넌트를 추가합니다.
Position 체크박스를 선택하고, Wiggle Type을 Noise로 설정합니다.
플레이 버튼을 누르면 이제 큐브가 흔들리는 것을 볼 수 있습니다, 주파수(Frequency), 진폭(Amplitude)을 증가시키거나, 시프트(Shift)를 추가하는 등 다른 옵션을 조정할 수 있습니다. (여러 개의 객체가 있는 경우 유용합니다)
MMBlink 컴포넌트를 설정하는 방법
MMBlink 컴포넌트를 사용하면 객체에 깜박임 시퀀스를 정의할 수 있으며, 이를 MMBlink 피드백으로 트리거할 수 있습니다. 다음은 설정 방법입니다:
Unity 2022.3.23f1 (또는 그 이상)에서 새로운 프로젝트를 생성합니다, Package Manager를 통해 Feel v4.1.2 (또는 그 이상)을 가져옵니다.
새 장면에서 스프라이트 렌더러를 생성하고, 스프라이트를 "button-A" (또는 원하는 스프라이트)로 설정합니다.
MMBlink 컴포넌트를 추가하고, Method를 Material Alpha로 설정한 뒤, 스프라이트 렌더러를 MMBlink의 TargetRenderer 슬롯에 드래그합니다.
깜박임 시퀀스를 정의합니다, Phases 배열의 크기를 2로 설정합니다.
배열의 Element 0에서 PhaseDuration을 1로, OffDuration을 0.3으로, OnDuration을 0.7로 설정합니다.
배열의 Element 1에서 PhaseDuration을 0.5로, OffDuration을 0.2로, OnDuration을 0.3으로 설정합니다.
에디터에서 플레이 버튼을 누른 후, MyTestFeedbacks의 인스펙터에서 테스트 버튼을 눌러 스프라이트가 5번의 시퀀스 동안 깜박이는 것을 확인합니다.
MMBlink 컴포넌트는 여러 옵션을 제공합니다. 객체를 활성화/비활성화하여 깜박이거나, 알파, 방출 또는 머티리얼 셰이더의 모든 플롯 값을 사용하여 깜박일 수 있습니다. 또한 이러한 값들을 보간할 수 있습니다. Element0과 Element1의 On/Off Lerp Durations을 0.5로 설정하여 이를 테스트해보세요.
피드백을 사용하여 스프링 컴포넌트를 조종하는 방법?
Unity 2022.3.23f1 (또는 그 이상)에서 새로운 프로젝트를 생성하고 Package Manager를 통해 Feel v4.1.2 (또는 그 이상)을 가져옵니다.
에디터에서 플레이 버튼을 눌러 큐브의 발광이 기본적으로 PingPong 모드에서 펄스하는 것을 확인합니다.
피드백을 통해 셰이더 컨트롤러 제어
플레이 모드를 종료하고, ShaderController의 ControlMode를 OneTime으로 설정합니다.
새로운 빈 오브젝트를 생성하고 MMF Player를 추가합니다, Renderer > ShaderController 피드백을 추가하고, 큐브를 TargetShaderController 슬롯에 드래그합니다. OneTimeRemapMax를 10으로 설정합니다.
에디터에서 플레이 버튼을 누른 후, MMF Player의 녹색 Play 버튼을 눌러 큐브가 1초 동안 발광하고 다시 원래의 발광 상태로 돌아오는 것을 확인합니다.
간단한 스프링 컴포넌트를 설정하는 방법?
Unity 2022.3.23f1 (또는 그 이상)에서 새로운 프로젝트를 생성하고 Package Manager를 통해 Feel v4.1.2 (또는 그 이상)을 가져옵니다.
새 장면에서 (0,0,0)에 큐브와 UI>버튼을 추가합니다.
큐브의 인스펙터에서 AddComponent 버튼을 눌러 MMSpringSquashAndStretch 컴포넌트를 추가합니다.
버튼의 인스펙터에서 OnClick 이벤트에 아이템을 추가하고, 큐브를 드래그하여 MMSpringSquashAndStretch>BumpRandom을 선택합니다.
에디터에서 플레이 버튼을 누른 후, 버튼을 누릅니다(반복해서!).
런타임 상태에서 큐브를 선택한 후, 인스펙터에서 Damping, Frequency, BumpAmountRandomValue 설정을 조정하여 버튼을 누를 때 객체에 어떤 영향을 미치는지 확인합니다.
피드백 및 셰이커에 채널 자산을 설정하는 방법?
이 예제에서는스케일 셰이커를 설정하고스케일 셰이크 피드백을 사용하여 이를 트리거합니다. 동일한 논리는 모든 셰이커와 이를 타겟으로 하는 피드백에 적용됩니다.
Unity 2022.3.23f1(또는 그 이상)에서 새 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
새 빈 장면을 만듭니다, 장면에 새로운 Cube를 만들고 위치를 (0,0,0)으로 설정합니다. 그런 다음MMScaleShaker를 추가합니다.
재생 버튼을 누르고, 인스펙터에서 Test 항목을 펼친 다음 StartShaking 버튼을 누릅니다. Cube가 0.5초 동안 스케일을 흔드는 것을 확인한 후 재생 모드를 종료합니다.
피드백에서 셰이커를 트리거하려면 통신 채널을 설정해야 합니다. 이를 위해 간단한 정수 대신 MMChannel 자산을 사용합니다.
피드백이 셰이커와 통신할 채널 자산을 생성합니다. 프로젝트의 폴더에서 오른쪽 클릭을 하고 Create > More Mountains > MMChannel을 선택합니다. 새로운MMChannel 자산이 생성되며 이를 원하는 이름으로 변경할 수 있습니다. 이를 MyFirstChannel로 이름을 변경합니다.
Cube를 선택하고MMScaleShaker에서 ChannelMode를 MMChannel로 설정한 후 MyFirstChannel을 MMChannelDefinition 슬롯에 드래그합니다.
이제 다른 객체에서 이 셰이크를 트리거하는 피드백을 설정합니다.
새 빈 객체를 만들고MMF Player컴포넌트를 추가합니다.
Transform > Scale Shake 피드백을 추가합니다.
Feedback Settings 항목을 펼치고 Channel Mode를 MMChannel로 설정하고 MMChannelDefinition을 MyFirstChannel로 설정합니다.
에디터에서 재생 버튼을 누르고,MMF Player의 초록색 Play 버튼을 누르면 Cube의 스케일이 흔들리는 것을 확인할 수 있습니다.
모든 소리를 음소거하는 버튼을 추가하는 방법?
Unity 2022.3.23f1(또는 그 이상)에서 새 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
MMSoundManager가 포함된 장면을 엽니다.
UI 버튼을 생성합니다, 버튼의 OnClick 이벤트에 새로운 항목을 추가하려면 "+" 버튼을 누릅니다, MMSoundManager를 그 슬롯에 드래그하고,MuteMaster메서드를 선택합니다.
재생 버튼을 누르면, UI 버튼을 누를 때 MMSoundManager를 통해 재생되는 모든 소리가 음소거됩니다.
참고로 피드백을 통해서도 같은 작업을 수행할 수 있습니다(MMSoundManager Track Control 또는 MMSoundManager All Sounds Control 사용). 이 설정을 피드백을 통해 저장할 수도 있습니다. 자세한 내용은Feel 문서를 참조하세요.
3D 소리를 재생하는 방법?
Unity 2022.3.23f1(또는 그 이상)에서 새 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
새로운 빈 장면을 만듭니다.
새 빈 게임 오브젝트를 생성하고, MMSoundManager 컴포넌트를 추가합니다.
또 다른 새 빈 게임 오브젝트를 생성하고, MMF Player 컴포넌트를 추가하고, 위치를 (0,0,0)으로 설정합니다.
MMF Player에 MMSoundManager Sound 피드백을 추가합니다.
피드백의 Sound/SFx를 Beep1로 설정하고, SpatialBlend를 1로 설정합니다.
에디터에서 재생 버튼을 누른 다음, MMF Player를 재생하면 '삐' 소리를 들을 수 있습니다.
MMF Player를 (1000,0,0)으로 이동시키고 MMF Player를 재생하면 소리가 들리지 않습니다.
Unity 2022.3.23f1(또는 그 이상)에서 새 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
새 빈 장면을 만들고 Canvas를 추가합니다.
옵션 1: 자동 셰이커 설정
새 빈 오브젝트를 생성하고MMF Player를 추가합니다,Camera >Flash피드백을 추가합니다.
Automatic Setup 항목을 펼치고Automatic Shaker Setup버튼을 누릅니다.
에디터에서 재생 버튼을 누른 다음, MMF Player의 초록색 Play 버튼을 누르면 화면이 흰색으로 깜박입니다.
옵션 2: 수동 설정
빈 자식을 추가하고 MyFlash라고 이름을 지정합니다, MMFlash컴포넌트를 추가하고 화면을 덮도록 확장합니다,이를 수행하는 한 가지 방법은 앵커를 stretch로 설정하고 RectTransform에서 Left/Top/Right/Bottom을 0으로 설정하는 것입니다. 하지만 최종적으로는 Canvas 및 UI 설정 방식에 따라 달라질 수 있습니다, CanvasGroup 컴포넌트의 Alpha를 0으로 설정합니다.
새 빈 오브젝트를 생성하고MMF Player를 추가합니다, Camera >Flash피드백을 추가합니다.
에디터에서 재생 버튼을 누른 다음, MMF Player의 초록색 Play 버튼을 눌러 설정을 조정합니다.
스크립트로 구동되는 일시 중지를 설정하는 방법?
Unity 2022.3.23f1(또는 그 이상)에서 새 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다, 빈 장면을 만들고 큐브(Cube)를 추가합니다.
새 빈 오브젝트를 생성하고 MMF Player를 추가합니다,Position 피드백을 추가하고 타겟을 큐브로 설정합니다, Position 피드백을 복제합니다.
두 개의 Position 피드백 사이에 Pause 피드백을 추가하고 다음과 같이 설정합니다, ScriptDriven: true, AutoResumeAfter: 3, PauseDuration: 0
에디터에서 재생 버튼을 누르고, MMF Player의 초록색 플레이 버튼을 누릅니다. 첫 번째 Position 피드백이 실행된 후 3초 후에 Pause가 해제되고 두 번째 Position 피드백이 실행됩니다.
초록색 플레이 버튼을 다시 누른 다음 즉시 Resume 버튼을 누릅니다. Pause가 즉시 멈추고 두 번째 Position 피드백이 실행되는 것을 확인할 수 있습니다.
애니메이션 이벤트를 사용하여 애니메이션에서 MMF Player를 재생하는 방법?
Unity 2022.3.23f1(또는 그 이상)에서 새 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
새 장면을 만듭니다.
새 큐브를 만들고 위치를 (0,0,0)으로 설정합니다.
큐브에MMF Player컴포넌트를 추가하고,Sound 피드백을 추가합니다. 예를 들어 FeelDuckQuack와 같은 오디오 클립을 Sfx 슬롯에 설정합니다.
큐브에 새Animator컴포넌트를 추가합니다.
새 애니메이터 컨트롤러를 만들고 CubeAnimatorController라고 이름을 짓습니다. 이 컨트롤러를 Animator 컴포넌트의 Controller 슬롯에 드래그합니다.
Animation 패널을 열고 새 애니메이션을 만들어 BouncyCube라고 이름 짓습니다.
애니메이션에 새 속성을 추가합니다: Transform, 녹화 버튼을 누릅니다.
프레임 0에 키를 추가하고 위치를 (0,0,0)으로 설정합니다.
프레임 20에 키를 추가하고 위치를 (0,1,0)으로 설정합니다.
프레임 0을 복사하여 프레임 60에 붙여넣습니다. 이제 큐브가 위아래로 움직입니다.
커서를 프레임 25에 두고 프레임 카운터 바로 아래에 있는Add Event아이콘을 누릅니다. 인스펙터에서 Function 드롭다운에서 PlayFeedbacks()를 선택합니다.
에디터에서 재생 버튼을 누르면 큐브가 튀고, 애니메이션이 프레임 25를 지날 때마다 소리가 재생됩니다. 여기서 추가적인 피드백을 추가하고 사용자 정의할 수 있습니다.
후처리 이동 필터 설정 방법
카메라 필터, 이동 필터의 개념에 익숙하실 것입니다. 이는 실제 카메라 앞에 이동할 수 있는 필터로 효과, 확산 등을 추가할 수 있습니다. Feel은 이를 설정하는 도구를 제공합니다. 이는 작업이 조금 필요하지만 완료되면 카메라 위로 포스트 프로세싱 볼륨(또는 그 이상)을 이동할 수 있는 많은 기능을 제공합니다. 이는 포스트 프로세싱 효과 간의 부드러운 전환을 위한 쉬운 방법입니다. 다른 피드백과 마찬가지로 MMF_PlayerDemo 장면에서 그 예를 찾을 수 있으며, 다음 단계를 따를 수도 있습니다(이 예제는 BiRP의 포스트 프로세싱 스택 v2를 사용합니다. 다른 렌더링 파이프라인을 사용하는 경우 해당 레이어/볼륨을 적응시키십시오. 필터는 모든 파이프라인에서 작동합니다).
Unity 2022.3.23f1(또는 그 이상)에서 새 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
빈 장면에서 MainCamera에PostProcessLayer컴포넌트를 추가하고 VolumeBlending.Layer를 Everything으로 설정합니다.
카메라에 (0,0,0) 위치에 빈 자식 오브젝트를 추가하고 이를 MovingFilter라고 이름 짓습니다.
BoxCollider를 추가하고 IsTrigger를 true로 설정한 후,PostProcessVolume컴포넌트를 추가하고 BlendDistance를 0.2로 설정합니다. 프로필로 FeelBarbariansPostProcessingProfile을 선택합니다(이 프로필은 빨간색 비네트가 있으므로 선택 시 차이를 확인할 수 있습니다). 그런 다음 해당 오브젝트를 (0,3,0) 위치로 이동시켜 카메라를 덮지 않도록 합니다.
MovingFilter를 복제하고 이름을 BaseFilter로 설정합니다. MainCamera의 자식으로 유지하고 (0,0,0) 위치로 이동시켜 카메라 위에 있도록 합니다. 프로필로 FeelBlobPostProcessingProfile을 선택합니다(이 프로필은 보라색 비네트가 있습니다).
MovingFilter를 다시 선택하고MMPostProcessingMovingFilter를 추가합니다. FilterOffset을 (0,3)으로 설정하고, AddToInitialPosition은 false로 설정합니다. PostProcessVolume 컴포넌트에서 Priority를 1로 설정합니다.
장면에 새 빈 오브젝트를 생성하고 MMF Player를 추가합니다. PPMovingFilter 피드백을 추가합니다.
에디터에서 재생 버튼을 누른 다음 MMF Player의 초록색 Play 버튼을 누릅니다. 기본 포스트 프로세싱에서 이동 필터로의 전환을 확인할 수 있습니다. Scene 뷰에서 장면을 관찰하면 피드백을 재생할 때 이동 필터가 카메라와 겹치도록 아래로 이동하여 우선순위를 가지는 것을 확인할 수 있습니다.
참조 홀더 피드백을 사용하는 방법?
Unity 2022.3.23f1(또는 그 이상)에서 새 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
새 빈 장면을 만들고, 위치를 (0,0,0)으로 설정한 큐브(Cube)를 추가합니다.
새 빈 오브젝트를 만들고 MyPlayer라고 이름 짓습니다. 여기에MMF Player를 추가합니다.
Transform >Position피드백을 추가합니다. AnimatePositionTarget를 비워 두고 AutomatedTargetAcquisition.Mode를 ClosestReferenceHolder로 설정합니다.
다시 녹색 재생 버튼을 클릭하면 큐브가 주로 수평으로 흔들리며, 방향마다 약간의 무작위성이 추가됩니다.
이 컴포넌트를 사용하여 사용자가 원하는 대로 사용자 정의할 수 있으니 자유롭게 탐색해 보세요! 필요한 경우 rect transform에도 MMPositionShaker를 사용할 수 있습니다(적절한 모드를 설정하세요). 또한 필요한 경우 회전 및 크기에 대한 쉐이커도 찾아볼 수 있습니다.
MM Progress Bar 설정 방법?
새로운 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
새 빈 씬을 만들고, UI >Canvas를 추가합니다.
해당 Canvas 아래에 빈 자식 오브젝트를 (0,0 위치에) 생성하고, 이름을 MyBar로 지정합니다.
MyBar 아래에 UI >Image를 (0,0 위치에) 추가하고, 이름을 BackgroundBar로 지정합니다. 색상을 검정으로 설정하고, 너비를 300으로 설정한 후, Pivot.x를 0으로 설정합니다.
MyBar를 복제하여 DelayedBarDecreasing으로 이름을 변경하고, 색상을 주황색으로 설정합니다.
DelayedBarDecreasing을 복제하여 DelayedBarIncreasing으로 이름을 변경하고, 색상을 노란색으로 설정합니다.
DelayedBarIncreasing을 복제하여 ForegroundBar로 이름을 변경하고, 색상을 녹색으로 설정합니다.
이제 네 개의 막대가 서로 겹쳐지고 (가장 먼저 녹색 막대가 보이도록) MyBar에MMProgressBar컴포넌트를 추가합니다. 주의: Feel에는 NV 데모 전용 MMProgressBar 컴포넌트가 하나 더 있으며, 컬러 인스펙터가 있는 것을 사용해야 합니다. Add Component > More Mountains > Tools > GUI > MM Progress Bar를 선택합니다.
상단 인스펙터 그룹(Bindings)을 펼치고 ForegroundBar와 DelayedBars를 해당 슬롯에 드래그합니다.
FillSettings 접기를 펼치고 SetInitialFillValueOnStart를 true로 설정하고, InitialFillValue를 1로 설정한 후, BarFillMode를 FixedDuration으로 설정합니다.
에디터에서 재생을 누른 후, 인스펙터 하단의 Debug 접기에서 Minus10 / Plus10Percent 버튼을 누르면, 축하합니다! 작동하는 진행률 표시줄이 완성되었습니다!
스크립트를 통해 막대 값 제어
디버그 컨트롤도 좋지만, 아마도 진행률 표시줄의 값을 제어하는 스크립트를 원할 것입니다. 진행률 표시줄 API 메서드를 사용하면 매우 쉽게 할 수 있습니다. 필요한 것은 진행률 표시줄에 대한 참조와 간단한 메서드 호출뿐입니다. 다음 클래스를 프로젝트에 추가해 보겠습니다 (새 클래스를 생성하고 이름을 TestBar로 지정한 후, 다음 코드를 붙여 넣습니다).
using UnityEngine;
using MoreMountains.Tools;
public class TestBar : MonoBehaviour
{
// 진행률 표시줄 참조를 가져오기 위해 슬롯에 드래그 앤 드롭합니다.
public MMProgressBar TargetProgressBar;
// 0에서 100 사이의 값, 게임에서는 주인공의 체력 값일 수 있습니다.
[Range(0f, 100f)] public float Value;
// 인스펙터에 표시할 테스트 버튼으로 ChangeBarValue 메서드를 호출합니다.
[MMInspectorButton("ChangeBarValue")] public bool ChangeBarValueBtn;
void ChangeBarValue()
{
TargetProgressBar.UpdateBar(Value, 0f, 100f);
}
}
그런 다음, 씬에 새 빈 오브젝트를 생성하고 TestBar 컴포넌트를 추가한 후, MyBar를 TargetProgressBar 슬롯에 드래그 앤 드롭합니다.
에디터에서 재생을 누른 후, TestBar 인스펙터에서 슬라이더를 사용하여 값을 설정하고 ChangeBarValue 버튼을 누릅니다.
물론 실제 게임에서는 캐릭터가 피해를 입거나 마나를 사용할 때, 막대의 값을 업데이트하고자 할 때 UpdateBar 호출을 메서드에 포함시킬 것입니다.
객체에 스쿼시 및 스트레치 동작을 추가하는 방법?
Unity 2022.3.23f1(또는 그 이상)에서 새로운 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
새로운 빈 씬을 만듭니다.
새 빈 오브젝트를 만들고, 이름을 TopLevel로 지정하고, 위치를 (0,0,0)으로 설정합니다.
그 아래에 빈 자식 오브젝트를 (위치 (0,0,0)) 만들고, 이름을 SquashAndStretch로 지정한 후, MMSquashAndStretch 컴포넌트를 추가합니다.
마지막으로 큐브를 생성하고, SquashAndStretch 아래에 부모로 설정한 후 (0,0,0 위치), 3단계의 계층 구조를 가지도록 합니다.
에디터에서 재생 버튼을 누르고, TopLevel 오브젝트를 선택하여 이동시키면, 자동으로 스쿼시와 스트레치가 적용됩니다.
UI 요소 호버 효과 설정 방법?
마우스 커서가 UI 요소 위를 지나갈 때 UI 요소가 커지고, 마우스가 요소를 벗어날 때 다시 원래 크기로 줄어들게 하고 싶다면, 피드백을 사용하여 쉽게 설정할 수 있습니다. 새 클래스를 생성하고, 이름을 TestPointer로 지정한 후 다음 코드를 붙여 넣습니다:
using MoreMountains.Feedbacks;
using UnityEngine;
using UnityEngine.EventSystems;
public class TestPointer : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
{
public MMF_Player MyPlayer;
public void OnPointerEnter(PointerEventData eventData)
{
MyPlayer.Direction = MMFeedbacks.Directions.TopToBottom;
MyPlayer.PlayFeedbacks();
}
public void OnPointerExit(PointerEventData eventData)
{
MyPlayer.Direction = MMFeedbacks.Directions.BottomToTop;
MyPlayer.PlayFeedbacks();
}
}
새로운 빈 씬에 UI > Button을 추가합니다, 버튼의 이름을 MyButton으로 지정하고, 위치를 (0,0,0)으로 설정합니다, MyButton에 TestPointer 컴포넌트를 추가합니다,
버튼에 빈 자식 오브젝트를 추가하고, 이름을 HoverFeedback으로 지정합니다, HoverFeedback에 MMF Player를 추가합니다.
HoverFeedback에 Transform > Scale 피드백을 추가합니다, AnimateScaleTarget을 MyButton으로 설정합니다, 모든 트윈(X, Y, Z)을 MMTween > EaseInCubic으로 설정합니다, AnimateScaleDuration을 3으로 설정합니다.
다시 MyButton을 선택하고, HoverFeedback을 TestPointer 인스펙터의 MyPlayer 슬롯에 드래그 앤 드롭합니다.
에디터에서 재생 버튼을 누르고, 버튼 위에 커서를 올리면 버튼이 3초 동안 커지고, 커서를 이동시키면 다시 줄어듭니다.
코루틴의 나머지 부분을 실행하기 전에 MMF Player가 완료되기를 기다리는 방법?
Unity 2022.3.23f1(또는 그 이상)에서 새로운 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
새로운 씬에서 큐브를 추가합니다.
새 빈 오브젝트에 MMF Player를 추가하고, Position 피드백을 추가하여 큐브를 AnimatePositionTarget으로 설정하고, AnimatePositionDuration을 4로 설정합니다.
새 오브젝트에 TestCoroutine 컴포넌트를 추가하고, MMF Player를 MyPlayer 슬롯에 드래그합니다.
재생을 누르고 TestCoPlay 버튼을 누르면, 큐브가 이동하기 시작하고 첫 번째 디버그 로그가 콘솔에 표시됩니다. 4초 후 MMF Player가 재생을 완료하면 코루틴의 끝이 실행되어 콘솔에 새 항목이 표시됩니다.
using System.Collections;
using MoreMountains.Feedbacks;
using MoreMountains.Tools;
using UnityEngine;
public class TestCoroutine : MonoBehaviour
{
public MMF_Player MyPlayer;
[MMFInspectorButton("TestCoPlay")]
public bool TestCoPlayBtn;
private void TestCoPlay()
{
StartCoroutine(TestCoPlayCo());
}
private IEnumerator TestCoPlayCo()
{
MMDebug.DebugLogTime("start");
yield return MyPlayer.PlayFeedbacksCoroutine(this.transform.position);
MMDebug.DebugLogTime("end");
}
}
특정 유형의 피드백을 비활성화하는 방법?
때때로 플레이어에게 어떤 유형의 피드백을 경험할지 선택할 수 있는 옵션을 제공하고 싶을 때가 있습니다. 예를 들어, 화면 흔들림을 줄일 수 있는 옵션을 제공하는 것은 장애가 있는 사람들에게 도움이 될 수 있습니다. Feel을 사용하면 매우 쉽게 할 수 있습니다!
Unity 2022.3.23f1(또는 그 이상)에서 새로운 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
Toaster 데모 씬을 엽니다.
프로젝트에 새로운 클래스를 생성하고, 이름을 ImpulseDisabler로 지정한 후 다음 내용으로 바꿉니다:
using MoreMountains.FeedbacksForThirdParty;
using UnityEngine;
public class ImpulseDisabler : MonoBehaviour
{
public void DisableAllImpulses()
{
MMF_CinemachineImpulse.FeedbackTypeAuthorized = false;
}
public void EnableAllImpulses()
{
MMF_CinemachineImpulse.FeedbackTypeAuthorized = true;
}
}
씬에서 새로운 버튼을 생성합니다 (GameObject > UI > Button), 위치를 (0,0,0)으로 설정합니다 (중앙에 위치하게 되며, 필요에 따라 다른 위치로 옮길 수 있습니다).
새로 생성한 ImpulseDisabler 컴포넌트를 이 버튼에 추가합니다.
버튼 인스펙터에서 OnClick 항목에 새 엔트리를 추가하고, ImpulseDisabler 컴포넌트를 해당 슬롯에 드래그한 후, ImpulseDisabler.DisableAllImpulses 함수를 선택합니다.
에디터에서 재생을 누른 후, 씬 사이드바의 CM Impulse 버튼을 누르면 화면이 흔들립니다. 이제 생성한 버튼을 누르고 다시 CM Impulse 버튼을 누르면 화면이 더 이상 흔들리지 않습니다.
이제 단일 라인으로 피드백의 특정 유형을 비활성화(또는 활성화)하는 방법을 알게 되었습니다. 모든 피드백에 대해 이 작업을 수행할 수 있으며, 특정 유형을 대상으로 할 수 있습니다.
피드백을 사용하여 씬을 추가로 로드하는 방법?
Unity 2022.3.23f1(또는 그 이상)에서 새로운 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
새로운 빈 씬을 만듭니다.
새 빈 오브젝트를 생성하고, 이름을 Feedback으로 지정합니다. 이 오브젝트에 MMF Player 컴포넌트를 추가한 후, “Add new feedback” 드롭다운을 통해 Scene > Load Scene 피드백을 추가합니다.
SceneLoading/DestinationSceneName을 FeelDuck(Feel 데모 중 하나)으로 설정합니다.
빌드 설정(File > Build Settings)을 열고, 프로젝트 뷰에서 FeelDuck 씬을 빌드 설정의 ScenesInBuild 패널로 드래그한 후 창을 닫습니다.
MMAdditiveLoadingScreen 씬도 동일하게 추가합니다.
에디터에서 플레이 모드로 진입한 후, MMF Player의 녹색 재생 버튼을 누릅니다. 로딩 화면이 나타나고, 로드가 완료된 후 새로운 씬으로 전환됩니다.
스쿼시 및 스트레치 피드백을 설정하는 방법?
Unity 2022.3.23f1(또는 그 이상)에서 새로운 프로젝트를 만들고 패키지 매니저를 통해 Feel v4.1.2(또는 그 이상)을 가져옵니다.
새 빈 오브젝트를 생성하고, 이름을 Container로 지정한 후, Transform을 리셋합니다.
새로운 큐브를 생성하고, 이름을 Model로 지정한 후 Container의 자식으로 설정하고, 위치를 (0,0,0)으로 설정합니다.
새 빈 오브젝트를 생성하고, 이름을 Player로 지정한 후, MMF Player를 추가합니다.