[SerializeField] float shakeDuration = 1f;
[SerializeField] float shakeMagnitude = 0.5f;
Vector3 initialPosition;
void Start()
{
initialPosition = transform.position;
}
public void Play()
{
StartCoroutine(Shake());
}
IEnumerator Shake()
{
float elapsedTime = 0f;
while (elapsedTime < shakeDuration)
{
transform.position = initialPosition + (Vector3)Random.insideUnitCircle * shakeMagnitude;
elapsedTime += Time.deltaTime;
yield return new WaitForEndOfFrame();
}
transform.position = initialPosition;
}
카메라의 포지션을 정해진 범위 안에서 이동시켜 화면이 흔들리는 것처럼 보이는 효과
수학을 이용하지 않는 간단한 버전
'Programing > Unity(C#)' 카테고리의 다른 글
[Coding] 싱글톤 패턴 구현 방법(2가지) (0) | 2024.01.03 |
---|---|
[Unity] 버튼 클릭해서 씬(Scene) 전환하기 (0) | 2024.01.03 |
[Unity] 화면 밖으로 오브젝트 이동 불가하게 만들기 (0) | 2024.01.01 |
[Unity] New Input System 사용하기 (0) | 2023.12.31 |
[Unity] 오브젝트가 Destory되지 않게 하기 (0) | 2023.12.31 |