
Cinemachine Impulse Listener | Cinemachine | 2.9.7
특정 이벤트 때 화면이 흔들리는 것을 구현 할려던 와중에 CineMachine의 Impulse Listner 기능을 알게 되었다.
CineMachine의 확장 기능 중 하나 인데, Listener를 달아두고, 이벤트를 발생시킬 오브젝트에는 impulse Source 컴포넌트를 달아서 Listener가 이 이벤트를 감지하게 하는 방식이다.
Cinemachine Impulse Sources | Cinemachine | 2.9.7
사용 방법도 몹시 간단하다. 위에 이야기한대로 이벤트를 발생 시킬 오브젝트에 Impulse Source 컴포넌트를 달아주자.

public class Weapon : MonoBehaviour
{
[SerializeField] protected CinemachineImpulseSource impulse;
[SerializeField] protected float damage;
/*
.
. etc...
.
.*/
public virtual void Attack(Vector3 dir)
{
impulse.GenerateImpulseWithForce(damage/20);
}
}
그리고 이벤트를 발생할 스크립트에 CinemachineImpulseSource 를 참조 시켜준다음 GenerateImpulseWithForce(float force) 메서드로 흔들어 주면 된다.
공격력에 비례하여 화면 흔들림 크기를 조절하고자 매개변수로 damage를 생으로 넣어줬는데 너무 크게 흔들려서(…) 좀 조절해주었다.

복잡한 소스 작성없이 날먹 성공이다.