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를 생으로 넣어줬는데 너무 크게 흔들려서(…) 좀 조절해주었다.
복잡한 소스 작성없이 날먹 성공이다.